skkn gợi ĐỘNG cơ HOẠT ĐỘNG TRONG VIỆC GIẢNG dạy CHƯƠNG TRÌNH CON - Pdf 37

MỤC LỤC
A. PHẦN MỞ ĐẦU...............................................................Error: Reference source not found
I. Lý do chọn đề tài...........................................................Error: Reference source not found
II. Định hướng nghiên cứu...............................................Error: Reference source not found
1. Mục đích nghiên cứu.................................................Error: Reference source not found
2. Nhiệm vụ nghiên cứu................................................Error: Reference source not found
B. NỘI DUNG.......................................................................Error: Reference source not found
I. Cơ sở lý luận..................................................................Error: Reference source not found
1. Nghiên cứu lý luận...................................................Error: Reference source not found
2. Quan sát - điều tra.....................................................Error: Reference source not found
3. Tổng kết kinh nghiệm................................................Error: Reference source not found
II. Cơ sở thực tiễn:............................................................Error: Reference source not found
1. Thuận lợi:..................................................................Error: Reference source not found
2. Khó khăn:..................................................................Error: Reference source not found
III. Nội dung đề tài gợi động cơ hoạt động trong việc giảng dạy chương trình con
.............................................................................................Error: Reference source not found
1. Gợi động cơ mở đầu:................................................Error: Reference source not found
a. Đáp ứng nhu cầu xóa bỏ sự hạn chế...................Error: Reference source not found
b. Hướng tới sự tiện lợi hợp lý hóa công việc........Error: Reference source not found
c. Chính xác hóa một khái niệm..............................Error: Reference source not found
d. Hướng tới sự hoàn chỉnh hệ thống.....................Error: Reference source not found
e. Lật ngược vấn đề...................................................Error: Reference source not found
f. Xét tương tự...........................................................Error: Reference source not found
g. Khái quát hóa........................................................Error: Reference source not found
h. Tìm sự liên hệ và phụ thuộc................................Error: Reference source not found
2. Gợi động cơ trung gian............................................Error: Reference source not found
a. Hướng đích............................................................Error: Reference source not found
b. Quy lạ về quen...................................................... Error: Reference source not found
c. Xét tương tự...........................................................Error: Reference source not found
d. Khái quát hóa........................................................Error: Reference source not found
e. Xét sự biến thiên và phụ thuộc............................Error: Reference source not found

của giáo viên. Hai thực tiễn trên vừa mâu thuẫn với nhau, lại vừa thống nhất
với nhau. Giáo viên không thể mang hết các kiến thức lý thuyết cao xa và trừu
tượng dạy cho học sinh, nhưng cũng không thể dạy tốt cho học sinh nếu thầy
giáo hiểu biết quá ít. Chính vì vậy để có thể phát huy khả năng nghiệp vụ,
giáo viên cần phải biết kích thích tính tích cực, sáng tạo say mê học hỏi của
học sinh trong việc học tập giúp học sinh có ý thức về những mục tiêu đặt ra
và tạo được động lực bên trong thúc đẩy bản thân họ hoạt động để đạt các
mục tiêu đó. Điều này chính là gợi động cơ trong dạy học.
Trong các vấn đề về Tin học được đưa
vào giảng dạy ở chương trình bậc học phổ thông hiện nay. Khi nói đến vấn đề
dạy học lập trình cho học sinh, vấn đề dạy học cho học sinh về chương trình
con là một trong những vấn đề chiếm vai trò quan trọng. Bởi vì, sử dụng
chương trình con để hợp lý, tiết kiệm công sức lập trình. Đồng thời, chương
trình con có thể giúp cho người lập trình dễ sửa chữa, dễ kiểm tra. Đặc biệt,
khi học về chương trình con, học sinh có thể hiểu một cách sâu sắc hơn về
ngôn ngữ lập trình, nhìn nhận vấn đề một cách sáng sủa hơn, chặt chẽ hơn và
nhất là chương trình con có thể giúp cho các em hoàn thành những chương
trình lớn hơn vượt ra những bài toán bình thường mà nội bộ môn học đòi hỏi.
Trang 2


