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
143 KB
Nội dung
SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA TRƯỜNG THPT LƯƠNG ĐẮC BẰNG SÁNG KIẾN KINH NGHIỆM TÊN ĐỀ TÀI CHƯƠNG TRÌNH CON VÀ PHÂN LOẠI Người thực hiện: Trịnh Thị Kim Dung Chức vụ: Giáo viên Đơn vị công tác: Trường THPT Lương Đắc Bằng SKKN thuộc lĩnh vực (mơn): Tin THANH HĨA NĂM 2021 MỤC LỤC TT 1.1 1.2 1.3 1.4 1.5 2.1 2.2 2.3 2.4 3.1 3.2 Nội dung Mở đầu Lý chọn đề tài Mục đích nghiên cứu Đối tượng nghiên cứu Phương pháp nghiên cứu Những điểm sáng kiến kinh nghiệm Nội dung sáng kiến kinh nghiệm Cơ sở lý luận Thực trạng vấn đề nghiên cứu Nội dung, biện pháp thực giải pháp Hiệu sáng kiến kinh nghiệm Kết luận, kiến nghị Kết luận Kiến nghị Trang 1 1 1 2 2 14 14 15 15 MỞ ĐẦU 1.1 Lý chọn đề tài Cơng nghệ thơng tin nói chung tin học nói riêng ngành khoa học phát triển mạnh mẽ có nhiều ứng dụng hầu hết lĩnh vực sống Môn tin học môn học mẽ học sinh Trung học phổ thông, học sinh chưa có khái niệm cơng nghệ thơng tin, khái niệm thuật tốn ngơn ngữ lập trình Mơn tin học khối THPT mơn tin học khối lớp 11 đánh giá khó Sở dĩ tơi chọn chủ đề “chương trình phân loại” làm đề tài cho sáng kiến thiết nghĩ học kỳ I em học cấu trúc chung chương trình pascal việc chuyển sang học chương trình khơng cịn vấn đề khó khăn em, từ gây hứng thú học tập làm cho em u mến mơn học khơng cảm thấy khó nói đến mơn tin học nói chung lập trình pascal nói riêng Năm học 2019 – 2020 tơi trực tiếp giảng dạy lớp 11 chuyển từ trường THPT Lê Viết Tạo sang (do sát nhập trường) Trong q trình giảng dạy mơn Tin học, tơi thấy gần em không tâm học môn Tin học nói chung học chương trình nói riêng, em cho Tin học khơng phải mơn khối, em khơng có hứng thú học Là giáo viên mơn tơi cảm thấy buồn, từ tơi có ý nghĩ đưa tập, ví dụ gần gũi với mơn học em như: toán, lý,…nhằm thu hút ý học tập em, giúp em u thích mơn học Dưới tơi xin trình bày sáng kiến: “Phương pháp dạy học chương trình phân loại chương trình Tin học 11 thông qua số tập tiêu biểu” Rất mong góp ý chân thành từ giáo viên học sinh sáng kiến kinh nghiệm để giúp tơi có giảng hay để học sinh học tốt mơn Tin học 1.2 Mục đích nghiên cứu Mục đích nghiên cứu nhằm giúp em hứng thú với mơn tin học nói chung lập trình pascal nói riêng Nhằm giúp em nắm hoạt động, cấu trúc chương trình để giải tập có liên quan Qua giúp em giải tốt tập lập trình, u thích mơn học 1.3 Đối tượng nghiên cứu: Học sinh lớp 11 trường THPT nói chung trường THPT Lương Đắc Bằng huyện Hoằng Hóa, tỉnh Thanh Hóa nói riêng 1.4 Phương pháp nghiên cứu Phương pháp nghiên cứu cấu trúc chương trình con, lợi ích việc sử dụng chương trình Đưa tập cho học sinh nghiên cứu , từ hướng dẫn cụ thể cho học sinh làm tập Yêu cầu học sinh cú pháp , hoạt động chương trình con, phân biệt thủ tục hàm 1.5 Những điểm sáng kiến kinh nghiệm Trong sáng kiến vận dụng kiến thức học lý thuyết vào tập mà lựa chọn, tập thông dụng, gần gũi với sống hàng ngày, tính tốn, suy luận logic gần gũi với mơn học học sinh mơn tốn, mơn lý,… môn học tư khác Các tập kiểm nghiệm chương trình thực hành học sinh rút kiến thức bổ ích cho học chương trình sau NỘI DUNG CỦA SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lý luận Ngày việc lập trình để giải toán lĩnh vực trở nên phổ biến Để giải toán lớn cách lập trình khơng sử dụng chương trình khó thực hiện, đặc biệt toán lớn cần nhiều người tham gia Làm sở cho học sinh sau tiếp cận với phương pháp lập trình khác 2.2 Thực trạng vấn đề nghiên cứu 2.2.1 Thuận lợi Học sinh tiếp cận số thuật toán lớp dưới, sử dụng ngơn ngữ lập trình Pascal để viết chương trình giải cá tốn q trình học Mặt khác 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 Khi học chương trình con, học sinh hiểu sâu sắc ngơn ngữ lập trình, giúp cho em hồn hành chương trình lớn Chương trình chương trình tổng hợp kiến thức em học 2.2.2 Khó khăn Có thể nói chương trình tin học lớp 11 phần nội dung khó chương trình tin học THPT Do bước đầu tiếp cận việc lập trình nên khả cịn hạn chế, Khả chuyển đổi từ thuật toán biết sang ngơn ngữ lập trình cụ thể cịn gặp nhiều khó khăn Việc học lập trình Pascal điểm khởi đầu giúp học sinh bước đầu tiếp cận với ngôn ngữ lập trình bậc cao, qua giúp em có thêm định hướng học tập u thích Tin học 2.3 Nội dung, biện pháp thực giải pháp đề tài Nêu cách lập trình giải số tốn thường gặp toán học tâp liên quan để học sinh hiểu rõ cách viết chương trình pascal, từ tự giải số toán tương tự 2.3.1 Một số khái niệm 2.3.1.1 Chương trình phân loại chương trình Các chương trình giải tốn phức tạp thường dài, gồm hàng trăm, hàng nghìn lệnh Khi đọc chương trình dài, khó nhận biết chương trình thực cơng việc việc hiệu chỉnh chương trình khó khăn Vì vậy, vấn đề đặt phải cấu trúc chương trình chương trình dễ đọc, dễ hiệu chỉnh, dễ nâng cấp Xét tốn tính tổng bốn lũy thừa: TLuythua = an + bm + cp + dq Bài toán bao gồm bốn toán tính: a n, bm, cp, dq, giao cho bốn người, người thực Giá trị TLuythua tổng kết bốn toán Ta hình dung tốn TLuythua giống ta làm tờ báo tường, công việc giao cho nhiều người tham gia như: người viết lời tựa, người sưu tầm truyện cười, người viết thơ, người viết văn… *) Chương trình dãy lệnh mô tả số thao tác định thực từ nhiều vị trí chương trình *) Lợi ích việc sử dụng chương trình - Tránh việc phải viết lặp lặp lại dãy lệnh - Hỗ trợ 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 phát triển, nâng cấp chương trình 2.3.1.2 Phân loại chương trình Chương trình viết hai dạng thủ tục (Procedure) hàm (Function) So sánh cấu trúc hai kiểu chương trình tương tự nhau, cách truy xuất chúng có khác cách trao đổi thơng tin kiểu có điểm khác *) Hàm (Function) chương trình thực số thao tác trả giá trị qua tên Ví dụ hàm toán học (sin (x), sqr(x), abs(x)…) hay hàm xử lý xâu (length(x), copy ) - Cấu trúc hàm: Function [()]:; *) Thủ tục (Procedure) chương trình thực thao tác định không trả giá trị qua tên Ví dụ thủ tục vào/ra chuẩn, hay thủ tục xử lý xâu… - Cấu trúc thủ tục: Procedure [()]; [] Begin [] End; 2.3.1.3 Biến toàn cục: Là biến khai báo đầu chương trình, sử dụng bên chương trình bên chương trình Biến tồn cục tồn suốt trình thực chương trình 2.3.1.4 Tham số hình thức Các biến khai báo cho liệu vào/ra gọi tham số hình thức chương trình 2.3.1.5 Biến cục bộ, biến toàn cục Là biến khai báo để dùng riêng chương trình Biến cục tồn chương trình hoạt động giải phóng sau chương trình kết thúc Nói chug, chương trình chương trình khác khơng thể sử dụng biến cục chương trình Một chương trình có khơng có tham số hình thức, có khơng có biến cục Biến toàn cục biến dùng vị trí chương trình 2.3.1.6 Tham số thực Để 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 cới tham số hình thức đặt cặp ngoặc ( ) Các biến gọi tham số thực 2.3.1.7 Tham số giá trị (tham trị): Trong lệnh gọi thủ tục, tham số hình thức thay tham số thực tương ứng giá trị cụ thể gọi tham số giá trị (gọi tắt tham trị) 2.3.1.8 Tham số biến (tham biến): Trong lệnh gọi thủ tục, tham số hình thức thay tham số thực tương ứng tên biến chứa liệu gọi tham số biến (gọi tắt tham biến) Để phân biệt tham biến tham trị Pascal sử dụng từ khóa Var để khai báo tham số biến 2.3.2.Một số tập áp dụng Có thể nói mơn tin học nói chung tin học 11 nói riêng mơn học khó Vì chương trình tơi đưa ví dụ, tập nhất, gần gũi với kiến thức thực tế Cụ thể em gặp toán mơn tốn học, mơn vật lý… Hơn ví dụ tơi đưa với học sinh có lực học trung bình hiểu áp dụng Từ làm cho em có hứng thú u thích mơn tin học nói chung lập trình pascal nói riêng 2.3.2.1 /BÀI TẬP SỬ DỤNG THỦ TỤC Bài tập 1: Nhập vào từ bàn phím số ngun a, b Viết chương trình hốn đổi vị trí hai số a b - Ý tưởng: để hốn đổi vị trí hai số ngun a, b ta phải sử dụng biến phụ (tạm) Lúc đầu biến tạm nhận giá trị biến a, biến a lại nhận giá trị biến b, biến b nhận giá trị biến tạm - Chương trình tham khảo: Program bai_tap1; Uses crt; Var a,b :integer; Procedure Hoan_doi (Var m,n: integer); Var tam: integer; Begin tam:=m; m:=n; n:=tam; End; Be gin Clrscr; Write (‘nhap vao hai so nguyen a,b:’); Readln (a,b); Hoan_doi (a, b); Writeln (a:5, b:5); Readln; End Bài tập 2: Dùng thủ tục giải phương trình bậc hai: ax2 + bx + c =0 (a 0) - Ý tưởng: ta sử dụng thủ tục chương trình để giải phương trình bậc Thủ tục dùng để nhập hệ số phương trình bậc Thủ tục dùng để tìm nghiệm - Chương trình tham khảo: Program ptb2; Ues crt; Var a,,b,c, x1, x2: real; Procedure nhapheso (Var a, b, c: real); Begin Write (‘ nhap he so bac hai:’); Readln (a); Write (‘ nhap he so bac nhat:’); Readln (b); Write (‘ nhap he so tu do:’); Readln (c); End; Procedure Tim_nghiem; Var delta: real; Begin Delta := sqr (b) – 4*a*c; If delta = then Begin Write (‘phuong trinh co nghiem kep:’); Write (‘x1= ‘, ‘x2 = ‘,- b/(2*a) : : 2); End Else If delta =’a’) and (s[i] =’A’) and (s[i] y then x:= x – y Else Y:= y – x; End; UCLN:= x; End; BEGIN Clrscr; Write (‘nhap hai so nguyen :’); Readln (a,b); Usc:= UCLN(a,b); Bsc:= (a*b) div usc; Writeln (‘ uoc so chung lon nhat la:’, usc); Writeln (‘boi so chung nho nhat la:’, bsc); Readln; END Bài tập 2: Viết hàm tính giai thừa cho số nguyên N - Ý tưởng N! = x x x x…x N Ta sử dụng biến chạy i , với i số nguyên liên tục từ đến N - Chương trình tham khảo: Program giai_thua; Uses crt; Var N : integer; Function Gt (x: integer) : integer; Var k, s :integer; Begin 11 S:= 1; For k:= to x S:= S * k; Gt := S; End; BEGIN Clrscr; Writeln (‘ tinh giai thua cua so nguyen N’); Write (‘ nhap so nguyen N:’) ; Readln (N); Writeln; Writeln (‘giai thua cua ‘, N, ‘= ‘ , Gt (N)); Readln; END Bài tập 3: Sử dụng hàm để kiểm tra xem ba số a, b, c (nhập từ bàn phím) có phải ba cạnh tam giác hay khơng? Áp dụng hàm để tính chu vi diện tích tam giác? - Ý tưởng: ba số a, b, c, ba cạnh tam giác a, b, c đồng thời số không âm tổng cạnh lớn cạnh lại - Chương trình tham khảo: Program tam_giac; Uses crt; Var a,b,c, p, s : real; Function KT (a, b, c :rel): boolean; Begin If (a > 0) and (b > 0) and (c > 0) and (a + b > c) and (b + c > a) and (a + c > b) then KT := true Else KT := False; End; BEGIN Clrscr; Write (‘nhap vao so a, b, c: ’); Readln (a, b, c); If KT (a, b, c) = true then Begin Writeln (‘day la ba cạnh cua mot tam giac’); P:= (a + b +c); S:= sqrt (p * (p – a) * (p – b) * (p – c )); Writeln (‘chu vi cua tam giac la:’, * p :8 : 3); Writeln (‘dien tich cua tam giac la:’, s :8 : 3); End Else Writeln (‘day khong phai la ba canh cua mot tam giac’); Readln; END 12 Bài tập 4: Tìm giá trị lớn ba số a, b, c nhập từ bàn phím - Ý tưởng: Để tìm giá trị lớn hai hay nhiều số trước hết ta tìm giá trị lớn số, sau lấy giá trị max so sánh với số - Chương trình tham khảo: Program bai4; Uses crt; Var a, b, c: real; Function Max (a, b: real): real; If a > b then Max := a Else Max := b; End; BEGIN Clrscr; Write (‘nhap vao ba so :’); Readln (a, b, c); Writeln (‘so lon nhat ba so la:’, Max (Max (a, b), c)); Readln; END Bài tập 5: Lập hàm tính diện tích hình thang Nhập liệu hai ruộng hình thang tính tổng diện tích - Ý tưởng: Như tốn học ta biết cơng thức tính diện tích hình thang Bài ta xây dựng hàm tính diện tích hình thang sau áp dụng để tính diện tích hai ruộng hình thang - Chương trình tham khảo: Program Btap5; Uses crt; Var a1, b1, h1, a2, b2, h2, s: real; Function Hinh_thang (a, b, h: real): real; Begin Hinh_thang := (a + b) * h/2; End; BEGIN Clrscr; Write (‘nhap kich thuoc cua thua ruong 1:’); Readln (a1, b1, h1); Write (‘nhap kich thuoc cua thua ruong 2:’); Readln (a2, b2, h2); S := Hinh_thang (a1, b1, h1) + Hinh_thang (a2, b2, h2); Writeln (‘tong dien tich cua hai thua ruong la:’, S:8:3); Readln; END Bài tập 6: Lập hàm tính chu kỳ dao động lắc theo công thức: 13 T= π l Trong đó: g + l độ dài dây treo lắc (m) + g gia tốc trọng trường (g = 9.18 m/s2) - Chương trình tham khảo: Program btap6; Uses crt; Const pi = 3.14; g = 9.18; Var l, T:real; Function Chu_ky (l: real): real; Begin Chu_ky:= 2*pi*sqrt(l/g); End; BEGIN Clrscr; Write(‘nhap dai day treo:’); Readln (l); T:= Chu_ky(l); Writeln (‘chu ky dao dong la:’, T:6:2); Readln; END Bài tập 7: Lập hàm tính diện tích hình trịn theo cơng thức: S = π r , với bán kính r nhập từ bàn phím - Chương trình tham khảo Program Btap7; Uses crt; Const pi = 3.14; Var r, S: real; Function Hinh_tron (r: real): real; Begin Hinh_tron:= pi * sqr (r ); End; Begin Clrscr; Write (‘nhap ban kinh hinh tron:’); Readln ( r ); S:= Hinh_tron (r ); Writeln (‘dien tich hinh tron la:’, S: 8:3); Readln; END Bài tập 8: Lập hàm tính đưa hình vận tốc V chạm đất vật rơi từ độ cao h, biết V = 2gh , g gia tốc rơi tự g = 9,8 m/s2 Độ cao h(m) nhập vào từ bàn phím 14 - Chương trình tham khảo: Program Btap8; Uses crt; Const g = 9.8; Var V, h: real; Function Van_toc (h: real): real; Begin Van_toc:= sqrt (2*g*h); End; BEGIN Clrscr; Write (‘nhap cao h: ’); Readln (h); V:= Van_toc (h); Writeln (‘van toc cua vat cham dat la:’, V:8:3); Readln; END Ngồi tập tơi giao thêm cho học sinh số tập dạng trắc nghiệm tự luận viết chương trình để nhà học sinh tự làm: Trong chương trình con, nên tổ chức truyền tham biến thiết phải dùng tham biến? Có thể viết chương trình khơng có tham số hình thức khơng có biến khai báo cục chương trình hay khơng? Chọn phương án phương án sau Để khai báo thủ thục pascal ta dùng từ khóa: A Program B Procedure C Var D Function Mơ tả chương trình có cấu trúc phù hợp nhất? A Chương trình có sử dụng cấu trúc mảng ghi B Sử dụng hàm thủ tục thư viện chuẩn C Được chia thành nhiều chương trình D Cả A B Mô tả tham số sai: A Một hàm có tham số giá trị tham số biến B Có thể truyền biến số cho tham số giá trị C Có thể truyền giá trị cho tham số biến D Có thể dùng tham số biến để nhận kết Khẳng định sau đúng? A Chỉ có hàm có tham số hình thức B Cả thủ tục hàm có tham số hình thức C Chỉ có thủ tục có tham số hình thức D Thủ tục hàm phải có tham số hình thức Cho khai báo hàm: Function KT (k: integer): String; Begin If k mod = then KT:= ‘chan’ Else KT:= le; 15 End; Muốn gán N = KT(5); biến N phải khai báo kiểu A Var N: real; B Var N: String; C Var N: Integer; D Var N: char; Sử dụng chương trình tìm số đảo số ngun dương Ví dụ: số nhập vào = 12345 Số đảo = 54321 2.4 Hiệu sáng kiến kinh nghiệm Thông qua việc áp dụng giải pháp nêu trên, phần giúp em tháo gỡ khó khăn, vướng mắc giải tốn tin học nói chung tốn chương trình nói riêng Giúp em có hứng thú với mơn học Kết đạt được: Sau dạy chương trình con, tơi có kiểm tra áp dụng cho học sinh lớp kết đạt sau: Đề bài: Câu 1: Hãy phân biệt tham số biến (tham biến) tham số giá trị (tham trị)? Cho ví dụ? Câu 2: Cho khai báo hàm: Function KT (k: integer): string; Begin If k mod = then KT:= ‘chan’ Else KT:= ‘le’; End; Muốn gán X:= KT(5); biến X phải khai báo kiểu gì: a) Var X: real; b) Var X: string; c) Var X: integer; Câu 3: Cho khai báo biến khai báo đầu thủ tục TT: Var X, y: integer; St: string; Procedure TT (Var a: integer; b: string); Lệnh đúng: a) TT(x + 1, St); b) TT(10, St); c) TT(x, St); Câu 4: Viết chương trình tính thể tích hình cầu theo cơng thức V= π r , với bán kính r nhập từ bàn phím (sử dụng thủ tục hàm) Kết lớp không thực nghiệm: Lớp 11A11 Tổng số Số HS đạt Số HS đạt Số HS đạt Số HS đạt Số HS đạt HS điểm giỏi điểm điểm TB điểm Yếu điểm Kém 42 2HS=4.8% 10HS=23.8% 18HS=42.8% 10HS=23.8% 2HS=4.8% Kết lớp đạt sau thực nghiệm: Lớp Tổng số HS 11A12 40 Số HS đạt điểm giỏi Số HS đạt điểm Khá Số HS đạt điểm TB Số HS đạt Số HS đạt điểm Yếu điểm 8HS=20% 16HS=36.4% 16HS=36.4% 2HS=7.2% 16 KẾT LUẬN, KIẾN NGHỊ 3.1 Kết luận Tin học ngành khoa học, môn học đặc thù, trình học lý thyết phải đơi với việc thực hành máy tính Với nghiên cứu đề tài thu kết khả quan từ em học sinh Hầu hết em nắm cú pháp, hoạt động chương trình Cụ thể em nắm rõ cấu trúc thủ tục hàm, từ em vận dụng vào tập cụ thể , làm cho em u thích mơn học Tơi thấy hài lịng với kết đạt Ngồi đặc thù mơn học đa dạng nên dù cố gắng khó tránh khỏi thiếu sót, sai lầm, mong giúp đỡ đồng nghiệp em học sinh để việc học dạy tốt 3.2 Kiến nghị Nhà trường nên thành lập câu lạc tin học trường nhằm thu hút học sinh có lực học khá, giỏi có niềm đam mê tin học để em phát huy tối đa khả Ngồi ra, tơi muốn đề xuất với ban giám hiệu nhà trường, cấp lãnh đạo bổ sung nâng cấp thêm máy tính (cả số lượng chất lượng) cho em học tập tốt Xin chân thành cảm ơn! XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN VỊ Thanh hóa, ngày 10 tháng năm 2021 Tơi xin cam đoan SKKN viết, khơng chép nội dung người khác Người viết Trịnh Thị Kim Dung 17 TÀI LIỆU THAM KHẢO Sách giáo khoa tin học 11: Hồ Sĩ Đàm – Hồ Cẩm Hà (NXB Giáo dục) Sách tập tin học 11: Hồ Sĩ Đàm – Nguyễn Thanh Tùng (NXB Giáo dục) Sách tập ngơn ngữ lập trình Pascal: Quách Tuấn Ngọc (NXB Thống kê) Sách học tốt tin học 11: Trần Doãn Vinh (NXB Đại học quốc gia Hà Nội) Sách tự học lập trình pascal: Mai Hương (NXB văn hóa thơng tin) 18 ... lý,…nhằm thu hút ý học tập em, giúp em u thích mơn học Dưới tơi xin trình bày sáng kiến: ? ?Phương pháp dạy học chương trình phân loại chương trình Tin học 11 thông qua số tập tiêu biểu? ?? Rất mong góp... gặp toán học tâp liên quan để học sinh hiểu rõ cách viết chương trình pascal, từ tự giải số toán tương tự 2.3.1 Một số khái niệm 2.3.1.1 Chương trình phân loại chương trình Các chương trình giải... trình con, học sinh hiểu sâu sắc ngơn ngữ lập trình, giúp cho em hồn hành chương trình lớn Chương trình chương trình tổng hợp kiến thức em học 2.2.2 Khó khăn Có thể nói chương trình tin học lớp 11