SKKN: ĐỔI MỚI PHƯƠNG PHÁP DẠY HỌC MÔN TIN HỌC LỚP 11 NỘI DUNG CHƯƠNG TRÌNH CON NHẰM GÂY HỨNG THÚ VÀ NÂNG CAO KẾT QUẢ HỌC TẬP MÔN TIN HỌC - Pdf 56

.

SKKN: ĐỔI MỚI PHƯƠNG PHÁP DẠY HỌC MÔN TIN HỌC LỚP 11
NỘI DUNG CHƯƠNG TRÌNH CON NHẰM GÂY HỨNG THÚ VÀ NÂNG
CAO KẾT QUẢ HỌC TẬP MÔN TIN HỌC
PHẦN I . MỞ ĐẦU
I. Lý do
Trong nghiệp vụ của người thầy giáo có hai vấn đề quan trọng: thứ nhất là
thực tiễn về tiềm năng - những kiến thức lý thuyết mà họ được học rất cơ bản.
Thứ hai là thực tiễn về nghiệp vụ - thầy giáo phải biết cách truyền thụ kiến thức
phù hợp với trình độ của học sinh. Trong đó, thực tiễn thứ hai là điều quyết định
trong nghiệp vụ của thầy giáo, nó đánh giá chất lượng giảng dạy của thầy giáo.
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. Thầy
giáo 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.
Đổi mới phương pháp dạy học theo hướng tích cực hóa hoạt động của học
sinh là một quá trình lâu dài; không thể ngày một ngày hai mà đông đảo giáo viên
từ bỏ được kiểu dạy học truyền thụ kiến thức, tiếp thu thụ động đã quen thuộc từ
lâu. việc phát triển các phương pháp tích cực đòi hỏi một số điều kiện, trong đó
quan trọng nhất là bản thân mỗi giáo viên cần có một sự nỗ lực để tìm tòi, sáng
tạo trong công tác giảng dạy của mình.
Đổi mới phương pháp dạy học là một vấn đề hết sức quan trọng, nhất là với
bộ môn Tin học hiện đang được đưa vào giảng dạy ở các trường phổ thông. Là
một giáo viên giảng dạy bộ môn này, theo em không phải cứ tìm được nhiều bài
toán khó, bài toán hay để giảng dạy cho học sinh. Mà vấn đề đặt ra là chúng ta
cần phải tích cực tìm tòi, sáng tạo trong việc đưa ra những bài toán đó để giúp
cho học sinh có sự hứng thú, tìm tòi sáng tạo trong quá trình giài quyết học tập,
từ đó biết vận dụng linh hoạt trong các tình huống cụ thể ngoài thực tế.
Trong việc giảng dạy cho học sinh, ngoài việc giúp học sinh lĩnh hội những
kiến thức cơ bản. Thầy giáo còn phải biết kích thích tính tích cực, sự sáng tạo say

độ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.
II. Định hướng
1. Mục đích
Tạo động cơ cho học sinh ý thức về ý nghĩa của các hoạt động khi sử dụng
chương trình con trong công việc lập trình. Từ đó, học sinh có thể liên hệ , vận
dụng sáng tạo vào giải quyết các bài toán lập trình và các tình huống thực tế.
2. Nhiệm vụ
Qua việc nghiên cứu các vấn đề về chương trình con của ngôn ngữ lập trình
Pascal, các tài liệu về phương pháp giảng dạy. Từ đó, đưa ra các biện pháp có thể
gợi động cơ hoạt động cho học sinh thông qua các ví dụ cụ thể về chương trình
con.
III. Phương pháp
Trong nghiên cứu lý luận người ta dựa vào những tài liệu sẵn có, những lý
thuyết đã được khẳng định, những thành tựu của nhân loại trên những lĩnh vực
khác nhau như Tâm lý học, Giáo dục học, Tin học, ... để xem xét vấn đề, tìm ra
giải pháp hợp lý có sức thuyết phục vận dụng vào PPDH Tin học.
Người ta cũng nghiên cứu cả những kết quả của bản thân chuyên ngành PPDH
Tin học để kế thừa những cái hay, phê phán và gạt bỏ những cái dở, bổ xung và
hoàn chỉnh những nhận thức đã đạt được.
Những hình thức thường dùng trong nghiên cứu lý luận là:
- Phân tích tài liệu lý luận : Giúp chúng ta chọn đề tài, đề ra mục đích nghiên
cứu, hình thành giả thuyết khoa học, xác định tư tưởng chủ đạo và đánh giá sự
kiện. Khi nghiên cứu lý luận, ta cần phân tích, tổng hợp, so sánh, khái quát để tìm
ra ý mới. Cái mới ở đây có thể là một lý thuyết hoàn toàn mới, nhưng cũng có thể
là một cái mới đan kết với những cái cũ, có thể là một sự tổng hợp những nét
riêng lẻ đã chứa trong cái cũ, nêu bật cái bản chất từ những cái cũ, bổ xung, cụ
thể hóa lý thuyết cũ.