Chính vì vậy, việc gợi động cơ cho học sinh trong việc dạy học chương trình
con là một công việc quan trọng, đòi hỏi mỗi giáo viên cần phải nỗ lực tìm
tòi, sáng tạo giúp cho học sinh nhìn nhận vấn đề một cách tích cực hơn, sáng
tạo hơn và nhất là giúp cho các em có thể yêu thích nhiều hơn nữa ngôn ngữ
lập trình Pascal.Vấn đề đặt ra là: gợi động cơ hoạt động cho học sinh khi
giảng dạy về chương trình con như thế nào? Đó chính là vấn đề mà bản
thân tôi hết sức quan tâm.
Với tất cả những lý do nêu trên, tôi
quyết định chọn đề tài này.

gạt bỏ những cái dở, bổ xung và hoàn chỉnh những nhận thức đã đạt được.
2. Quan sát - điều tra
Quan sát - điều tra giúp theo dõi hiện
tượng giáo dục theo trình tự thời gian, phát hiện những biến đổi số lượng,
chất lượng gây ra do tác động giáo dục. Thấy được những vấn đề thời sự cấp
bách đòi hỏi phải nghiên cứu hoặc góp phần giải quyết nhiệm vụ nghiên cứu
và môi trường tự nhiên là nguồn cung cấp dữ liệu trực tiếp. Người nghiên cứu
đến trực tiếp một nơi nào đó mà họ quan tâm và thu thập dữ liệu, bởi vì các
hoạt động chỉ có thể hiểu tốt nhất là trong môi trường tự nhiên, trong ngữ
cảnh mà chúng xuất hiện.
3. Tổng kết kinh nghiệm
Tổng kết kinh nghiệm là đánh giá và
khái quát hóa những kinh nghiệm đã thu thập được trong hoạt động thực tiễn,
từ đó phát hiện ra những vấn đề cần khẳng định để đưa ra áp dụng rộng rãi
hoặc cần tiếp tục nghiên cứu hay loại bỏ. Nó có nguồn gốc từ kinh nghiệm,
mang tính khoa học, được lĩnh hội, kiểm chứng từ quá trình hoạt động thực
tiễn sinh động. Bài học kinh nghiệm là sự cụ thể hóa một cách sáng tạo tư
tưởng, luận điểm, lý luận giáo dục đã đi vào cuộc sống. Trong quá trình
nghiên cứu tổng kết kinh nghiệm, có khi người ta khám phá ra những mối liên
hệ có tính quy luật của những hiện tượng giáo dục.
II. Cơ sở thực tiễn:
* Một số thuận lợi và khó khăn khi thực hiện chuyên đề:
1. Thuận lợi:

Nhà trường:
Tuy môn Tin học mới chỉ là môn học
mới được đưa vào học trong những năm gần đây nhưng nhà trường đã
tạo điều kiện để học sinh có thể học từ khối lớp 10, tạo điều kiện sắm
sửa máy móc, trang thiết bị phục vụ cho việc dạy và học môn Tin học.
Trang 4

nhằm làm cho những mục tiêu sư phạm biến thành những mục tiêu của cá
nhân học sinh, chứ không phải chỉ là sự vào bài, đặt vấn đề một cách hình
thức.
Ở những lớp dưới, giáo viên thường
dùng những cách như cho điểm, khen chê, thông báo kết quả học tập cho gia
đình, ... để gợi động cơ. Càng lên lớp cao, cùng với sự trưởng thành của học
sinh, với trình độ nhận thức và giác ngộ chính trị ngày càng cao những cách
gợi động cơ xuất phát từ nội dung hướng và những nhu cầu nhận thức, nhu cầu
đời sống, trách nhiệm đối với xã hội ngày càng trở nên quan trọng.
Gợi động cơ không phải chỉ là việc làm
ngắn ngủi lúc bắt đầu dạy một tri thức nào đó, mà phải xuyên suốt quá trình
dạy học. Vì vậy, có thể phân biệt gợi động cơ mở đầu, gợi động cơ trung gian
và gợi động cơ kết thúc. Trong đề tài này tôi xin đưa ra một số giải pháp gợi

