CHUYÊN ĐỀ: “SỬ DỤNG HỆ THỐNG CÂU LỆNH LẶP ĐỂ GIẢI MỘT SỐ BÀI TẬP TRONG PASCAL CÓ HIỆU QUẢ.” I./ PHẦN MỞ ĐẦU: 1./ Tầm quan trọng vấn đề: Trước hết cần khẳng định Pascal ngơn ngữ lập trình tốt đặc biệt, tạo với mục đích dùng cho giảng dạy lý do: Có cú pháp rõ ràng, dễ dạy dễ học; Pascal viết theo lý thuyết chuẩn lập trình cấu trúc nên mặt minh hoạ cho lý thuyết ngơn ngữ lập trình, mặt khác nhiều tài liệu khoa học máy tính dùng Pascal để minh hoạ; Có thể sử dụng Pascal để viết ứng dụng chuyên sâu, can thiệp vào phần cứng máy tính thiết bị điện tử khác cuối trình biên dịch Pascal nhỏ gọn, chạy tốt máy tính cấu hình yếu, phù hợp với khả đầu tư cho học tập học sinh, sinh viên Tuy nhiên ngày cơng nghệ thơng tin có nhiều thay đổi Một thay đổi mơi trường hệ điều hành thay đổi từ DOS sang Windows nên khó sử dụng Pascal để viết chương trình ứng dụng Windows Để lập trình Windows với giao diện đồ hoạ, người lập trình bắt buộc phải học thêm ngơn ngữ khác chẳng hạn DELPHI, Visual Basic… Dĩ nhiên người lập trình nắm vững ngơn ngữ Pascal việc học thêm ngôn ngữ dễ dàng theo kiểu “21 ngày lập trình được…” Để giúp học sinh dễ dàng việc lập trình giải tốn mang tính lặp, nội dung chuyên đề tơi đưa tóm lược câu lệnh lặp số ví dụ mẫu vận dụng cấu trúc lặp để giải có hiệu 2./ Đối tượng nghiên cứu: Học sinh lớp 3./ Phương pháp nghiên cứu: - Phương pháp điều tra - Phương pháp phân tích - Phương pháp tổng hợp kinh nghiệm giảng dạy - Phương pháp trò chuyện trao đổi - Phương pháp đọc sách tổng hợp tư liệu II./ CƠ SỞ LÝ LUẬN: 1./ Cơ sở lý luận lý thuyết: - Muốn học tập đạt kết tốt, ngồi việc thân HS tích cực học tập, khơng thể thiếu vai trò hướng dẫn dìu dắt người thầy - Để giúp học sinh dễ dàng việc lập trình giải tốn mang tính lặp mơn Tin học vừa với nguyên tắc dạy học trường Phổ Thông, vừa theo tinh thần đổi phương pháp dạy học nay, nhằm hình thành cho học sinh tính tích cực, độc lập, sáng tạo, nâng cao lực phát triển giải vấn đề, rèn luyện kỹ 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 tin thích thú học tập cho HS Hiện nay, khơng học sinh lười, học tập thụ động có khơng phụ huynh thiếu quan tâm đến việc học em Vì vậy, việc hệ thống kiến thức câu lệnh lặp để giải số tập giáo viên phải ý mức 2./ Cơ sở lý luận thực tiễn: Trong trình giảng dạy, tơi nhận thấy Pascal mơn học khó em học sinh Khối 8, có số thuật toán em chưa học mơn Tốn, thêm vào em sử dụng câu lệnh Tiếng Anh để thể lập trình Do việc học tập học sinh mang tính mơ hồ, bị ép buộc, có nhiều học sinh sợ mơn Tin học tính chất khơ khan, khó hiểu học Từ thực tế tơi khơng ngừng học hỏi để tìm biện pháp khắc phục Bằng kinh nghiệm khiêm tốn năm qua, đưa tóm lược câu lệnh lặp số ví dụ mẫu vận dụng cấu trúc lặp để giải có hiệu nhằm giúp học sinh tiếp thu nhanh, nhớ kiến thức lâu cảm thấy thích thú học tập III/ THỰC TRẠNG: * Những việc làm được: - Tôi áp dụng công nghệ thông tin để soạn giảng lý thuyết thực hành nhằm hướng dẫn học sinh dễ hiểu ghi nhớ kiến thức môn Tin học - Ở thực hành tổ chức học tập theo nhóm có nhận xét đánh giá kết nhóm - Tơi hình thành nề nếp cho học sinh từ đầu năm học * Hạn chế: - Một số học sinh bị hổng kiến thức Toán từ lớp nên ý thức tìm tòi nghiên cứu em hạn chế Có khơng học sinh chưa cố gắng học tập, khơng chịu khó động não, nên ảnh hưởng không nhỏ đến việc học IV/ ĐỀ XUẤT GIẢI PHÁP: 1/ Xây dựng KHGD từ đầu năm học: - Ngay từ đầu năm học, GV phải hướng dẫn phương pháp học tập nề nếp học phòng máy cho học sinh - GV chia nhóm học tập cho HS, phân nhóm trưởng, hướng dẫn cách hoạt động nhóm trang bị sổ tay ghi chép cá nhân HS - GV soạn trước thực dạy tiết nhằm giúp việc nghiên cứu kiến thức sâu chủ động việc soạn kiểm tra - GV cần đầu tư nghiên cứu, năm cập nhật cách hay đồng nghiệp để tích luỹ cho việc giảng dạy - GV cần dành thời lượng thích hợp cho việc mấu chốt hướng dẫn HS cách nhớ kiến thức vừa học tiết học lý thuyết Cũng cách tìm hiểu ý nghĩa lệnh thực hành - HS phải chuẩn bị mà GV dặn tiết trước 2/ Một số giải pháp thực hiện: * CẤU TRÚC LẶP VỚI LỆNH FOR DO: - Tác dụng: Dùng để xây dựng chu trình với số lần lặp xác định - Cú pháp: For := to ; Trong đó: + for, to, từ khóa + Biến đếm có kiểu nguyên + Giá trị đầu giá trị cuối biểu thức có kiểu với biến đếm giá trị cuối phải lớn giá trị đầu.+ Câu lệnh câu lệnh đơn giản hay câu lệnh ghép * Nguyên lý hoạt động cấu trúc For dạng tiến: Biến đếm nhận giá trị giá trị đầu Máy kiểm tra xem giá trị biến đếm nhỏ giá trị biểu thức giá trị cuối hay không (biến đếm ≤ giá trị cuối) Nếu việc kiểm tra: - Cho giá trị sai câu lệnh bị bỏ qua - Cho giá trị đúng: +Máy thực câu lệnh sau từ khóa + Tăng giá trị biến đếm lên giá trị đứng liền sau - Quay trở lại bước Trong cấu trúc For dạng tiến, câu lệnh thực lặp lặp lại giá trị biến đếm lớn giá trị cuối Mỗi lần thực xong câu lệnh, giá trị biến đếm tăng lên đến giá trị liền sau Ví dụ 1: Tính tổng S = + 1/2 + 1/3 + + 1/n • Nhận xét: - Trong biểu thức trên, số hạng thứ i tổng tính theo cơng thức S(i) = 1/i (i=1,2, ,n) - Trường hợp sử dụng hai dạng cấu trúc FOR • Chương trình: Sử dụng cấu trúc For Var i, n : Integer; S:Real; Begin Write('Hay nhap vao so nguyen n='); Readln(n); S:=0; For i:=1 to n S:= S + / i; Writeln( ' Tong S =', S : : ); Readln; End Ví dụ 2: In hình hai dòng chữ Dòng gồm chữ in hoa từ A Z Dòng gồm chữ thường theo thứ tự ngược lại từ z đến a Nhận xét: Ta giải tốn cách sử dụng cấu trúc FOR dạng tiến dạng lùi với biến điều khiển dạng ký tự nhận giá trị khoảng từ A đến Z • Chương trình Program in_dong; Var ch: char; Begin Writeln; For ch := 'A' to 'Z' Write(ch:2); Writeln; For ch := 'z' downto 'a' Write(ch:2); Writeln; Readln; End Ví dụ 3: Đọc vào n số thực, tìm Max chúng * Thuật tốn tìm Max dãy số: - Cho Max số thứ - Duyệt toàn dãy số từ số thứ hai trở đi, thấy số lớn Max lấy số làm Max Sau duyệt xong dãy số, ta có Max số lớn • Nhận xét: - Dãy số có số lượng hữu hạn số Ta biết số lượng từ bắt đầu thực thuật tốn - Thích hợp cho việc sử dụng cấu trúc FOR dạng tiến để thực • Chương trình Program tim_max; Var n, i: integer; max, x: real; Begin Write(‘n = ‘); Readln(n); For i := to n Begin Write(‘Cho so thu ’, i);Readln(X); if Max < X then Max := X; End; Writeln(‘Max = ‘, Max:8:2); Readln; End * CẤU TRÚC LẶP VỚI LỆNH WHILE DO: • Tác dụng: Dùng để xây dựng chu trình với số lần lặp chưa xác định trước • Cú pháp: While ; Câu lệnh thân chu trình câu lệnh đơn câu lệnh ghép Nguyên lý hoạt động: Máy tính xác định giá trị điều kiện Tuỳ thuộc vào giá trị điều kiện: - Nếu điều kiện có giá trị đúng, máy tính thực câu lệnh sau quay lại bước - Nếu điều kiện có giá trị sai, câu lệnh bị bỏ qua việc thực lệnh lặp kết thúc • Nhận xét: - Câu lệnh thực lặp lặp lại nhận giá trị sai Câu lệnh không thực lần nhận giá trị sai từ bắt đầu vào chu trình - Trong thân chu trình phải có câu lệnh làm thay đổi giá trị để tránh xảy vòng lặp vơ tận Ví dụ 1: Tính tổng n S , Sao cho S >= 10 10 1 n2 Var i : Integer; S:Real; Begin S:=0; i:=0; While S < 10 Begin i := i + 1; S := S + i / (1+SQR( i ) ); End; Writeln( ' Tong S =', S : : ); Writeln( ‘So lan lap la:’, i ); Readln; End Ví dụ 2: Tìm bội số chung nhỏ hai số ngun dương • Thuật tốn: Lấy hai số nhân với 1, 2, 3, tích số chia hết cho số thứ hai tích số BSCNN • Nhận xét: - Thuật tốn cho thấy q trình tính tốn, khơng thể biết trước q trình nhân phải thực lặp lại lần Trường hợp phải sử dụng cấu trúc lặp với số lần lặp không xác định - Điều kiện để dừng tích số chia hết cho số thứ hai • Chương trình Program Boisochungnhonhat; Var Bscnn, n, m, k: Integer; Begin Write(‘m= ‘); Readln(m); Write(‘n= ‘); Readln(n); bscnn := m; k := 2; While (BSCNN mod n 0) Begin BSCNN := k*m; k:= k + 1; End; Writeln(‘BSCNN = ‘, BSCNN); Readln; End 3.Ví dụ 3: Tìm Ước số chung lớn hai số nguyên dương m, n • Thuật tốn: Nếu m>n lấy m = m – n Nếu m lớn n tiếp tục lấy m = m - n Nếu m< n lấy n = n - m Nếu n lớn m tiếp tục lấy n = n – m Lặp lại thuật toán m = n Lúc m = n ƯSCLN • Nhận xét: Thuật tốn cho thấy khơng thể xác đinh trước phép trừ phải thực lặp lại lần Trường hợp phải sử dụng cấu trúc lặp với số lần lặp không xác định Điều kiện để dừng hai số • Chương trình Program USCLN; Var x, y: Integer; Begin Write(‘x = ‘);Readln(x); Write(y = ‘);Readln(y); While x y If x>y then x := x – y else y := y – x; Writeln(‘USCLN la: ‘, x) Readln; End Bài học kinh nghiệm: * Ưu điểm: - Kích thích động học tập học sinh - Nâng cao chất lượng dạy học * Nhược điểm: - Một số học sinh yếu kiến thức mơn Tốn, thêm vào có số thuật tốn em chưa học chương trình, nên giáo viên phải kiên trì, nhẫn nại, chí nhiều thời gian việc hướng dẫn thuật toán cho học sinh VI KẾT LUẬN: Trên tóm lược nội dung cú pháp, cách thực câu lệnh thuộc cấu trúc lặp phân tích ngơn ngữ lập trình Pascal, số ví dụ tốn điển hình cho dạng lặp cụ thể mà thân đúc kết trình giảng dạy mơn tin học trường Qua giúp học sinh đồng nghiệp làm tài liệu tham khảo trình học tập giảng dạy có hiệu Trong phạm vi chun đề việc phân tích nội dung câu lệnh ví dụ dạng lệnh chưa thật chi tiết phong phú mong nhận góp ý chân thành từ quý đồng nghiệp, học sinh để đề tài hoàn thiện ... lười, học tập thụ động có khơng phụ huynh thiếu quan tâm đến việc học em Vì vậy, việc hệ thống kiến thức câu lệnh lặp để giải số tập giáo viên phải ý mức 2./ Cơ sở lý luận thực tiễn: Trong q trình... thấy Pascal mơn học khó em học sinh Khối 8, có số thuật tốn em chưa học mơn Tốn, thêm vào em sử dụng câu lệnh Tiếng Anh để thể lập trình Do việc học tập học sinh mang tính mơ hồ, bị ép buộc, có. .. Một số giải pháp thực hiện: * CẤU TRÚC LẶP VỚI LỆNH FOR DO: - Tác dụng: Dùng để xây dựng chu trình với số lần lặp xác định - Cú pháp: For := to