chúng ta nhận thức được thực trạng dạy học Tin, phát hiện được những vấn đề
thời sự cấp bách cần nghiên cứu, giúp ta thu được những tài liệu sinh động và bổ
ích cho nhiệm vụ nghiên cứu.
Trong khi quan sát - điều tra diễn biến thực của những hiện tượng sư
phạm, có khi người ta tình cờ phát hiện ra những sự kiện, hiện tượng sư phạm
mới ngoài dự kiến ban đầu.
Tổng kết kinh nghiệm thực chất 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.
Bài học kinh nghiệm cần trình bày theo trình tự sau:
- Tên bài học kinh nghiệm
- Nêu bối cảnh xuất hiện vấn đề mà khi giải quyết dẫn đến bài học kinh
nghiệm.
- Những kết quả đạt được gắn với nhiệm vụ nghiên cứu.
- Hệ thống biện pháp đã vận dụng đạt kết quả cao.
- Đánh giá tác dụng, hiệu quả của bài học kinh nghiệm, đưa ra nhận định có
tính khái quát về bài học mang tính lý luận.
Tổng kết kinh nghiệm không chỉ đơn giản là trình bày lại những công việc đã
làm và những kết quả đã đạt được. Là một phương thức nghiên cứu khoa học, nó
phải được tiến hành theo một quy trình nghiêm túc,
Những bước của quá trình phát hiện có thể là:

7



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, chúng 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 hóa
vì lý do sư phạm trong trường hợp cần thiết.
- Việc nêu vấn đề không đòi hỏi quá nhiều tri thức bổ xung.
- Con đường từ lúc nêu vấn đề cho tới khi giải quyết vấn đề càng ngắn càng
tốt.
Mặc dù Tin học phản ánh thực tế một cách toàn bộ và nhiều tầng. Tuy nhiên
không phải bất cứ nội dung nào, hoạt động nào cũng có thể gợi động cơ xuất phát
từ thực tế. Vì vậy, ta còn tận dụng cả những khả năng gợi động cơ xuất phát từ
nội bộ Tin học.
Gợi động cơ từ nội bộ Tin học là nêu vấn đề Tin học xuất phát từ nhu cầu Tin
học, từ việc xây dựng khoa học Tin hoc, từ những phương thức tư duy và hoạt
động Tin học. Gợi động cơ theo cách này là cần thiết vì:
- Việc gợi động cơ xuất phát từ thực tế không phải bao giờ cũng thực hiện
được.
- Việc gợi động cơ từ nội bộ Tin học sẽ giúp học sinh hình dung được đúng sự
hình thành và phát triển của Tin học cùng với những đặc điểm của nó và có thể
dần dần tiến tới hoạt động Tin học một cách độc lập.
Thông thường khi bắt đầu một nội dung lớn, chẳng hạn một phân môn hay một
chương ta nên cố gắng xuất phát từ thực tế. Còn đối với từng bài hay từng phần
của bài thì cần tính tới những khả năng gợi động cơ từ nội bộ Tin học. Đó là
những cách sau đây:
Xét bài toán : “Viết chương trình cho máy tính chu vi, diện tích và đường chéo
của ba hình chữ nhật theo hai kích thước của mỗi hình. Trong đó:

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);
Readln
End.
Chương trình trên để thực hiện được yêu cầu của đề bài, chúng ta phải viết đi
viết lại ba dòng liên tiếp tính chu vi, diện tích và đường chéo của từng hình chữ
nhật. Giả sử nếu phải tính đến n hình chữ nhật thì vấn đề quả thực là hết sức phức
tạp. Trong bài toán trên ta còn chưa có phần kiểm tra điều kiện nhập vào của mỗi
hình. Nếu có thêm điều kiện này, chắc chắn chương trình còn dài nữa. Vấn đề đặt
ra là: làm thế nào có thể xóa bỏ được sự hạn chế này? Ở đây, chúng ta có thể
hướng dẫn cho học sinh sử dụng chương trình con để khắc phục sự hạn chế đó.
Thay vì phải viết nhiều lần lệnh nhập, tính đi tính lại cho từng hình ta có thể viết
2 thủ tục:
1. Thủ tục nhập hai cạnh của hình chữ nhật.
2. Thủ tục Tính ba giá trị cho mỗi hình.