Trang 5


động cơ hoạt động trong việc giảng dạy chương trình con của ngôn ngữ lập
trình Pascal theo từng giai đoạn như trên.
1. Gợi động cơ mở đầu:
Để Gợi động cơ mở đầu có thể gợi động
cơ xuất phát từ thực tế hoặc xuất phát từ nội bộ Tin học.
Việc xuất phát từ thực tế không những
có tác dụng gợi động cơ mà còn góp phần hình thành thế giới quan duy vật
biện chứng. Nhờ đó, học sinh nhận rõ việc nhận thức và cải tạo thế giới đã đòi
hỏi phải suy nghĩ và giải quyết những vấn đề Tin học như thế nào, tức là nhận
rõ Tin học bắt nguồn từ những nhu cầu của đời sống thực tế. Vì vậy, ta cần
khai thác triệt để mọi khả năng để gợi động cơ xuất phát từ thực tế. Tuy nhiên,
để gợi động cơ xuất phát từ thực tế cần chú ý các điều kiện sau:
+ Vấn đề đặt ra phải đảm bảo tính chân thực, đương nhiên có thể đơn giản


Var a1, b1, a2, b2, c1, c2, c3, d1, d2, d3, m1, m2, m3 : Real;
Begin
Writeln('Nhap hai canh cua hinh chu nhat thu nhat:');
Write('a1 = '); Readln(a1);
Write('b1 = '); Readln(b1);
Writeln('Nhap hai canh cua hinh chu nhat thu hai:');
Write('a2 = '); Readln(a2);
Write('b2 = '); Readln(b2);
c1 := 2 * (a1 + b1);
c2 := 2 * (a2 + b2);
c3 := 2 * ((a1 + b1) + (a2 * b2));
d1 := a1 * b1;
d2 := a2 * b2;
d3 := (a1 + b1) * (a2 * b2);
m1 := sqrt(a1 * a1 + b1 * b1);
m2 := sqrt(a2 * a2 + b2 * b2);
m3 := sqrt(sqr(a1 + b1) + sqr(a2 * b2));
Writeln('Hinh chu nhat thu nhat:');
Writeln('Chu vi bang : ',c1:0:2);
Writeln('Dien tich bang : ',d1:0:2);
Writeln('Duong cheo bang: ',m1:0:2);
Writeln('Hinh chu nhat thu hai:');
Writeln('Chu vi bang : ',c2:0:2);
Writeln('Dien tich bang : ',d2:0:2);
Writeln('Duong cheo bang: ',m2:0:2);
Writeln('Hinh chu nhat thu ba:');
Writeln('Chu vi bang : ',c3:0:2);
Writeln('Dien tich bang : ',d3:0:2);
Writeln('Duong cheo bang: ',m3:0:2);

Writeln('Dien tich bang : ',a * b:0:2);
Writeln('Duong cheo bang: ',sqrt(a * a + b * b):0:2);
End;
Begin
Nhap(a1, b1, 1); Nhap(a2, b2, 2);
Tinh(a1, b1, 1); Tinh(a2, b2, 2); Tinh(a1 + b1, a2 * b2, 3);
Readln
End.
b. Hướng tới sự tiện lợi hợp lý hóa công việc
Xét bài toán sau: “Nhập vào 1 dãy n số
nguyên lớn hơn 1. Viết ra màn hình tất cả các số của dãy thỏa mãn điều kiện
là số nguyên tố”.
Var A: Array[1..100] Of Integer;
k,n: Integer;
Function NgTo(a: Integer):Boolean;
Var u: Integer;
Begin
NgTo:=False;
For u := 2 To Trunc(sqrt(a)) Do
If a mod u = 0 Then Exit;
NgTo := a > 1;
End;
Begin
Write('Nhap so phan tu: '); Readln(n);
Writeln('Nhap cac phan tu cua day. Chu y: A[k] >= 2');
For k := 1 to n do Begin
Repeat
Write('A[',k,'] = ');Readln(A[k]);
If A[k] < 2 Then Writeln('Ban can nhap A[k] > 2. Vui long nhap lai!');
Until A[k] >= 2;

