Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 18 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
18
Dung lượng
66,41 KB
Nội dung
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HOÁ TRƯỜNG THPT LANG CHÁNH SÁNG KIẾN KINH NGHIỆM MỘT SỐ BÀI TOÁN GỢI ĐỘNG CƠ HOẠT ĐỘNG CHO HỌC SINH KHI GIẢNG DẠY CHƯƠNG TRÌNH CON MƠN TIN HỌC LỚP 11 TRƯỜNG THPT LANG CHÁNH Người thực hiện: Phạm Thị Diệu Chức vụ: Giáo viên SKKN thuộc lĩnh vực: Tin học THANH HOÁ, NĂM 2021 MỤC LỤC Mụ c Nội dung Trang Mở đầu 1.1 Lí chọn đề tài 1.2 Mục đích nghiên cứu 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu Nội dung 2.1 Cơ sở lí luận 2.2 Thực trạng trước áp dụng SKKN 2-3 2.3 Các giải pháp sử dụng để giải vấn đề 3-14 2.4 Hiệu SKKN 15 Kết luận, kiến nghị 15-16 Tài liệu tham khảo 17 MỞ ĐẦU 1.1 Lý chọn đề tài Hiện nhà nước ta giai đoạn đổi phương pháp dạy học Yêu cầu người giáo viên phải lựa chọn nhiều phương pháp giảng dạy xây dựng đề án dạy học theo chuyên đề Mục tiêu giúp học sinh chủ động, tích cực học tập, nắm bắt kiến thức môn, từ tạo lịng đam mê, hứng thú môn học Đặc điểm môn tin học khối 11 học ngơn ngữ lập trình học sinh khó khăn để tiếp thu kiến thức câu lệnh ngơn ngữ lập trình ngắn gọn, dễ nhầm lẫn khó hiểu Khi nói đến dạy học lập trình cho học sinh, dạy học chương trình nội dung chiếm vai trò quan trọng Bởi sử dụng chương trình để hợp lý, tiết kiệm cơng sức lập trình tốn lớn, giúp cho người lập trình dễ sửa chữa, kiểm tra Vì lý tơi mạnh dạn đưa “Một số toán gợi động cho học sinh giảng dạy chương trình mơn tin học lớp 11 trường THPT Lang Chánh” để học sinh có hứng thú học nội dung phần chương trình 1.2 Mục đích nghiên cứu Góp phần đổi phương pháp dạy học, gây hứng thú học tập, tránh việc học thụ động, học vẹt Giúp học sinh lĩnh hội tri thức cách khoa học, củng cố khắc sâu kiến thức môn Tin học theo hướng phát huy tính tích cực, chủ động sáng tạo học sinh giúp học sinh tiếp thu tri thức cách có hiệu Qua đề tài tơi mong muốn cung cấp cho học sinh lớp 11 trường THPT Lang Chánh có hứng thú học nội dung phần Chương trình con, phân biệt hàm thủ tục, biến cục biến tồn cục, tham số hình thức tham số thực sự, vận dụng chương trình để giải toán lớn 1.3 Đối tượng nghiên cứu - Đối tượng: Học sinh lớp 11 trường THPT Lang Chánh - Phạm vi: Chương trình ngơn ngữ lập trình Pascal 1.4 Phương pháp nghiên cứu Để thực đề tài tơi sử dụng nhóm phương pháp sau đây: - Nghiên cứu lí luận chung: Thơng qua việc trau dồi kiến thức sách giáo khoa,sách tham khảo,diễn đàn tin học internet - Khảo sát điều tra thực tế dạy học: Thông qua việc giảng dạy trực tiếp học sinh khối 11 trường THPT Lang Chánh - Tổng hợp đúc rút kinh nghiệm: Trao đổi với đồng nghiệp, tham khảo ý kiến giáo viên môn, liên hệ thực tế nhà trường, áp dụng rút kinh nghiệm qua trình giảng dạy 2.NỘI DUNG 2.1 Cơ sở lý luận Đứng trước tốn lập trình tin học học sinh thường lúng túng khơng biết tìm thuật tốn tốn từ đâu tìm nào? Điều dẫn tới kết sai chệch hướng giải tốn, hiệu suất để tìm thuật tốn không cao, số học sinh khơng biết cách tìm thuật tốn từ đâu điều gây tâm lý chán nản cho em Căn vào thực tiễn giảng dạy môn Tin học (cụ thể dạy chương “Chương trình lập trình có cấu trúc”) trường THPT Lang Chánh học sinh có nhiều khó khăn việc nắm bắt nội dung chương trình vận dụng viết chương trình có sử dụng chương trình mức độ đơn giản Để giúp học sinh định hướng tốt trình tìm thuật tốn, trước tự tìm thuật tốn tốt người giáo viên cần tạo cho học sinh thói quen tìm thuật tốn từ các toán quen thuộc mà em biết, khai thác yếu tố đặc trưng số tốn sử dụng chương trình để giải cho toán Việc áp dụng thuật toán toán chương trình xây dựng thuật tốn cho tốn tương tự toán mở rộng từ tốn q trình giúp học sinh hứng thú học tập rèn luyện kỹ lập trình 2.2 Thực trạng trước thực giải pháp đề tài: - Thuận lợi: + Trong bối cảnh bùng nổ ngành CNTT học sinh tiếp xúc với máy tính từ sớm + Đã sử dụng ngơn ngữ lập trình Pascal để viết chương trình giải tốn q trình học + Nhà trường có phịng máy cho học sinh thực hành - Khó khăn: + Về học sinh:Trường THPT Lang Chánh trường thuộc địa bàn huyện miền núi Lang Chánh đa số học sinh người dân tộc thiểu số (trong dân tộc Thái chiếm 53,04%, dân tộc Mường chiếm 35,58%, dân tộc Kinh chiếm 11,19%)nên chưa có hội, điều kiện tiếp xúc với cơng nghệ máy tính Vì vậy, tin học mơn học tương đối khó em Học sinh học lớp khơng có hứng thú học tin học đặc biệt lập trình em không học thêm hay tin học môn mà em thi đại học Điều dẫn đến ý thức tự giác học sinh chưa cao, đặc biệt mơn học lập trình Pascal Tin học lớp 11 Những thao tác thực hành đa phần học sinh chưa nhớ nhà em khơng có máy tính để rèn luyện kỹ thực hành • • • • • - - + Về giáo viên: Nhà trường thiếu nhiều giáo viên môn Tin học, giáo viên chưa có nhiều kinh nghiệm nên việc truyền đạt kiến thức cho học sinh nhiều bỡ ngỡ 2.3 Các biện pháp tiến hành để giải vấn đề Tất nội dung, ví dụ, tập đề tài xây dựng ngôn ngữ lập trình Pascal 2.3.1 Khái niệm chương trình 2.3.1.1 Khái niệm Để viết chương trình giải tốn lớn, phức tạp người lập trình chia thành nhiều toán nhỏ, toán dãy lệnh mô tả số thao tác định (gọi chương trình con) Sau ghép nối chương trình thành chương trình Chương trình dãy lệnh mô tả số thao tác định thực (được gọi) từ nhiều vị trí khác chương trình 2.3.1.2 Lợi ích việc sử dụng chương trình Tránh việc phải lặp lặp lại dãy lệnh Hỗ trợ việc thực chương trình lớn Phục vụ cho q trình trừu tượng hóa Mở rộng khả ngôn ngữ Thuận tiện cho việc phát triển nâng cấp chương trình 2.3.2 Phân loại cấu trúc chương trình 2.3.2.1 Phân loại Trong nhiều ngơn ngữ lập trình, chương trình thường gồm hai loại: Hàm (Function): Là chương trình thực số thao tác trả giá trị qua tên Ví dụ: Sin(x) nhận vào giá trị thực x trả giá trị sin x Sqrt(x) nhận vào giá trị x trả giá trị bậc hai x Length(x) nhận vào xâu x trả độ dài xâu x Thủ tục (Procedure): Là chương trình thực số thao tác đó, không trả giá trị qua tên Ví dụ: Các thủ tục vào/ra chuẩn hay thủ tục xử lí xâu: writeln, readln, delete 2.3.2.2 Cấu trúc chương trình [] - Phần đầu: Cấu trúc chương trình tương tự chương trình chính, chương trình chính, thiết phải có phần đầu để khai báo tên, hàm phải có khai báo kiểu liệu trả • • • • - Phần khai báo: Có thể khaibáo cho liệu vào ra, sử dụng chương trình - Phần thân: Là dãy lệnh thực chương trình từ liệu vào kết mong muốn Phần ln nằm hai từ khóa Begin End Ở thao tác cần thực Sau từ khóa End dấu chấm phẩy (;) Một số lưu ý: Một chương trình có khơng có tham số hình thức, có khơng có biến cục Tham số hình thức: Là tham số đưa vào định nghĩa chương trình Tham số thực sự: Là tham số viết lời gọi chương trình Biến cục bộ: Là biến khai báo chương trình Biến tồn phần: Là biến khai báo chương trình - Trong thân hàm cần có lệnh: :=; - Kết thúc chương trình dấu chấm phẩy (;) 2.3.2.3 Thực chương trình - Để thực (gọi) chương trình con, ta cần phải có lệnh gọi tương tự lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình với tham số (nếu có) biến chứa liệu vào tương ứng với tham số hình thức đặt cặp ngoặc ( ) Các biến gọi tham số thực số thực - Lệnh gọi chương trình thực từ xuống chương trình - Khi thực gọi chương trình con, tham số hình thức dùng để nhập liệu vào tham số thực tương ứng Khi xuất liệu tham số hình thức lưu trữ liệu trả giá trị cho tham số thực tương ứng 2.3.2.4 Khai báo Chương trình - Nhắc lại cấu trúc chương trình PROGRAM Tên_chương_trình; { Tên chương trình} USES ; {Khai báo thư viện} CONST ;{Khai báo hằng} TYPE ;{Khai báo kiểu} VAR ;{Khai báo biến} Khai báo CTC {Khai báo chương trình con} BEGIN {Chương trình chính} ; END Như phần khai báo Chương trình nằm phần cuối phần khai báo Khai báo lời gọi hàm – Khai báo: FUNCTION (Danh sách tham số):; [Khai báo Const, Type, Var] BEGIN ; :=; END; Chú ý ln có phép gán tên hàm cho giá trị để hàm trả giá trị gọi Ví dụ: tính tổng số x y Function tong(x,y:integer):integer; {Do có giá trị trả về} var s:integer; begin s:=x+y; tong:=s; end; Lời gọi hàm (danh sách tham số thực); Ví dụ:tong(4,5); Khai báo lời gọi thủ tục – Khai báo: PROCEDURE (Danh sách tham số);{khơng có giá trị trả về} [Khai báo Const, Type, Var] BEGIN ; END; Ví dụ: Procedure inso(n:integer); var i:inteher; Begin for i:=1 to n write(i:5); end; Lời gọi thủ tục (danh sách tham số thực); Ví dụ: inso(6); Phân biệt cách sử dụng hàm thủ tục Hàm khác thủ tục chỗ hàm trả giá trị cho lệnh gọi thơng qua tên hàm cịn thủ tục khơng * Hàm (Function) - Kết toán trả giá trị (kiểu vô hướng, kiểu string kiểu trỏ) - Lời gọi chương trình cần nằm biểu thức tính tốn * Thủ tục (Procedure) - Kết tốn khơng trả giá trị trả nhiều giá trị trả kiểu liệu có cấu trúc (Array, Record, File) - Lời gọi chương trình khơng nằm biểu thức tính tốn Chú ý: Nếu cơng việc làm hàm chắn làm thủ tục {tuy nhiên phức tạp dùng hàm} chương trình làm thủ tục chưa ta làm hàm 2.3.2.5 Biến toàn cục biến cục - Biến toàn cục biến khai báo chương trình Các biến dùng nơi chương trình tồn suốt thời gian làm việc chương trình - Biến cục (biến địa phương) biến khai báo chương trình Các biến sử dụng phạm vi chương trình mà khai báo Sau kết thúc chương trình biến khơng cịn tồn Ví dụ: PROGRAM vidu; Var a,b,c:integer; {3 biến toàn cục} PROCEDURE thutuc(n:integer);{n biến cục bộ} var i:integer; {i biến cục bộ} begin for i:=1 to 10 writeln(i); end; BEGIN a:=5;b:=6;c:=8; thutuc( a); thutuc( b); thutuc( c); readln; END Trong trường hợp biến cục trùng tên với biến tồn cục máy khơng bị nhầm lẫn mà thực biến cục Biến tồn cục khơng bị ảnh hưởng 2.3.2.6 Cách truyền tham số chương trình - Chương trình khơng cần có tham số (sau tên chương trình con) không dùng đến chúng dùng trực tiếp biến toàn cục - Khi truyền tham số tham số lời gọi chương trình phải thứ tự kiểu tương ứng với khai báo chương trình Ví dụ: Procedure inso(a:integer; ch:char); begin {các lệnh CTC} end; {gọi} inso(13,'a'); {lời gọi đúng} inso('a',13); {loi goi sai} inso(13);{lời gọi sai} - Tham số hình thức (đối) tham số sau tên hàm thủ tục khai báo - Tham số thực tham số sau tên hàm thủ tục lời gọi - Tham biến: tham số khai báo sau từ khóa var Các tham số thực phải biến không giá trị Tham biến thay đổi chương trình sau khỏi chương trình giữ giá trị thay đổi - Tham trị: tham số khia báo mà không đứng sau từ khóa var Các tham số thực giá trị, hằng, biến Tham trị thay đổi chương trình sau kết thúc chương trình giá trị trở ban đầu - Các tham số hàm tham trị, tham số thủ tục tham trị tham biến 2.3.2.7 Tính đệ quy chương trình Một chương trình Pascal gọi Một lời gọi gọi lời gọi đệ quy Ta xét ví dụ sau: Nhập vào số nguyên tính n! Ta biết n! = n =0 Trong trường hợp n>=1 ta có n!=n.(n-1)! Hàm tính n! function giai_thua(n:integer):longint; begin if n=0 then giai_thua:=1 else giai_thua:=n*giai_thua(n-1); end; Lưu ý: - Khi sử dụng đệ quy phải có điều kiện kết thúc đệ quy Trong ví dụ ta xét điều kiện kết thúc đệ quy n=0 Nếu khơng có điều kiện kết thúc chương trình ta lặp vơ hạn - Ln có lời gọi đệ quy, trường hợp lời gọi giai_thua(n-1); 2.3.3 Một số toán gợi động việc giảng dạy chương trình Bài tốn1: Viết chương trình thực cơng việc sau: Nhập ba số thực dương a , b , c (a,b,c c and (a+c)>b and (b+c)>a then Begin p=(a+b+c)/2; s:= sqrt(p*(p-a)(p-b)(p-c)); Writeln( ‘Ba so vua nhap la canh tam giac’); Writeln( ‘Dien tich cua tam giac la: ‘, s:4:2); End; 11 Else Writeln(‘3 so vua nhap khong phai la canh tam giac’); Readln END Chương trình kiểm tra ba số thực có phải cạnh tam giác, giả sử phải kiểm tra n hình tam giác vấn đề thực phức tạp Ở 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ệnh nhập, ta viết: 1.Hàm kiểm tra ba cạnh có phải tam giác 2.Thủ tục nhập ba cạnh tam giác 3.Hàm tính diện tích 4.Thủ tục nhập số tam giác,tính diện tích (nếu tam giác) 5.Chương trình Chương trình mẫu Program Tam_Giac; Var a:array[1 3,1 100] of real; {Bien toan cuc} 12 { Hàm kiểm tra} Function Ktra(x,y,z: real): Boolean; {Ham co tham tri} Begin Ktra:= (x