10


.

Var a1, b1, a2, b2: Real;
Procedure Nhap(Var x, y: Real; i: Byte);
Begin

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;
End;

11


.

Writeln('Cac so nguyen to cua day so tren la:');
For k := 1 to n do
If NgTo(A[k]) Then Write(A[k]:6);
Readln
End.
Từ chương trình trên chúng ta có thể giúp cho học sinh thấy được việc sử dụng
chương trình con có thể hợp lý hóa, tiết kiệm công sức lập trình. Đồng thời,
chương trình con giúp cho người lập trình dễ sửa chữa, dễ kiểm tra. Cụ thể là với
bài toán trên chúng ta có thể sửa chữa thành bài toán: “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à hợp số” chỉ bằng hai câu lệnh:
- Dòng lệnh Writeln(‘Cac so nguyen to cua day so tren la:’); Sửa thành:
Writeln(‘Cac so la hop so cua day so tren la:’);.
- Dòng lệnh : If NgTo(A[k]) Then Write(A[k]:6) ta thay bằng dòng lệnh If Not
NgTo(A[k]) Then Write(A[k]:6).

12


.

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à diện tích của cả ba đường tròn đều bằng
0. Vấn đề đặt ra là: Chương trình sai ở chỗ nào? Lúc này giáo viên có thể khẳng
định sự phân biệt giữa tham biến và tham trị, các giá trị của tham biến được lưu
giữ khi ra ngoài chương trình con, còn giá trị của tham trị chỉ lưu giữ khi thực
hiện chương trình con, nếu ra khỏi chương trình con nó sẽ không còn lưu giữ giá
trị đó. Điều này sẽ giúp cho chúng ta chính xác hóa khái niệm tham biến và tham
trị cho học sinh.
Chương trình trên cần sửa lại như sau:
Var r1, r2, r3: Real;
Procedure Nhap(Var 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 *


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
Ktra := (x < y + z) And (y < x + z) And (z < x + y);
End;
Procedure Nhap(Var a, b, c: Real; i:Byte); {Thu tuc co tham bien}
Begin
Writeln('Nhap vao ba canh cua tam giac thu ',i,': ');
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);
If Not Ktra(a, b, c) Then
Writeln('Ba do dai vua nhap khong phai la 3 canh tam giac! Nhap lai:');
Until Ktra(a, b, c);
End;
Function DT(m, n, p:Real): Real; {Ham co tham tri}
Var d: Real; {Bien cuc bo}
Begin
d := (m + n + p) / 2;
DT := sqrt(d * (d - m) * (d - n) * (d - p));
End;
Procedure Tinh; {Thu tuc khong co tham chieu}
Var k, n, j: Integer; tong: Real; {Bien cuc bo}
Begin