vi và diện tích của mỗi đường tròn đó”.
Var r1, r2, r3: Real;
Procedure Nhap( r: Real; k:Byte);
Begin
Repeat
Write('Nhap ban kinh cua duong tron thu ',k,': ');
Readln(r);
If r 0;
End;
Begin
Nhap(r1, 1);
Nhap(r2, 2);
Nhap(r3, 3);
Writeln('Duong tron 1 Chu vi bang:',2 * pi * r1:6:1,' Dien tich bang: ',pi *
sqr(r1):6:1);
Writeln('Duong tron 2 Chu vi bang:',2 * pi * r2:6:1,' Dien tich bang:',pi *
sqr(r2):6:1);
Writeln('Duong tron 3 Chu vi bang:',2 * pi * r3:6:1,' Dien tich bang:',pi *
sqr(r3):6:1);
Readln
End.
Trang 9


-

Chúng ta có thể yêu cầu học sinh thực

thi chương trình trên và chạy thử. Học sinh sẽ phát hiện ra là kết quả chu vi và

các kiến thức về chương trình con một cách có hệ thống . Sau khi học xong về
chương trình con, chúng
tatục
có thể đưa ra Không
sơ đồ sau:
Thủ
Có tham chiếu
Chương trình con

Tham trị
Hàm

Có tham chiếu
Tham biến

-

Tiếp theo, để giúp cho học sinh nhìn
thấy vấn đề có hệ thống một các rõ ràng hơn, đặc biệt là giúp cho học sinh hiểu
Trang 10


rõ các vấn đề về chương trình con. Chẳng hạn đâu là biến toàn cục, đâu là biến
địa phương, khi nào dùng tham biến, khi nào dùng tham trị, các chương trình
con gọi lẫn nhau như thế nào?, ... Chúng ta có thể đưa ra ví dụ sau:
“Viết chương trình nhập vào số cạnh của n tam giác, sau đó tính diện tích
của mỗi tam giác vừa nhập và tổng diện tích của tất cả các tam giác đó”.
Var a:array[1..3,1..100] Of Real; {Bien toan cuc}
Function Ktra(x, y, z: Real): Boolean; {Ham co tham tri}
Begin

Writeln('Tong dien tich cua ',n,' tam giac la: ',tong:6:1);
End;
Begin
Tinh;
Readln
End.
e. Lật ngược vấn đề
Trang 11


-

Xuất phát, ta cho học sinh thực hiện bài
toán sau: “Viết chương trình đổi một xâu ký tự thành chữ HOA”.

Var x:String;
Procedure Doi(x: String);
Var d, i:Integer;
Begin
d := 0;
Write('Doi sang chu hoa: ');
For I := 1 to Length(x) Do
Write(Upcase(x[i]));
End;
Begin
Write('Nhap xau: '); Readln(x);
Doi(x);
Readln
End.
-



f. Xét tương tự
-

Xuất phát từ bài toán: “Viết chương

trình tìm độ dài 3 đường cao của một tam giác khi biết độ dài 3 cạnh của tam
giác đó”.
Var a, b, c, S: Real;
Function Ktra(x, y, z: Real): Boolean;
Begin
Ktra := (x < y + z) And (y < x + z) And (z < x + y);
End;
Procedure Nhap(Var m, n, p: Real);
Begin
Repeat
Write('Nhap do dai canh thu nhat: '); Readln(m);
Write('Nhap do dai canh thu hai : '); Readln(n);
Write('Nhap do dai canh thu ba : '); Readln(p);
If Not Ktra(m, n, p) Then
Writeln('Ba do dai vua nhap khong phai la 3 canh tam giac! Nhap lai:');
Until Ktra(a, b, c);
End;
Function DT :Real;
Var d: Real;
Begin
d := (a + b + c) / 2;
DT := sqrt(d * (d - a) * (d - b) * (d - c));
End;

