Sáng kiến kinh nghiệm Gợi động cơ hoạt động trong việc giảng dạy chương trình con

Sáng kiến kinh nghiệm Gợi động cơ hoạt động trong việc giảng dạy chương trình con

II. Định hướng nghiên cứu

1. Mục đích nghiên cứu

 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ụ nghiên cứu

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.

 

doc 31 trang Người đăng danhnam72p Lượt xem 647Lượt tải 0 Download
Bạn đang xem 20 trang mẫu của tài liệu "Sáng kiến kinh nghiệm Gợi động cơ hoạt động trong việc giảng dạy chương trình con", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
PHẦN I 
MỞ ĐẦU
I. Lý do chọn đề tài 
	1. Trong bối cảnh Công nghệ thông tin ngày càng phát triển, việc sử dụng rộng rãi máy tính không còn chỉ bó hẹp trong viện nghiên cứu, các trường đại học, các trung tâm máy tính mà còn mở rộng ra mọi cơ quan, xí nghiệp và nhà máy. Song song với quá trình trên, việc giảng dạy Tin học trong các trường đại học, trung học và phổ thông cũng được đẩy mạnh đi đôi với việc tăng cường trang bị máy vi tính. Chính vì vậy, đối với mỗi giáo viên giảng dạy môn Tin học ở các trường phổ thông, việc tìm hiểu, nghiên cứu các vấn đề về Tin học, cùng với việc tìm các biện pháp giảng dạy Tin học trong nhà trường phổ thông là một công việc cần phải làm thường xuyên, nhằm đáp ứng với sự đòi hỏi ngày càng cao của xã hội.
	2. 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.
	2.1. Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ lực đổi mới phương pháp dạy học theo hướng phát huy tính tích cực chủ động của học sinh trong hoạt động học tập. Điều 24.2 của Luật giáo dục đã nêu rõ : “Phương pháp giáo dục phổ thông phải phát huy tính tích cực, tự giác, chủ động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn học; bồi dưỡng phương pháp tự học, rèn luyện kỹ năng vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm vui, hứng thú học tập cho học sinh”. Như vậy, chúng ta có thể thấy định hướng đổi mới phương pháp dạy học đã được khẳng định, không còn là vấn đề tranh luận. Cốt lõi của việc đổi mới phương pháp dạy học ở trường phổ thông là giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động.
	2.2. Đổ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. 
	2.3. Đổ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ế.
	3. 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 mê học hỏi của học sinh trong việc học tập của các em. Bởi vì, việc học tập tự giác, tích cực, chủ động và sáng tạo đòi hỏi học sinh phải 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 được thực hiện trong dạy học không chỉ đơn giản bằng việc nêu rõ mục tiêu mà quan trọng hơn còn do gợi động cơ.
	4. Turbo Pascal là ngôn ngữ lập trình có cấu trúc, nó được dùng phổ biến ở nước ta hiện nay trong công tác giảng dạy, lập trình tính toán, đồ họa. Turbo Pascal được dùng trong chương trình giảng dạy Tin học ở hầu hết các trường đại học, cao đẳng, trung học phổ thông.
	4.1. 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ý hóa, 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. 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 em hết sức quan tâm.
	4.2. Để thực hiện được điều đó, theo em chúng ta cần phải tìm tòi, nghiên cứu tìm ra những bài toán phù hợp, kích thích được sự độc lập, tích cực của học sinh trong học tập. Trên cơ sở đó, học sinh có thể tự mình tìm ra được những ý tưởng sáng tạo vận dụng thiết thực vào cuộc sống thực tế khi nhu cầu nảy sinh, khi đó các em có thể tự mình hoàn thành được ý tưởng đó.
	4.3. Trên cơ sở những gì mà học sinh được học tập về môn lập trình Pascal, học sinh có thể sử dụng một cách thành thạo các ngôn ngữ khác để hoàn thành tốt hơn những ứng dụng trong thực tế. Bởi vì, ngôn ngữ Pascal có tính cấu trúc mạnh, có cơ sở và nó đòi hỏi chương trình phải chặt chẽ, logic. Đặ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. 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ới tất cả những lý do nêu trên, em quyết định chọn đề tài này.
II. Định hướng nghiên cứu
1. Mục đích nghiên cứu
	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ụ nghiên cứu
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 nghiên cứu
1. Nghiên cứu lý luận
	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ũ.