End;
Begin
Write('Nhap xau: '); Readln(x);
Doi(x);
Readln
End.
Ngược lại, chúng ta đặt câu hỏi: Nếu ta cần đổi một xâu ký tự thành xâu chữ
thường thì làm thế nào?
Học sinh đã biết trong bảng mã ASCII mỗi ký tự viết hoa A, B, C, ... , Z được
mã hóa bằng các con số từ 65 đến 90. Còn các ký tự thường a, b, c, ... z được mã
hóa bằng các con số từ 97 đến 122. Ta thấy rõ mỗi ký tự viết hoa và viết thường
của một chữ cách nhau 32 đơn vị. Chính vì vậy, ta có thể sử dụng quy luật này để
đổi một xâu ký tự viết HOA thành xâu ký tự viết thường bằng cách dùng một
vòng For chạy từ đầu xâu đến cuối xâu và đổi từng ký tự thành mã ASCII, nếu
gặp ký tự viết hoa, ta cộng mã ASCII của nó thêm 32 đơn vị. Chương trình như
sau:
Var x: String;
Procedure Doi(x: String);
Var d, i:Integer;
Begin
d := 0;
Write('Doi sang chu thuong: ');
For i := 1 to Length(x) Do Begin
d := ord(x[i]);
If (d >= 65) And (d
DT := sqrt(d * (d - a) * (d - b) * (d - c));
End;
Procedure Dcao(m: Real);
Begin
Writeln('Duong cao qua canh ', m:0:2,' la: ',2 * S / m:0:2);
End;
Begin
Nhap(a, b, c);
S:=DT;
DCao(a); DCao(b); DCao(c);
Readln
End.
Tương tự, chúng ta yêu cầu học sinh giải bài toán sau:
“Viết chương trình tìm độ dài 3 đường trung tuyến của một tam giác khi biết
ba 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 a, b, c: Real);
Begin
Repeat

16


.

Write('Nhap do dai canh thu nhat: '); Readln(a);

Else b := b - a;
End;
Write(a);
Readln
End.
Tiếp theo, ta yêu cầu học sinh: “Sử dụng chương trình con để tìm ước chung
lớn nhất của ba số ”. Đến đây, để viết hàm tính ước chung lớn nhất của hai số,
chúng ta nên hướng dẫn học sinh sử dụng thuật toán Ơclit để viết chương trình
nhằm tăng tốc độ tính toán.
Var a, b, c, tam: Integer;
Function UCLN(Var x, y: Integer): Integer;

17


.

Var tam: Integer;
Begin
While y0 do Begin
tam := x mod y;
x := y;
y := tam;
End;
UCLN := x;
End;
Begin
Writeln('Nhap ba so: '); Readln(a, b, c);
Write('UCLN(',a,',',b,',',c,') = ');
tam := UCLN(a, b);

For i:= 2 to n do
UCLN(u, a[i]);

18


.