End;
Procedure Trung_Tuyen;
Begin
Writeln('Trung tuyen qua canh ',a:0:2,' la: ',0.5 * sqrt(2 * (b * b + c * c) - a *
a):0:2);
Writeln('Trung tuyen qua canh ',b:0:2,' la: ',0.5 * sqrt(2 * (a * a + c * c) - b *
b):0:2);
Writeln('Trung tuyen qua canh ',c:0:2,' la: ',0.5 * sqrt(2 * (b * b + a * a) - c *
c):0:2);
End;
Begin
Nhap(a, b, c);
Trung_Tuyen;
Readln
End.
g. Khái quát hóa
Xuất phát từ bài toán: “Tìm ước chung lớn nhất của 2 số ”.
Var a, b: Integer;
Begin
Repeat
Writeln('Nhap vao 2 so:'); Readln(a,b);
If (a0);
Write('UCLN(',a,',',b,') = ');
While a b do Begin
If a > b Then a := a - b
Else b := b - a;
End;
Write(a);
Readln

trình con để tìm ước chung lớn nhất của ba số thành công. Khái quát: chúng ta
yêu cầu học sinh giải bài toán:
“Viết chương trình tìm ước chung lớn nhất của n số ”.
Để thực hiện, ta có thể hướng dẫn học
sinh dùng thủ tục tìm ước chung lớn nhất của hai số. Sau đó, dùng một biến
tạm là u để lưu giữ giá trị đầu tiên của dãy số, tiếp theo ta lần lượt xác định
ước chung lớn nhất của u với từng giá trị của dãy từ vị trí thứ hai. Cuối cùng,
ước chung lớn nhất của dãy chính là giá trị u.
Var A: Array[1..100] Of Integer;
a1, u, i, n: Integer;
Procedure UCLN(Var x, y: Integer);
Var tam, tg: Integer;
Begin
While y0 do Begin
tam := x mod y;
x := y;
y := tam;
End;
End;
Begin
Write('Ban can tinh UCLN cua bao nhieu so? Nhap: '); Readln(n);
For i := 1 to n do Begin
Write('So thu ',i,': '); Readln(A[i]);
End;
Write('UCLN(');
For i := 1 to n-1 do Write(a[i],',');
Write(a[n],') = ');
u := a[1];
For i:= 2 to n do
UCLN(u, a[i]);

For i:=1 to n do Begin
Write('C[',i,'] = '); Readln(C[i]);
Write('W[',i,'] = '); Readln(W[i]);
CW[i] := C[i] / W[i];
End;
End;
Procedure Sapxep;
Var t1, t2: Integer; t3: Real;
Begin
Nhap;
For i := 1 to n - 1 do
For j := n downto i + 1 do Begin
If CW[j] > CW[j-1] Then Begin
t1 := C[j]; C[j] := C[j-1]; C[j-1] := t1;
t2 := W[j]; W[j] := W[j-1]; W[j-1] := t2;
t3 := CW[j]; CW[j] := CW[j-1]; CW[j-1] := t3;
End;
End;
End;
Procedure Luachon;
Trang 16


Var temp: Integer;
Begin
Sapxep;
i := 1; gt := 0; t := 0;
While (i <= n) And (d > 0) And (W[i] > 0) Do Begin
Temp := d Div W[i]; {So do vat duoc chon cua W[i]}
If temp > 0 Then Begin

d := b * b - 4 * a * c;
If d < 0 Then Writeln('Phuong trinh vo nghiem!')
Else
If d = 0 Then Writeln('Phuong trinh co nghiem kep: x1 = x2 = ',-b / (2 *
a):0:1)
Else Begin
Writeln('Phuong trinh co hai nghiem phan biet:');
Writeln('x1 = ',(-b + sqrt(d)) / (2 * a):0:1);
Writeln('x2 = ',(-b - sqrt(d)) / (2 * a):0:1);
End;
Trang 17


End;
Readln
End.
-

Mục tiêu là chia bài toán ban đầu thành