- So sánh quốc tế : Giúp chúng ta lựa chọn, xây dựng phương án tác động giáo dục trên cơ sở đánh giá, so sánh tài liệu, cách làm của những nước khác nhau.
- Phân tích tiên nhiệm : Thường dựa vào những yếu tố lịch sử, những cách tiếp cận khác nhau của một lý thuyết, những cách định nghĩa khác nhau của một khái niệm, ... để dự kiến những quan niệm có thể có của học sinh về một kiến thức Tin học. Nó cũng được dùng để kiểm nghiệm một hiện tượng, một quá trình có thỏa mãn những tiêu chuẩn, yêu cầu, điều kiện đặt ra hay không.
2. Quan sát - điều tra
	Quan sát điều tra được sử dụng rộng rãi trong nghiên cứu giáo dục. Đó là phương pháp tri giác có mục đích một hiện tượng giáo dục nào đó để thu lượm những số liệu, tài liệu, sự kiện cụ thể đặc trưng cho quá trình diễn biến của hiện tượng mà ta dự định khảo sát. Chúng ta quan tâm đến chất lượng của các mối quan hệ, của các hoạt động, của tình huống. Điều tra giống quan sát ở chỗ cùng dựa vào và khai thác những hiện tượng có sẵn, không chủ động gây nên những tác động sư phạm, nhưng quan sát thiên về xuất phát từ những dấu hiệu bên ngoài, còn điều tra có thể khai thác những thông tin sâu kín từ bên trong, chẳng hạn cho làm những bài kiểm tra rồi đánh giá.
	Quan sát - điều tra giúp chúng ta 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. Nó giúp ta 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. Môi trường tự nhiên là nguồn cung cấp dữ liệu trực tiếp cho ta. Người nghiên cứu đến trực tiếp một nơi nào đó mà họ quan tâm để quan sát 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.
	Quan sát - điều tra thực tiễn sư phạm, chẳng hạn thăm lớp dự giờ sẽ giúp 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.
	Theo mối quan hệ giữa đối tượng quan sát - điều tra với người nghiên cứu thì có các dạng quan sát - điều tra trực tiếp, gián tiếp, công khai, kín đáo. Theo dấu hiệu về thời gian thì có quan sát - điều tra liên tục, gián đoạn.
	Quan sát - điều tra cần có mục đích cụ thể (chẳng hạn để thấy được hoạt động tích cực của học sinh trong giờ học), có nội dung cụ thể (chẳng hạn sự gây động cơ và hướng đích của giáo viên, số lượng học sinh giơ tay xin phát biểu, số lượng câu hỏi, chất lượng câu trả lời của học sinh thể hiện sự suy nghĩ sâu sắc hay hời hợt, sự tập trung chú ý thể hiện qua hướng nhìn, cử chỉ, ... ) và có tiêu chuẩn đánh giá, đo lường các kết quả quan sát cụ thể (chẳng hạn một giờ như thế nào được đánh giá là học sinh hoạt động rất tích cực, khá tích cực, kém tích cực). Các loại dữ liệu thu thập được trong nghiên cứu bao gồm văn bản ghi chép các cuộc phỏng vấn, các sổ ghi chép, ảnh, băng hình, ghi âm, phiếu điều tra, nhật ký, ... giúp ta dựng lại một cách đầy đủ những gì mà ta đã qua ... :6:0);
 Readln
End.
5) 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 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ù.
Var p,q,r: 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
 Writeln('Nhap vao ba canh cua tam giac: ');
 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;
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: 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 độ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
 Ktra := (a < b + c) And (b < a + c) And (c < a + b);
 End;
Procedure Nhap;
 Begin
 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 Then
 Writeln('Ba do dai vua nhap khong phai la 3 canh tam giac! Nhap lai:');
 Until Ktra;
 End; 
Procedure Trung_Tuyen(m, n, p: Real);
 Begin
 Writeln('Trung tuyen qua canh ',m:0:2,' la: ',0.5 * sqrt(2* (n * n + p * p) - m * m):0:2);
 End;
Procedure BaTT;
 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
 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);
 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;
Procedure Trung_Tuyen(m, n, p: Real);
 Begin
 Writeln('Trung tuyen qua canh ',m:0:2,' la: ',0.5* sqrt(2* (n * n + p * p) - m * m):0:2);
 End;
Procedure BaTT(a, b, c:Real; i:Byte);
 Begin
 Writeln('Do dai ba trung tuyen cua tam giac thu ',i,':');
 Trung_tuyen(a, b, c);
 Trung_tuyen(b, a, c);
 Trung_tuyen(c, b, a);
 End; 
Begin
 Nhap(a1, b1, c1, 1);
 Nhap(a2 ,b2, c2, 2);
 BaTT(a1, b1, c1, 1);
 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 GỢI ĐỘNG CƠ TẬP 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à 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 đó.
	- Kiến thức có sẵn và thời gian cần thiết.