Write(u); Writeln;
Readln
End.
Thật vậy, việc xét tương tự, việc xét khái quát hóa, việc xét sự liên hệ và phụ
thuộc chỉ có tác dụng gợi động cơ người học sinh đã quen thuộc với những cách
xem xét này, đã trải nghiệm thành công nhiều lần là việc theo cách đó. Để thực
hiện được điều này khi dạy học cho học sinh về chương trình con. Chúng ta có
thể yêu cầu học sinh giải bài toán sau:
“Có một cái túi chứa tối đa D (kg) với n đồ vật, Cần chọn các đồ vật sao cho
giá trị của túi là lớn nhất. Biết rằng mỗi đồ vật i có khối lượng là W[i] và giá trị
là C[i] đồng (i = 1, 2, ..., n ”.
Var C, W:Array[1..100] Of Integer;
CW: Array[1..100] Of Real;
n, i, j, d, d1, gt, t: Integer;
Procedure Nhap;
Begin
Write('Nhap so luong cac do vat: '); Readln(n);
Write('Nhap khoi luong cua tui: '); Readln(D); D1:=D;
Writeln('Nhap cac gia tri cua C va W: ');
For i:=1 to n do Begin
Write('C[',i,'] = '); Readln(C[i]);
Write('W[',i,'] = '); Readln(W[i]);

Writeln('Do vat C[',i,'] = ',C[i],' va W[',i,'] = ',W[i],' duoc chon co so luong
',temp);
d := d - temp * W[i];
t := t + W[i] * temp;
gt := gt + temp * C[i];
End;
i := i + 1;
End;
Writeln('Gia tri toi uu co the dat duoc la:');
Writeln('Khoi luong do vat dung ',t,'.tui dung duoc ',d1,'. Con thua ',d1 - t);
End;
Begin
Luachon;
Readln
End.
CHƯƠNG II: ĐỘNG CƠ TRUNG GIAN
1) Hướng đích
Xuất phát từ bài toán giải phương trình bậc hai:
Var a, b, c, d: Real;
Begin
Writeln('Nhap 3 he so cua phuong trinh:');
Write('a = '); Readln(a);
Write('b = '); Readln(b);
Write('c = '); Readln(c);
If a = 0 Then
If b = 0 Then
If c = 0 Then Writeln('Phuong trinh co vo so nghiem!')
Else Writeln('Phuong trinh vo nghiem!')
Else Writeln('Phuong trinh co mot nghiem: x = ',-c/b:0:1)
Else Begin

End;
Procedure ptb2(x, y, z: Real);
Var d: Real;
Begin
D := y * y - 4 * x * z;
If d < 0 Then Writeln('Phuong trinh vo nghiem!')
Else
If d = 0 Then Writeln('Phuong trinh co nghiem kep: x1 = x2 = ',-y / (2 *
x):0:1)
Else Begin
Writeln('Phuong trinh co hai nghiem phan biet:');
Writeln('x1 = ',(-y + sqrt(d)) / (2 * x):0:1);
Writeln('x2 = ',(-y - sqrt(d)) / (2 * x):0:1);
End;
End;
Begin
Writeln('Nhap 3 he so cua phuong trinh:');
Write('a = '); Readln(a);
Write('b = '); Readln(b);
Write('c = '); Readln(c);
If a=0 Then ptb1(b, c)
Else ptb2(a, b, c);
Readln
End.
Ta lại thấy trong bài toán trên việc giải phương trình bậc hai có ba trường hợp
xảy ra. Ta nên chia tiếp thành 5 bài toán nhỏ như sau:
T1: Giải phương trình bậc nhất
T2:  > 0

21

Begin
d := y * y - 4 * x * z;
If d < 0 Then denta_am
Else
If d = 0 Then denta_0(x, y)
Else denta_duong(x, y);
End;
Begin
Writeln('Nhap 3 he so cua phuong trinh:');
Write('a = '); Readln(a);
Write('b = '); Readln(b);
Write('c = '); Readln(c);
If a = 0 Then ptb1(b, c)
Else ptb2(a, b, c);
Readln
End.
2) Quy lạ về quen

22


.

n!

k
Xét bài toán : Tính C nk . Học sinh đã biết công thức : C n  k!(n  k )! . Bài toán
này ta quy về bài toán quen thuộc là tính n! Ở đây chúng ta cần lưu ý với học sinh
rằng: Để tính C nk ta cần xây dựng chương trình con tính n! sau đó, ta tìm C nk 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

End;
Begin
Write('Nhap n = '); Readln(n);
Writeln(n,'! = ', GT(n):0:0);
Readln
End.
Tương tự, chúng ta yêu cầu học sinh thực hiện giải bài toán: “Tính an bằng
thuật toán đệ quy”

23


.

Var a, n: Integer;
Function Mu(x:Integer; y:Integer):Real;
Var T: Real;
Begin
If y = 0 Then Mu:=1
Else Begin
Mu:=Mu(x, y - 1) * x;
End;
End;
Begin
Write('Nhap a = '); Readln(a);
Write('Nhap n = '); Readln(n);
Writeln(a,' mu ',n,' = ',Mu(a , n):0:0);
Readln
End.
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”.


.

nhất? đó là vì x, y, z, tg là các địa chỉ lưu trữ những giá trị. Những giá trị này bị
thay đổi qua những lệnh gán. Địa chỉ của biến thì không đổi, nhưng nội dung của
biến thì đã thay đổi khi thực hiện lệnh gán.
Tiếp theo, chúng ta có thể nêu câu hỏi: Khái quát, nếu phải sắp xếp n số theo
thứ tự tăng dần ta phải làm thế nào? Ta có chương trình như sau:
Var a: Array[1..100] Of Real;
i,j,n: Integer;
Procedure Doicho(Var x,y:Real);
Var tg:Real;
Begin
Tg := x; x := y; y := tg;
End;
Procedure Sapxep;
Begin
For i := 1 to n - 1 do
For j := i + 1 to n do
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