những bài toán nhỏ độc lập. Chẳng hạn: Ta sử dụng chương trình con thành
hai bài toán :
T1: Giải phương trình bậc nhất
T2: Giải phương trình bậc hai
Var a, b, c: Real;
Procedure ptb1(m,n:Real);
Begin
If m = 0 Then
If n = 0 Then Writeln('Phuong trinh co vo so nghiem!')
Else Writeln('Phuong trinh vo nghiem!')

Trang 18


T4: ∆ < 0
T5: Giải phương trình bậc hai
Var a, b, c, d: Real;
Procedure ptb1(m, n : Real);
Begin
If m = 0 Then
If n = 0 Then Writeln('Phuong trinh co vo so nghiem!')
Else Writeln('Phuong trinh vo nghiem!')
Else Writeln('Phuong trinh co mot nghiem: x = ',-n / m:0:1)
End;
Procedure denta_am;
Begin
Writeln('Phuong trinh vo nghiem!');
End;
Procedure denta_0(p, q: Real);
Begin
Writeln('Phuong trinh co nghiem kep: x1 = x2 = ',-q / (2 * p):0:1)
End;
Procedure denta_duong(i, j: Real);
Begin
Writeln('Phuong trinh co hai nghiem phan biet:');
Writeln('x1 = ',(-j + sqrt(d)) / (2 * i):0:1);
Writeln('x2 = ',(-j - sqrt(d)) / (2 * i):0:1);
End;
Procedure ptb2(x, y, z: Real);
Begin
d := y * y - 4 * x * z;


k
tính n! Ở đây chúng ta cần lưu ý với học sinh rằng: Để tính C n ta cần xây dựng
k
chương trình con tính n! sau đó, ta tìm C n bằng công thức trên. Tuy nhiên,

cũng cần phải xây dựng một chương trình con Nhap để tránh việc người sử
dụng nhập các số âm và nhập k > n.
Var k, n: Integer; C:Real;
Procedure Nhap;
Begin
Repeat
Write('Nhap k = '); Readln(k);
Write('Nhap n = '); Readln(n);
If (k < 0) Or (n < 0) Or (k > n) Then Writeln('Nhap lai!');
Until (k > 0) And (n > 0) And (k < n);
End;
Function GT(a:Integer): Integer;
Var kq, i:Integer;
Begin
kq:=1;
For i:=1 to a do kq:=kq * i;
GT:=kq;
End;
Begin
Nhap;
C := GT(n) / (GT(k) * GT(n - k));
Writeln('C = ', C:0:0);
Readln
End.

Begin
Write('Nhap a = '); Readln(a);
Write('Nhap n = '); Readln(n);
Writeln(a,' mu ',n,' = ',Mu(a , n):0:0);
Readln
End.
d. Khái quát hóa
Xuất phát từ bài toán: “Sắp xếp ba số a, b, c theo thứ tự tăng dần”.
Var a,b,c: Real;
Procedure Sapxep(Var x, y, z: Real);
Var tg: Real;
Begin
If x > y Then Begin
tg := x; x := y; y := tg;
End;
If y > z Then Begin
tg := y; y := z; z := tg;
End;
If x > y Then Begin
tg := x; x := y; y := tg;
End;
End;
Begin
Writeln('Nhap vao ba so: ');
Write('So thu nhat: '); Readln(a);
Write('So thu hai : '); Readln(b);
Write('So thu ba : '); Readln(c);
Sapxep(a, b, c);
Writeln('Ba so sau khi sap xep la:');
Write(a:6:0, b:6:0, c:6:0);

If a[i] > a[j] Then Doicho(a[i], a[j]);
End;
Begin
Write('Nhap so phan tu cua day so: '); Readln(n);
For i := 1 to n do Begin
Write('So thu ',i,': '); Readln(a[i]);
End;
Sapxep;
Writeln('Day so sau khi sap xep la:');
For i := 1 to n do Write(a[i]:6:0);
Readln
End.
e. Xét sự biến thiên và phụ thuộc
-

Xét bài toán sau : “Viết chương trình

