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 với 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ế.
MỤC LỤC A PHẦN MỞ ĐẦU I Lý chọn đề tài II Định hướng nghiên cứu Mục đích nghiên cứu Nhiệm vụ nghiên cứu B NỘI DUNG I Cơ sở lý luận Nghiên cứu lý luận Quan sát - điều tra Tổng kết kinh nghiệm II Cơ sở thực tiễn: Thuận lợi: Khó khăn: III Nội dung đề tài gợi động hoạt động việc giảng dạy chương trình Gợi động mở đầu: a Đáp ứng nhu cầu xóa bỏ hạn chế b Hướng tới tiện lợi hợp lý hóa cơng việc c Chính xác hóa khái niệm d Hướng tới hoàn chỉnh hệ thống 10 e Lật ngược vấn đề 11 f Xét tương tự 12 g Khái quát hóa 14 h Tìm liên hệ phụ thuộc 15 Gợi động trung gian 17 a Hướng đích 17 b Quy lạ quen 19 c Xét tương tự 20 d Khái quát hóa 20 e Xét biến thiên phụ thuộc 22 Gợi động kết thúc 23 C KẾT LUẬN 29 D KIẾN NGHỊ………………………………………………………………………………30 Trang ĐỀ TÀI: GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON A PHẦN MỞ ĐẦU I Lý chọn đề tài - Trong bối cảnh Công nghệ thông tin ngày phát triển, việc sử dụng rộng rãi máy tính khơng bó hẹp viện nghiên cứu, trường đại học, trung tâm máy tính mà mở rộng quan, xí nghiệp nhà máy Song song với trình trên, việc giảng dạy Tin học trường đại học, trung học phổ thông đẩy mạnh đôi với việc tăng cường trang bị máy vi tính Chính vậy, giáo viên giảng dạy môn Tin học trường phổ thơng, việc tìm hiểu, nghiên cứu vấn đề Tin học, với việc tìm biện pháp giảng dạy Tin học nhà trường phổ thông công việc cần phải làm thường xuyên, nhằm đáp ứng với đòi hỏi ngày cao xã hội - Trong nghiệp vụ người giáo viên có hai vấn đề quan trọng: thứ thực tiễn tiềm - kiến thức lý thuyết Thứ hai thực tiễn nghiệp vụ - Cách truyền thụ kiến thức phù hợp với trình độ học sinh Trong đó, thực tiễn thứ hai điều định nghiệp vụ giáo viên, đánh giá chất lượng giảng dạy giáo viên Hai thực tiễn vừa mâu thuẫn với nhau, lại vừa thống với Giáo viên mang hết kiến thức lý thuyết cao xa trừu tượng dạy cho học sinh, dạy tốt cho học sinh thầy giáo hiểu biết q Chính để phát huy khả 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 học sinh việc học tập giúp học sinh 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 Điều gợi động dạy học - 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 cho học sinh 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ý, 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 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 Trang 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.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 - Với tất lý nêu trên, định chọn đề tài II Định hướng nghiên cứu 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 liên hệ , vận dụng sáng tạo vào giải toán lập trình tình thực tế Nhiệm vụ nghiên cứu - 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 Trang B NỘI DUNG I Cơ sở lý luận Nghiên cứu lý luận - Trong nghiên cứu lý luận dựa vào tài liệu sẵn có, lý thuyết khẳng định, thành tựu nhân loại lĩnh vực khác Tâm lý học, Giáo dục học, Tin học, để xem xét vấn đề, tìm giải pháp hợp lý có sức thuyết phục vận dụng vào PPDH Tin học Bên cạnh nghiên cứu kết thân chuyên ngành PPDH Tin học để kế thừa hay, phê phán gạt bỏ dở, bổ xung hoàn chỉnh nhận thức đạt Quan sát - điều tra - Quan sát - điều tra giúp theo dõi tượng giáo dục theo trình tự thời gian, phát biến đổi số lượng, chất lượng gây tác động giáo dục Thấy vấn đề thời cấp bách đòi hỏi phải nghiên cứu góp phần giải nhiệm vụ nghiên cứu môi trường tự nhiên nguồn cung cấp liệu trực tiếp Người nghiên cứu đến trực tiếp nơi mà họ quan tâm thu thập liệu, hoạt động hiểu tốt môi trường tự nhiên, ngữ cảnh mà chúng xuất Tổng kết kinh nghiệm - Tổng kết kinh nghiệm đánh giá khái quát hóa kinh nghiệm thu thập hoạt động thực tiễn, từ phát vấn đề cần khẳng định để đưa áp dụng rộng rãi 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, lĩnh hội, kiểm chứng từ trình hoạt động thực tiễn sinh động Bài học kinh nghiệm cụ thể hóa cách sáng tạo tư tưởng, luận điểm, lý luận giáo dục vào sống Trong trình nghiên cứu tổng kết kinh nghiệm, có người ta khám phá mối liên hệ có tính quy luật tượng giáo dục II Cơ sở thực tiễn: * Một số thuận lợi khó khăn thực chuyên đề: Thuận lợi: Nhà trường: - Tuy môn Tin học môn học đưa vào học năm gần nhà trường tạo điều kiện để học sinh 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 học môn Tin học Giáo viên: - Giáo viên đào tạo chuẩn chuyên ngành Tin học để đáp ứng yêu cầu cho dạy học môn Tin học bậc THPT Trang - Phần lớn giáo viên quan tâm đến Tin học, quan tâm đến lập trình tạo động hứng thú cho học sinh qua đoạn chương trình, cho học sinh thấy tầm quan trọng lập trình em học sinh khối 11 học môn học lý thú lập trình pascal Khó khăn: - Do chương trình tin học năm gần đưa vào trường THPT nên nhiều bỡ ngỡ mẽ, giáo viên chưa sẵn sàng trang bị cho kiến thức thật tốt để truyền đạt kiến thức tốt môn tin học đến cho học sinh đặc biệt lập trình pascal nên việc truyền đạt kiến thức đến cho học sinh nhiều bỡ ngỡ - Nhà trường nhiều khó khăn nên chưa đáp ứng phòng dạy thực hành tốt nên việc thực hành học sinh học lập trình pascal khó khăn III Nội dung đề tài gợi động hoạt động việc giảng dạy chương trình - Gợi động 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, giáo viên 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 giác ngộ trị ngày cao cách gợi động xuất phát từ nội dung hướng nhu cầu nhận thức, nhu cầu đời sống, trách nhiệm xã hội ngày trở nên quan trọng - Gợi động việc làm ngắn ngủi lúc bắt đầu dạy tri thức đó, mà phải xun suốt q trình dạy học Vì vậy, phân biệt gợi động mở đầu, gợi động trung gian gợi động kết thúc Trong đề tài xin đưa số giải pháp gợi động hoạt động việc giảng dạy chương trình ngơn ngữ lập trình Pascal theo giai đoạn Gợi động mở đầu: - Để Gợi động mở đầu gợi động xuất phát từ thực tế xuất phát từ nội Tin học - Việc xuất phát từ thực tế khơng có tác dụng gợi động mà góp phần hình thành giới quan vật biện chứng Nhờ đó, học sinh nhận rõ việc nhận thức cải tạo giới đòi hỏi phải suy nghĩ giải Trang vấn đề Tin học nào, tức nhận rõ Tin học bắt nguồn từ nhu cầu đời sống thực tế Vì vậy, ta 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ổ xung + 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 tận dụng khả gợi động xuất phát từ nội Tin học - 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 hoc, 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: a Đáp ứng nhu cầu xóa bỏ hạn chế - 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)); Trang 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); Readln End - Chương trình để thực yêu cầu đề bài, ta 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 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 dài Vấn đề đặt là: làm xóa bỏ hạn chế này? Ở đây, ta hướng dẫn cho học sinh sử dụng chương trình để khắc 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,':'); Trang 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 b Hướng tới tiện lợi hợp lý hóa cơng việc - Xét toán sau: “Nhập vào dãy n số nguyên lớn Viết hình tất số dãy thỏa mãn điều kiện 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 := To Trunc(sqrt(a)) Do If a mod u = 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 := to n Begin Repeat Write('A[',k,'] = ');Readln(A[k]); If A[k] < Then Writeln('Ban can nhap A[k] > Vui long nhap lai!'); Until A[k] >= 2; End; Writeln('Cac so nguyen to cua day so tren la:'); For k := to n If NgTo(A[k]) Then Write(A[k]:6); Readln End - Từ chương trình ta 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ụ thể với tốn sửa chữa thành tốn: “Viết hình tất số dãy thỏa mãn điều kiện hợp số” 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 dòng lệnh If Not NgTo(A[k]) Then Write(A[k]:6) Trang c Chính xác hóa khái niệm - 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 ta 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ị, ta 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 bang:',2 * pi * r1:6:1,' Dien tich bang: ',pi * sqr(r1):6:1); Writeln('Duong tron Chu vi bang:',2 * pi * r2:6:1,' Dien tich bang:',pi * sqr(r2):6:1); Writeln('Duong tron Chu vi bang:',2 * pi * r3:6:1,' Dien tich bang:',pi * sqr(r3):6:1); Readln End - Chúng ta yêu cầu học sinh thực thi chương trình chạy thử Học sinh phát kết chu vi diện tích ba đường tròn Vấn đề đặt là: Chương trình sai chỗ nào? Lúc giáo viên khẳng định phân biệt tham biến tham trị, giá trị tham biến lưu giữ chương trình con, giá trị tham trị lưu giữ thực chương trình con, khỏi chương trình khơng lưu giữ giá trị Điều giúp cho xác hóa khái niệm tham biến tham trị cho học sinh - Chương trình cần sửa lại sau: Var r1, r2, r3: Real; Procedure Nhap(Var r: Real; k:Byte); Begin Trang 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 bang:',2 * pi * r1:6:1,' Dien tich bang: ',pi * sqr(r1):6:1); Writeln('Duong tron Chu vi bang:',2 * pi * r2:6:1,' Dien tich bang:',pi * sqr(r2):6:1); Writeln('Duong tron Chu vi bang:',2 * pi * r3:6:1,' Dien tich bang:',pi * sqr(r3):6:1); Readln End d Hướng tới hoàn chỉnh hệ thống - Để giúp học sinh nắm bắt kiến thức chương trình cách có hệ thống Sau học xong chương trình con, đưa sơ đồ sau: Thủ tục Khơng Có tham chiếu Chương trình 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 rõ ràng hơn, đặc biệt giúp cho học sinh hiểu rõ vấn đề chương trình Chẳng hạn đâu biến tồn cục, đâu biến địa phương, dùng tham biến, dùng tham trị, chương trình gọi lẫn nào?, Chúng ta đưa ví dụ sau: “Viết chương trình nhập vào số cạnh n tam giác, sau tính diện tích tam giác vừa nhập tổng diện tích tất 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 Trang 10 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 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 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 := to n - For j := n downto i + 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; Var temp: Integer; Begin Sapxep; i := 1; gt := 0; t := 0; While (i 0) And (W[i] > 0) Do Begin Temp := d Div W[i]; {So vat duoc chon cua W[i]} If temp > Then Begin 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 vat dung ',t,'.tui dung duoc ',d1,' Con thua ',d1 - t); End; Trang 16 Begin Luachon; Readln End Gợi động trung gian a Hướng đích Xuất phát từ tốn giải phương trình bậc hai: Var a, b, c, d: Real; Begin Writeln('Nhap he so cua phuong trinh:'); Write('a = '); Readln(a); Write('b = '); Readln(b); Write('c = '); Readln(c); If a = Then If b = Then If c = 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 d := b * b - * a * c; If d < Then Writeln('Phuong trinh vo nghiem!') Else If d = 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; End; Readln End - Mục tiêu chia toán ban đầu thành toán nhỏ độc lập Chẳng hạn: Ta sử dụng chương trình thành hai tốn : T1: Giải phương trình bậc T2: Giải phương trình bậc hai Var a, b, c: Real; Procedure ptb1(m,n:Real); Begin If m = Then If n = 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 ptb2(x, y, z: Real); Trang 17 Var d: Real; Begin D := y * y - * x * z; If d < Then Writeln('Phuong trinh vo nghiem!') Else If d = 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 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 toán việc giải phương trình bậc hai có ba trường hợp xảy Ta nên chia tiếp thành tốn nhỏ sau: T1: Giải phương trình bậc T2: > T3: = T4: < T5: Giải phương trình bậc hai Var a, b, c, d: Real; Procedure ptb1(m, n : Real); Begin If m = Then If n = 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 Trang 18 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 - * x * z; If d < Then denta_am Else If d = Then denta_0(x, y) Else denta_duong(x, y); End; Begin Writeln('Nhap he so cua phuong trinh:'); Write('a = '); Readln(a); Write('b = '); Readln(b); Write('c = '); Readln(c); If a = Then ptb1(b, c) Else ptb2(a, b, c); Readln End b Quy lạ quen - Xét tốn : Tính C nk Học sinh biết cơng thức : C nk n! Bài tốn k! (n k )! ta quy tốn quen thuộc tính n! Ở 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 tính n! sau đó, ta tìm C nk cơng thức Tuy nhiên, cần phải xây dựng chương trình Nhap để tránh việc người sử dụng nhập số âm 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 kq:=kq * i; GT:=kq; End; Begin Trang 19 Nhap; C := GT(n) / (GT(k) * GT(n - k)); Writeln('C = ', C:0:0); Readln End c Xét tương tự Xuất phát từ toán: “Tính n! thuật tốn đệ quy” Var n: Integer; Function GT(a:Integer): Real; Begin If a = Then GT:=1 Else GT:=GT(a - 1) * a; End; Begin Write('Nhap n = '); Readln(n); Writeln(n,'! = ', GT(n):0:0); Readln End - Tương tự, yêu cầu học sinh thực giải tốn: “Tính an thuật tốn đệ quy” Var a, n: Integer; Function Mu(x:Integer; y:Integer):Real; 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 Trang 20 ... pháp gợi động hoạt động việc giảng dạy chương trình ngơn ngữ lập trình Pascal theo giai đoạn Gợi động mở đầu: - Để Gợi động mở đầu gợi động xuất phát từ thực tế xuất phát từ nội Tin học - Việc. .. phòng dạy thực hành tốt nên việc thực hành học sinh học lập trình pascal khó khăn III Nội dung đề tài gợi động hoạt động việc giảng dạy chương trình - Gợi động làm cho học sinh có ý thức ý nghĩa hoạt. ..ĐỀ TÀI: GỢI ĐỘNG CƠ HOẠT ĐỘNG TRONG VIỆC GIẢNG DẠY CHƯƠNG TRÌNH CON A PHẦN MỞ ĐẦU I Lý chọn đề tài - Trong bối cảnh Công nghệ thông tin ngày phát triển, việc sử dụng rộng rãi máy