Until Ktra(a, b, c);
End;
Procedure DangTG(m, n, p: Real);
Var tg: Real;
Begin
If m < n Then Begin
tg := n; n := m; m := tg;
End;
If m < p Then Begin
tg := p; p := m; m := tg;
End;
m := sqr(m); n := sqr(n); p := sqr(p);
If m < n + p Then Writeln('la tam giac co ba goc nhon!')
Else
If m = n + p Then Writeln('La tam giac vuong!')
Else Writeln('La tam giac co mot goc tu!');
End;
Begin
Nhap(p, q, r);
DangTG(p, q, r);
Readln
End.
CHƯƠNG III: ĐỘNG CƠ KẾT THÚC
độ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 độ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.
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

Begin
Trung_tuyen(a, b, c);
Trung_tuyen(b, a, c);
Trung_tuyen(c, b, a);
End;
Begin
Nhap;
BaTT;
Readln
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

27


.

BaTT(a2, b2, c2, 2);
BaTT(a1 + a2, b1 + b2, c1 + c2, 3);
Readln
End.
CHƯƠNG IV :PHỐI HỢP NHIỀU CÁCH TRUNG VÀO NHỮNG TRỌNG
ĐIỂM
Trên đây chúng ta đã xét đến những khả năng gợi động cơ xuất phát từ nội
dung dạy học. Ngoài ra, còn có những khả năng gợi động cơ không gắn với nội
dung như khen, chê, cho điểm, ... Để phát huy tác dụng kích thích, thúc đẩy hoạt
động học tập, cần phải phối hợp những cách gợi động cơ khác nhau có chú ý đến
xu hướng phát triển của cá nhân học sinh, tạo ra một sự hợp đồng tác dụng của
nhiều cách gợi động cơ, cách nọ bổ xung cách kia. Chẳng hạn, có thể gợi động cơ
cho một nội dung dạy học hoặc một hoạt động nào đó bằng cách nhấn mạnh tầm
quan trọng của nội dung hoặc của một hoạt động này đối với một nghề nào đó
trong xã hội. Tuy nhiên cách gợi động cơ hướng nghiệp này lại có nhược điểm là

28


.

nó không hấp dẫn đối với học sinh không có dự định làm nghề đó sau này. Vì vậy
có thể bổ xung bằng cách nhấn mạnh rằng nắm được nội dung đó, thực hiện được
hoạt động đó là một yếu tố văn hóa phổ thông của tất cả mọi người trong xã hội.
Cũng cần lưu ý rằng, muốn gợi động cơ cho mọi nội dung và mọi hoạt động là
không hợp lý và không khả thi. Trong một tiết học, việc gợi động cơ cần tập
trung vào một số nội dung hoặc hoạt động nhất định mà việc quyết định cần căn
cứ vào những yếu tố sau đây:
- Tầm quan trọng của nội dung hoạt động cần được xem xét.
- Khả năng gợi động cơ ở nội dung đó hoặc hoạt động đó.

+ Trường hợp có điểm 10: Ta xử lí hàm đếm bằng cách nếu gặp ký tự 1 và 0 thì
đếm giữ nguyên, đến số 0 thì tính từ đó. Như vậy, gặp điểm 10 sẽ chỉ đếm là 1.
+ Trường hợp điểm từ 0 đến 9: Đếm bình thường và việc tính tổng cũng vậy,
có điều để tính tổng các phần tử chúng ta cần sử dụng một vòng For duyệt toàn
bộ các phần tử của xâu, với mỗi ký tự ta lại dùng hàm Val để đổi ký tự đó sang số
để tính toán.
Cuối cùng, ta sử dụng hàm Tinh để tính điểm trung bình môn theo các hàm
tính tổng và hàm đếm đã thực hiện như trên.
Chương trình như sau:
Var hs1, hs2 , h3: String; hs3: Real; k: Integer;
Procedure Nhap1(Var st1: String; t1: Byte);
Var a1, c1, i, tam: Integer; ch: Char; t: Char;

29



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