cho máy nhập vào 3 cạnh của một tam giác. Xét xem ba số đó có phải là ba
cạnh của tam giác hay không? nếu có thì tam giác đó là tam giác có ba góc
nhọn hay tam giác vuông hay tam giác tù? ”
Trước hết, học sinh phải kiểm tra ba số
thực phải thỏa mãn điều kiện là ba số đo của tam giác. Tức là một số phải nhỏ
hơn tổng của hai số còn lại (điều này xảy ra với cả ba số). Sau đó, nếu chúng là
ba số đo của ba cạnh một tam giác thì dạng của tam giác phụ thuộc vào bình
Trang 22


phương của cạnh lớn nhất nhỏ hơn hay bằng hay lớn hơn tổng hai bình phương
của hai cạnh còn lại mà nó là tam giác có ba góc nhọn hay tam giác vuông hay
tam giác tù.

End;
Begin
Nhap(p, q, r);
DangTG(p, q, r);
Readln
End.
3. Gợi động cơ kết thúc
Gợi động cơ kết thúc cũng có tác dụng
nâng cao tính tự giác trong hoạt động học tập của học sinh như các cách gợi
động cơ khác. Mặc dù nó không có tác dụng kích thích đối với nội dung đã qua
hoặc hoạt động đã thực hiện, nhưng nó góp phần gợi động cơ thúc đẩy hoạt
Trang 23


động nói chung và nhiều khi việc gợi động cơ kết thúc ở trường hợp này lại là
sự chuẩn bị gợi động cơ cho những trường hợp tương tự sau này.
Trong thực tế của hoạt động dạy học,
nhiều khi ngay từ đầu hoặc trong khi giải quyết vấn đề, ta chưa thể làm rõ tại
sao lại học nội dung này, tại sao lại thực hiện hoạt động kia. Những câu hỏi
này phải đợi mãi về sau mới được giải đáp hoặc giải đáp trọn vẹn. Như vậy, ta
đã gợi động cơ kết thúc, nhấn mạnh hiệu quả của nội dung hoặc hoạt động đó
với việc giải quyết vấn đề đặt ra.
Xét bài toán sau: “Lập chương trình
cho máy tính tìm các đường trung tuyến của một tam giác khi biết số đo ba
cạnh là a, b, c được nhận vào từ bàn phím”.
Trong bài toán này chúng ta yêu cầu
học sinh chia ra thành nhiều bài toán nhỏ độc lập. Cụ thể là:
Var a, b, c, S: Real;
Function Ktra: Boolean;
Begin

End.
-

Sau khi chương trình đã chạy thông

suốt, ta gọi lại chương trình và cho học sinh thấy được trong bài toán này là
tính các đường trung tuyến của một tam giác nên các hàm Ktra, thủ tục Nhap,
thủ tục BaTT không có tham chiếu. Việc sử dụng những chương trình con này
sẽ được đề cập đến với những tham chiếu trong bài toán cần tính các đường
trung tuyến của nhiều tam giác mà cách xác định ba cạnh của từng tam giác có
thể khác nhau. Để thực hiện được ý định trên, ta yêu cầu học sinh giải bài toán
sau:
“Lập trình cho máy tính in lên màn hình các đường trung tuyến của tam
giác theo độ dài ba cạnh của tam giác đó.
+ Tam giác thứ nhất có độ dài ba cạnh là a1, b1, c1.
+ Tam giác thứ hai có độ dài ba cạnh là a2, b2, c2.
+
Tam giác thứ ba có độ dài ba cạnh là a1 + a2, b1 + b2, c1 + c2”.
Var a1, b1, c1,a2, b2, c2, S: Real;
Function Ktra(x, y, z: Real): Boolean;
Begin
Ktra := (x < y + z) And (y < x + z) And (z < x + y);
End;
Procedure Nhap(Var a, b, c: Real; k: Byte);
Begin
Writeln('Tam giac thu ',k,':');
Repeat
Write('Nhap do dai canh thu nhat: '); Readln(a);
Write('Nhap do dai canh thu hai : '); Readln(b);
Write('Nhap do dai canh thu ba : '); Readln(c);


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status