Sáng kiến kinh nghiệm về chương trình con: 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 nội dung 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 tôi hết sức quan tâm.
THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 MỤC LỤC MỤC LỤC I ĐẶT VẤN ĐỀ Lý chọn đề tài 2 Mục đích nghiên cứu 3 Đối tượng nghiên cứu 4 Phạm vi nghiên cứu Phương pháp nghiên cứu II PHẦN NỘI DUNG Cơ sở lý luận Cơ sở thực tiễn Một số biện pháp 3.1) Tạo động mở đầu 3.2) Tạo động trung gian 21 3.2.1)Hướng đích .21 3.2.2)Quy lạ quen .25 3.3) Động kết thúc 29 3.4) Phối hợp nhiều cách để tạo động học tập cho học sinh 33 III PHẦN KẾT LUẬN 38 Kết thu .38 Kết luận 40 TÀI LIỆU THAM KHẢO 41 I ĐẶT VẤN ĐỀ THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 1.Lý chọn đề tài : Đổi phương pháp dạy học theo hướng tích cực hóa hoạt động học sinh q trình lâu dài; khơng thể hai mà đông đảo giáo viên từ bỏ 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 phương pháp tích cực địi hỏi số điều kiện, quan trọng thân giáo viên cần có nỗ lực để tìm tịi, sáng tạo cơng tác giảng dạy Đổi phương pháp dạy học vấn đề quan trọng, giáo viên giảng dạy mơn Tin học, theo tơi khơng phải tìm nhiều tốn khó, tốn hay để giảng dạy cho học sinh Mà vấn đề đặt cần phải tích cực tìm tịi, sáng tạo việc đưa tốn để giúp cho học sinh có hứng thú, tìm tịi sáng tạo q trình giải tốn, từ biết vận dụng linh hoạt tình cụ thể thực tế Trong việc giảng dạy cho học sinh, việc giúp học sinh lĩnh hội kiến thức Thầy giáo 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 học sinh việc học tập em Bởi vì, việc học tập tự giác, tích cực, chủ động sáng tạo địi hỏi học sinh phải có ý thức mục tiêu đặt tạo động lực bên thúc đẩy thân họ hoạt động để đạt mục tiêu Turbo Pascal ngơn ngữ lập trình có cấu trúc, dùng phổ biến nước ta công tác giảng dạy, lập trình tính tốn, đồ họa Turbo Pascal dùng chương trình giảng dạy Tin học hầu hết trường đại học, cao đẳng, trung học phổ thông Trong vấn đề Tin học đưa vào giảng dạy chương trình bậc học phổ thơng Khi nói đến vấn đề dạy học lập trình cho học sinh, vấn đề dạy học nội dung chương trình vấn đề chiếm vai trị quan trọng Bởi vì, sử dụng chương trình để hợp lý hóa, tiết kiệm cơng sức lập trình Đồng thời, chương trình giúp cho người lập trình dễ sửa THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 chữa, dễ kiểm tra Vấn đề đặt là: gợi động hoạt động cho học sinh giảng dạy chương trình nào? Đó vấn đề mà thân quan tâm Trên sở mà học sinh học tập mơn lập trình Pascal, học sinh sử dụng cách thành thạo ngôn ngữ khác để hoàn thành tốt ứng dụng thực tế Bởi vì, ngơn ngữ Pascal có tính cấu trúc mạnh, có sở địi hỏi chương trình phải chặt chẽ, logic Đặc biệt, học chương trình con, học sinh hiểu cách sâu sắc ngơn ngữ lập trình, nhìn nhận vấn đề cách sáng sủa hơn, chặt chẽ chương trình giúp cho em hồn thành chương trình lớn vượt tốn bình thường mà nội mơn học địi hỏi Chính vậy, việc gợi động cho học sinh việc dạy học chương trình cơng việc quan trọng, địi hỏ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 đề cách tích cực hơn, sáng tạo giúp cho em u thích nhiều ngơn ngữ lập trình Pascal Xuất phát từ sở trên, chọn đề tài: “Một số biện pháp tạo hứng thú học tập cho học sinh học nội dung chương trình mơn Tin học 11” Mục đích nghiên cứu: Tạo động cho học sinh ý thức ý nghĩa hoạt động sử dụng chương trình cơng việc lập trình Từ đó, học sinh vận dụng sáng tạo để giải tốn lập trình xử lí tình thực tế Qua việc nghiên cứu vấn đề chương trình ngơn ngữ lập trình Pascal, tài liệu phương pháp giảng dạy Từ đó, đưa biện pháp gợi động hoạt động cho học sinh thông qua ví dụ cụ thể chương trình THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 3.Đối tượng nghiên cứu: - Học sinh lớp 11 trường THPT Cao Bá Quát năm học 2019 - 2020 - Sử dụng số ví dụ học Phạm vi nghiên cứu: Ngơn ngữ lập trình Turbo Pascal nói riêng nhiều, phong phú Tuy nhiên phạm vi sáng kiến kinh nghiệm tơi trình bày số biện pháp tạo hứng thú để nâng cao kết học tập cho học sinh học nội dung chương trình con, kinh nghiệm cá nhân qua nội dung cụ thể sau: - Tạo động mở đầu - Tạo động trung gian - Tạo động kết thúc - Phối hợp nhiều cách để tạo động học tập cho học sinh Phương pháp nghiên cứu: - Kết hợp thực tiễn giáo dục trường THPT Cao Bá Quát - Đọc kỹ sách giáo khoa, sách giáo viên Tin học 11, tài liệu sáng kiến kinh nghiệm số tài liệu tham khảo khác - Tích lũy kiến thức từ nhiều năm giảng dạy - Điều tra thực tế, đánh giá kết học sinh trước sau thực đề tài, phân tích tìm ngun nhân từ đưa giải pháp THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 II PHẦN NỘI DUNG 1.Cơ sở lí luận: Pascal ngơn ngữ lập trình cấp cao Niklaus Wirth, giáo sư điện toán trường đại học Kỹ thuật Zurich (Thụy sĩ) thiết kế công bố vào năm 1971 đặt tên Pascal để tưởng niệm nhà Toán học Triết học tiếng Blaise Pascal Đây ngơn ngữ lập trình có cấu trúc đơn giản, rõ ràng, cấu trúc chặt chẽ, dễ viết, dễ hiểu dễ sửa chữa, cải tiến Do Pascal nhiều quốc gia có Việt Nam đưa vào chương trình giảng dạy tin học trường phổ thông đại học môn học sở, đại cương Ở trường phổ thông không trọng học chuyên sâu ngơn ngữ lập trình để tạo phần mềm máy tính mà tập trung rèn luyện kĩ tư logic, tư hệ thống sáng tạo không để giải vấn đề tin học mà cịn kĩ vơ quan trọng để giải nhiều vấn đề sống Học Pascal giúp cho ta hiểu cách làm việc máy tính, cách giao tiếp để lệnh cho máy tính làm việc theo điều khiển người thơng qua ngơn ngữ lập trình Các em tạo chương trình thú vị cách sử dụng câu lệnh Pascal Cũng giống mơn học khác tốn học, vật lý, hóa học … em thực hiểu u thích mơn tin học em tìm thấy nhiều niềm vui, đam mê tìm hiểu khám phá điều mẻ đầy hấp dẫn môn tưởng chừng khô khan 2.Cơ sở thực tiễn: Qua thời gian giảng dạy trường, nhận thấy học Pascal học sinh thường khơng thích thú với mơn học nhiều lý khó hiểu, tiếp thu chậm, địi hỏi tư nhiều, … nên việc viết chương trình chạy máy tính em khó khăn Do để học tốt địi hỏi học sinh phải có hứng thú Cốt lõi việc đổi phương pháp dạy học giúp học sinh u thích, hứng thú với mơn học, hướng tới việc học tập chủ động, THPT Cao Bá Quát Sáng kiến kinh nghiệm mơn Tin học 11 chống lại thói quen học tập thụ động Để tạo cho em niềm hứng khởi với môn học đưa số biện pháp tạo hứng thú học tập cho học sinh học nội dung chương trình mơn Tin học 11 Một số biện pháp Làm cho học sinh có ý thức ý nghĩa hoạt động đối tượng hoạt động Gợi động nhằm làm cho mục tiêu sư phạm biến thành mục tiêu cá nhân học sinh, vào bài, đặt vấn đề cách hình thức Ở lớp dưới, thầy giáo thường dùng cách cho điểm, khen chê, thông báo kết học tập cho gia đình, để gợi động Càng lên lớp cao, với trưởng thành học sinh, với trình độ nhận thức ngày cao, cách gợi động xuất phát từ nội dung hướng vào nhu cầu nhận thức, nhu cầu đời sống, trách nhiệm xã hội học sinh ngày trở nên quan trọng 3.1) Tạo động mở đầu Việc xuất phát từ thực tế có tác dụng gợi động cho học sinh nhận thức rõ Tin học bắt nguồn từ nhu cầu đời sống thực tế Vì vậy, cần khai thác triệt để khả để gợi động xuất phát từ thực tế Tuy nhiên, để gợi động xuất phát từ thực tế cần ý điều kiện sau: + Vấn đề đặt phải đảm bảo tính chân thực, đương nhiên đơn giản hóa lý sư phạm trường hợp cần thiết + Việc nêu vấn đề khơng địi hỏi nhiều tri thức bổ sung + Con đường từ lúc nêu vấn đề giải vấn đề ngắn tốt Mặc dù Tin học phản ánh thực tế cách toàn nhiều tầng Tuy nhiên nội dung nào, hoạt động gợi động xuất phát từ thực tế Vì vậy, ta cịn tận dụng khả gợi động xuất phát từ nội Tin học THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 Gợi động từ nội Tin học 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 học, từ phương thức tư hoạt động Tin học Gợi động theo cách cần thiết vì: - Việc gợi động xuất phát từ thực tế thực - Việc gợi động từ nội Tin học giúp học sinh hình dung hình thành phát triển Tin học với đặc điểm tiến tới hoạt động Tin học cách độc lập Thông thường bắt đầu nội dung lớn, chẳng hạn phân môn hay chương ta nên cố gắng xuất phát từ thực tế Còn hay phần cần tính tới khả gợi động từ nội Tin học Đó cách sau đây: Xét tốn : “Viết chương trình cho máy tính chu vi, diện tích đường chéo ba hình chữ nhật theo hai kích thước hình Trong đó: - Hình thứ có hai kích thước a1, a2 - Hình thứ hai có hai kích thước b1, b2 - Hình thứ ba có hai kích thước a1+b1 a2*b2 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 := * (a1 + b1); c2 := * (a2 + b2); c3 := * ((a1 + b1) + (a2 * b2)); d1 := a1 * b1; THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 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); Readln End Chương trình để thực yêu cầu đề bài, phải viết viết lại ba dịng liên tiếp tính chu vi, diện tích đường chéo hình chữ nhật Giả sử phải tính đến n hình chữ nhật vấn đề thực phức tạp Trong toán ta cịn chưa có phần kiểm tra điều kiện nhập vào hình Nếu có thêm điều kiện này, chắn chương trình cịn dài Vấn đề đặt là: làm xóa bỏ hạn chế này? Ở đây, hướng dẫn cho học sinh sử dụng chương trình để khắc THPT Cao Bá Quát Sáng kiến kinh nghiệm mơn Tin học 11 phục hạn chế Thay phải viết nhiều lần lệnh nhập, tính tính lại cho hình ta viết thủ tục: + Thủ tục nhập hai cạnh hình chữ nhật + Thủ tục Tính ba giá trị cho hình Var a1, b1, a2, b2: Real; Procedure Nhap(Var x, y: Real; i: Byte); Begin Writeln('Nhap hai kich thuoc cua hinh chu nhat thu ',i,':'); Repeat Write('Canh thu nhat: '); Readln(x); Write('Canh thu hai : '); Readln(y); If (x 0); End; Procedure Tinh(a, b: Real; k: Byte); Begin Writeln('Hinh chu nhat thu ',k,':'); Writeln('Chu vi bang : ',2 * (a + b):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 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 Từ chương trình giúp cho học sinh thấy việc sử dụng chương trình hợp lý hóa, tiết kiệm cơng sức lập trình Đồng thời, chương trình giúp cho người lập trình dễ sửa chữa, dễ kiểm tra Có khái niệm mà học sinh biết riêng lẻ chưa thể đưa nhận xét, kết luận xác liên quan tới khái niệm đó; tới thời điểm có đủ điều kiện gợi lại vấn đề giúp học sinh xác hóa khái niệm Chẳng hạn, ta cần xác hóa khái niệm sử dụng tham biến chương trình Sau học cách sử dụng tham trị, yêu cầu học sinh làm tập sau: “Viết thủ tục nhập vào số đo bán kính đường trịn Sau tính chu vi diện tích đườ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 Chu vi:',2 * pi * r1:6:1,' Dien tich : ',pi * sqr(r1):6:1); Writeln('Duong tron Chu vi:',2 * pi * r2:6:1,' Dien tich:',pi * sqr(r2):6:1); Writeln('Duong tron Chu vi :',2 * pi * r3:6:1,' Dien tich :',pi * sqr(r3):6:1); 10 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 Var T: Real; Begin If y = 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ừ toán sau: Bài toán 2: “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; 27 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 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 sap xep la:'); Write(a:6:0, b:6:0, c:6:0); Readln End Ở cần lưu ý với học sinh : lệnh gán nhận giá trị giá trị cũ Vì mà trước thực lệnh gán x := y để máy nhận giá trị b ta phải gửi giá trị cũ x vào biến tg Tại lệnh thứ ba lại giống lệnh thứ nhất? x, y, z, tg địa lưu trữ giá trị Những giá trị bị thay đổi qua lệnh gán Địa biến khơng đổi, nội dung biến thay đổi thực lệnh gán Tiếp theo, nêu câu hỏi: Khái quát, phải xếp n số theo thứ tự tăng dần ta phải làm nào? Ta có chương trì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; 28 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 Procedure Sapxep; Begin For i := to n - For j := i + to n 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 := to n Begin Write('So thu ',i,': '); Readln(a[i]); End; Sapxep; Writeln('Day so sau sap xep la:'); For i := to n Write(a[i]:6:0); Readln End 3.3) Động kết thúc Động kết thúc có tác dụng nâng cao tính tự giác hoạt động học tập học sinh cách gợi động khác Mặc dù khơng có tác dụng kích thích nội dung qua hoạt động thực hiện, góp phần gợi động thúc đẩy hoạt động nói chung nhiều việc gợi động kết thúc trường hợp lại chuẩn bị gợi động cho trường hợp tương tự sau Xét toán sau: “Lập chương trình cho máy tính tìm đường trung tuyến tam giác biết số đo ba cạnh a, b, c nhận vào từ bàn phím” 29 THPT Cao Bá Quát Sáng kiến kinh nghiệm mơn Tin học 11 Trong tốn yêu cầu học sinh chia thành nhiều 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 dai canh thu nhat: '); Readln(a); Write('Nhap dai canh thu hai : '); Readln(b); Write('Nhap dai canh thu ba : '); Readln(c); If Not Ktra Then Writeln('Ba dai vua nhap khong phai la canh tam giac! Nhap lai:'); Until Ktra; End; Procedure Trung_Tuyen(m, n, p: Real); Begin Writeln('Tt 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; 30 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 Begin Nhap; BaTT; Readln End Sau chương trình chạy thơng suốt, ta gọi lại chương trình cho học sinh thấy tốn tính đường trung tuyến tam giác nên hàm Ktra, thủ tục Nhap, thủ tục BaTT khơng có tham chiếu Việc sử dụng chương trình đề cập đến với tham chiếu tốn cần tính đường trung tuyến nhiều tam giác mà cách xác định ba cạnh tam giác khác Để thực ý định trên, ta yêu cầu học sinh giải toán sau: “Lập trình cho máy tính in lên hình đường trung tuyến tam giác theo độ dài ba cạnh tam giác - Tam giác thứ có độ dài ba cạnh a1, b1, c1 - Tam giác thứ hai có độ dài ba cạnh a2, b2, c2 - Tam giác thứ ba có độ dài ba cạnh 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 dai canh thu nhat: '); Readln(a); 31 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 Write('Nhap dai canh thu hai : '); Readln(b); Write('Nhap dai canh thu ba : '); Readln(c); If Not Ktra(a, b, c) Then Writeln('Ba dai vua nhap khong phai la canh tam giac! Nhap lai:'); Until Ktra(a, b, c); End; Procedure Trung_Tuyen(m, n, p: Real); Begin Writeln('Tt 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 32 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 3.4) Phối hợp nhiều cách để tạo động học tập cho học sinh Trên xét đến khả gợi động xuất phát từ nội dung dạy học Ngồi ra, cịn có khả gợi động không gắn với nội dung 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 cách gợi động khác có ý đến xu hướng phát triển cá nhân học sinh, tạo hợp đồng tác dụng nhiều cách gợi động cơ, cách bổ xung cách Chẳng hạn, gợi động cho nội dung dạy học hoạt động cách nhấn mạnh tầm quan trọng nội dung hoạt động nghề xã hội Tuy nhiên cách gợi động hướng nghiệp lại có nhược điểm khơng hấp dẫn học sinh khơng có dự định làm nghề sau Vì bổ sung cách nhấn mạnh nắm nội dung đó, thực hoạt động yếu tố văn hóa phổ thơng tất người xã hội Cũng cần lưu ý rằng, muốn gợi động cho nội dung hoạt động không hợp lý không khả thi Trong tiết học, việc gợi động cần tập trung vào số nội dung hoạt động định mà việc định cần vào yếu tố sau đây: - Tầm quan trọng nội dung hoạt động cần xem xét - Khả gợi động nội dung hoạt động - Kiến thức có sẵn thời gian cần thiết Thí dụ : Viết chương trình nhập điểm mơn học kỳ Sau tính điểm trung bình mơn mơn học theo cơng thức : hs1 + hs * + hs3 * l1 + l * + Trong : hs1 : tổng điểm hệ số l1: số lần điểm hệ số hs2 : tổng điểm hệ số l2 : số lần điểm hệ số hs3 : Điểm thi học kỳ 33 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 Yêu cầu nhập lần đủ, tức điểm nhập vào cần phải xử lý theo xâu ký tự sau đổi sang số để tính tốn Đây chương trình tính điểm mà học sinh ứng dụng thực tế học tập Để làm toán này, học sinh cần phải ứng dụng vấn đề thực tế cần phải biết cách tính điểm TBm sau áp dụng kiến thức chương trình kiến thức xử lý xâu ký tự để áp dụng thực chương trình Tuy nhiên, cần lưu ý nhập điểm, điểm hệ số hệ số 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ố số thực có điểm Chính 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 ý hai trường hợp điểm 10 điểm nên sử dụng biến Char để xác định rõ điểm 10 vừa nhập điểm 10 hai điểm Trong cơng việc tính tốn, cần phải có hai hàm: hàm tính tổng điểm hàm đếm số lần điểm loại điểm, điểm từ đến vấn đề đơn giản, có điểm 10 việc đếm số lần điểm việc tính tổng điểm cần phải chia thành hai trường hợp: + Trường hợp có điểm 10: Ta xử lí hàm đếm cách gặp ký tự đếm giữ ngun, đến số tính từ Như vậy, điểm 10 đếm + Trường hợp điểm từ đến 9: Đếm bình thường việc tính tổng vậy, có điều để tính tổng phần tử cần sử dụng vòng For duyệt toàn phần tử xâu, với ký tự ta lại dùng hàm Val để đổi ký tự sang số để tính tốn Cuối cùng, ta sử dụng hàm Tinh để tính điểm trung bình mơn theo hàm tính tổng hàm đếm thực Chương trì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; 34 THPT Cao Bá Quát Sáng kiến kinh nghiệm môn Tin học 11 Begin Repeat Write('Nhap diem he so ',t1,': '); Readln(st1); For i:=1 to Length(st1) Begin If (st1[i] = '1') And (st1[i+1] = '0') Then Begin Write('Diem 10 o tren la diem 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); 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