Thí dụ : Viết chương trình nhập các điểm của một môn trong một học kỳ. Sau đó tính điểm trung bình môn của môn học đó theo công thức : . Trong đó :
	hs1 : tổng các điểm hệ số 1	l1: số lần điểm hệ số 1
	hs2 : tổng các điểm hệ số 2	 l2 : số lần điểm hệ số 2
	hs3 : Điểm thi học kỳ	
Yêu cầu chỉ nhập 3 lần là đủ, tức là các điểm nhập vào cần phải xử lý theo xâu ký tự sau đó đổi sang số để tính toán.
	Đây là một chương trình tính điểm mà học sinh có thể ứng dụng ngay trong thực tế học tập của mình. Để làm được bài toán này, học sinh cần phải ứng dụng vấn đề thực tế là cần phải biết cách tính điểm TBm sau đó áp dụng các kiến thức về chương trình con và kiến thức về xử lý xâu ký tự để áp dụng thực hiện chương trình. Tuy nhiên chúng ta cũng cần lưu ý khi nhập điểm, điểm hệ số 1 và hệ số 2 là các số nguyên với số lần điểm nhập vào không hạn chế, còn điểm hệ số 3 có thể là số thực chỉ có một điểm duy nhất. Chính vì vậy cần phải có hai thủ tục nhập điểm. Hơn nữa, việc nhập điểm cần lưu ý nhất hai trường hợp điểm 10 và điểm 0 nên chúng ta có thể sử dụng một biến Char để xác định rõ điểm 10 vừa nhập là điểm 10 hay là hai điểm 0 và 1. Trong công việc tính toán, chúng ta cũng cần phải có hai hàm: hàm tính tổng các điểm và hàm đếm số lần điểm của mỗi loại điểm, nếu là các điểm từ 0 đến 9 vấn đề rất đơn giản, nhưng khi có điểm 10 việc đếm số lần điểm cũng như là việc tính tổng các điểm cần phải chia ra thành hai trường hợp:
	+ 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;
 Begin
 Repeat
 Write('Nhap diem he so ',t1,': '); Readln(st1);
 For i:=1 to Length(st1) do Begin
 If (st1[i] = '1') And (st1[i+1] = '0') Then Begin
 Write('Diem 10 o tren la diem 1 va diem 0(y)hay diem 10(n):');
 Readln(ch);
 If ch='y' then Begin
 t:=st1[i]; st1[i] := st1[i+1]; st1[i+1]:=t;
 Writeln('Diem ban nhap se la: ',st1)
 End;
 End;
 End;
 Val(st1, a1, c1);
 If (c1 0) Or (a1<0) Then
 Writeln('Nhap lai!');
 Until (c1 = 0) And (a1>=0);
 End; 
Procedure Nhap2(Var st2:String; t2: Byte);
 Var c2:Integer; a2: Real; 
 Begin
 Repeat
 Write('Nhap diem he so ',t2,': '); Readln(st2);
 Val(st2, a2, c2);
 If (c2 0) Or (a2 > 10) Or (a2<0) Then
 Writeln('Nhap lai!');
 Until (c2 = 0) and (a2 =0);
 End; 
Function Tong(a : String):Integer;
 Var i, s, d, c : Integer; x:String;
 Begin
 s := 0;
 For i := 1 to Length(a) Do Begin
 If (a[i] = '1') And (a[i+1] = '0') Then Begin
 Val(a[i] + a[i+1], d, c);
 s := s + d;
 End
 Else Begin
 Val(a[i], d, c);
 s := s + d;
 End;
 End;
 Tong := s;
 End;
Function Dem(a : String): Integer;
 Var i, l : Integer; x: String;
 Begin
 l := 0;
 For i := 1 to Length(a) Do Begin
 If (a[i] = '1') And (a[i+1] = '0') Then 
 l := l
 Else
 l := l + 1;
 End;
 Dem := l;
 End;
Function Tinh(x, y: String; z: Real): Real;
 Begin
 Val(h3, hs3, k);
 Tinh:=(Tong(hs1) + Tong(hs2)*2 + hs3*3)/(Dem(hs1) + Dem(hs2)*2 + 3);
 End;
Begin
 Writeln('CHUONG TRINH TINH DIEM TRUNG BINH MON');
 Nhap1(hs1,1);
 Nhap1(hs2,2);
 Nhap2(h3,3);
 Writeln('Diem he so 1: ',hs1);
 Writeln('Diem he so 2: ',hs2);
 Writeln('Diem he so 3: ',h3);
 Writeln('Ket qua TBm : ',Tinh(hs1,hs2,hs3):0:1);
 Readln
End.
Email: huynhvumt@gmail.com
Website: 

Tài liệu đính kèm:

  • docsang_kien_kinh_nghiem_goi_dong_co_hoat_dong_trong_viec_giang.doc