Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 12 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
12
Dung lượng
107,5 KB
Nội dung
BM 01-Bìa SKKN SỞ GIÁO DỤC VÀ ĐÀO TẠO ĐỒNG NAI TRƯỜNG THPT XUÂN HƯNG Mã số: SÁNG KIẾN KINH NGHIỆM CHƯƠNG TRÌNH CON Người thực hiện: Nguyễn Văn Bính Lĩnh vực nghiên cứu: Quản lý giáo dục Phương pháp dạy học môn: Tin học 11 Phương pháp giáo dục Lĩnh vực khác: Có đính kèm: Mô hình Phần mềm Phim ảnh Năm học: 2011-2012 Hiện vật khác BM02-LLKHSKKN SƠ LƯỢC LÝ LỊCH KHOA HỌC I THÔNG TIN CHUNG VỀ CÁ NHÂN Họ tên: NGUYỄN VĂN BÍNH Ngày tháng năm sinh: 15/08/1982 Nam, nữ: Nam Địa chỉ: Ấp 2A, Xuân Hưng, Xuân Lộc, Đồng Nai Điện thoại: (CQ)/ (NR); ĐTDĐ: 01667489510 Fax: E-mail: vanbinh2007@gmail.com Chức vụ: Giáo Viên Đơn vị công tác: TRƯỜNG THPT XUÂN HƯNG II TRÌNH ĐỘ ĐÀO TẠO - Học vị (hoặc trình độ chuyên môn, nghiệp vụ) cao nhất: CỬ NHÂN - Năm nhận bằng: 2004 - Chuyên ngành đào tạo: TOÁN – TIN HỌC III.KINH NGHIỆM KHOA HỌC - Lĩnh vực chuyên môn có kinh nghiệm: Giảng dạy môn Tin học Số năm có kinh nghiệm: năm - Các sáng kiến kinh nghiệm có năm gần đây: BM03-TMSKKN CHƯƠNG TRÌNH CON I LÝ DO CHỌN ĐỀ TÀI - Lập trình vấn đề tương đối mới đối với học sinh THPT, đặt biệt học sinh vùng nông thôn trường THPT Xuân Hưng Trong trình lập trình học sinh không nắm vững chương trình thường dẫn đến sai sót dẫn tới chương trình không đạt được kết mong muốn - Để học sinh có thể hiểu kĩ nhận thấy được lợi ích của chương trình trình lập trình để giải toán Tạo hứng thú trình học tập II THỰC TRẠNG TRƯỚC KHI THỰC HIỆN CÁC GIẢI PHÁP CỦA ĐỀ TÀI Thuận lợi - Học sinh được 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 toán trình học - Được hỗ trợ của thành viên tổ Khó khăn - Do bước đầu tiếp cận việc lập trình nên khả còn hạn chế - Khả diễn đạt cách giải toán sang thuật toán còn nhiều khó khăn học sinh vùng nông thôn khả tin học 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 III.NỘI DUNG ĐỀ TÀI 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ó có thể thực đặc biệt đối với 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 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ố toá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ừ có thể tự giải số toán tương tự A TÓM TẮT LÝ THUYẾT: I/ Khái niệm chương trình con: Chương trình dãy lệnh mô tả số thao tác định có thể được thực (được gọi) từ nhiều vị trí chương trình II/ Phân loại cấu trúc chương trình Phân loại - Hàm (function) chương trình thực số thao tác trả giá trị qua tên của - Thủ tục (procedure) chương trình thực tháo tác định không trả giá trị qua tên của Cấu trúc chương trình a Cấu trúc của thủ tục: Procedure [(danh sách tham số)]; [] Begin []; End; b Cấu trúc của hàm: - Hàm có cấu trúc tương tự thủ tục, nhiên có khác phần đầu - Khai báo phần đầu hàm sau: Function [(danh sách tham số)]:; - Kiểu liệu kiểu liệu của giá trị mà hàm trả vể có thể kiểu: integer, real, char, boolean, string - Khác với thủ tục, thân hàm cần có lệnh gán giá trị cho tên hàm: := ; Một số khái niệm - Tham số hình thức: Các biến được khai báo cho liệu vào/ra được gọi tham số hình thức - Tham số thực sự: Để 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à tương ứng với tham số hình thức đặt cặp dấu ngoặc ( ) Các biến được gọi tham số thực - Biến cục biến được khai báo để dùng riêng chương trình - Biến toàn cục biến được dùng vị trí chương trình - Tham số giá trị ( tham trị) lệnh gọi thủ tục tham số hình thức được thay tham số thực tương ứng giá trị cụ thể được gọi tham số giá trị - Tham số biến (tham biến) lệnh gọi thủ tục tham số hình thức được thay tham số thực tương ứng biến chứa liệu được gọi tham số biến - Để phân biệt tham số biến tham trị, Pascal sử dụng từ khóa Var để khai báo tham số biến B BÀI TẬP ÁP DỤNG: I/ BÀI TẬP SỬ DỤNG THỦ TỤC Bài tập 1: Viết chương trình nhập vào số nguyên dương N (N≤ 300) dãy A gồm N số nguyên Sắp xếp dãy số vừa nhập thành dãy không giảm xuất dãy được sắp xếp hình Phân tích: - Thiết kế chương trình phục vụ việc nhập dãy số - Thiết kế chương trình phục vụ việc xuất dãy số hình - Thiết kế chương trình dùng để thực công việc sắp xếp - Các chương trình không cần trả giá trị cụ thể nên dùng thủ tục - Đối với thủ tục nhập mảng cần phải lại thay đổi bên nên sử dụng tham số biến - Đối với thủ tục sắp xếp cần giữ lại giá trị sau sắp xếp nên khai báo mảng tham số biến, số lượng phần tử không thay đổi nên dùng tham trị Chương trình: Program sapxepdayso; Uses CRT; Const Nmax = 300; Type ArrInt = Array[1 300] of integer; Var A: ArrInt; N: integer; Procedure Nhap_Mang(var A: ArrInt; var M: integer); Var i: integer; Begin Write(‘Nhap so phan tu cua day so:’); Readln(M); For i:=1 to M Begin Write(‘A[‘,i,’]=’); Readln(A[i]); End; End; Procedure Hoan_doi(var a,b:integer); Var tam: integer; Begin tam:= a; a := b; b:= tam; End; Procedure Sap_xep(var A: ArrInt; M: integer); Var i, j: integer; Begin For j:=M downto For i:=1 to j-1 If A[i] > A[i+1] then Hoan_doi(A[i],A[i+1]); End; Procedure Xuat_mang(A: ArrInt; M: integer); Var i: integer; Begin For i:=1 to M Write(A[i]: 5); End; BEGIN Clrscr; Nhap_mang(A,n); Sap_xep(A,n); Xuat_mang(A,n) Readln END Bài tập tương tự: Viết chương trình nhập vào dãy số nguyên dương B gồm M phần tử (M≤300) Tìm giá trị nhỏ của dãy Viết chương trình nhập vào số nguyên dương N (N≤ 300) dãy A gồm N số nguyên Sắp xếp dãy số vừa nhập thành tăng xuất dãy được sắp xếp hình Bài tập 2: Viết chương trình đọc liệu từ tệp A.IN đưa vào mảng A: dòng tệp A.IN chứa số phần tử của mảng A, dòng thứ chứa số nguyên giá trị của phần tử mảng số cách bởi dấu cách, sau tạo mảng B B[i] tổng i phần tử mảng A Ghi giá trị của mảng B tệp B.OUT Phân tích: - Thiết kế thủ tục phục vụ đọc liệu từ tệp - Thiết kế thủ tính giá trị của dãy B - Thiết kế thủ tục ghi giá trị của dãy B tệp Chương trình: program TEP_DL; const input='A.IN'; output='B.OUT'; max=300; var A, B:array[1 max] of integer; i, n: integer; procedure Doc_DL; var f:text; i: integer; Begin assign(f,input); reset(f); readln(f,n); for i:=1 to n read(f,A[i]); close(f); End; procedure XuLi_DL; var i:integer; Begin B[1]:=A[1]; for i:=2 to n B[i]:=B[i-1]+A[i]; End; Procedure Ghi_DL; var i: integer; f:text; Begin assign(f,output); rewrite(f); for i:=1 to n write(f,B[i]:3); close(f); End; Begin Doc_DL; XuLi_DL; Ghi_DL; End Bài tập tương tự: Viết chương trình sắp xếp dãy số chứa tệp INPUT.IN (dòng 1: Chứa số n, dòng 2:chứa n số nguyên cách bởi dấu cách) Ghi dãy số được sắp tăng dần tệp OUTPUT.OUT Viết chương trình đọc dãy số chứa tệp INPUT.IN (dòng 1: Chứa số n, dòng 2:chứa n số nguyên cách bởi dấu cách) Cho biết dãy số có số chẵn, số lẻ tính tổng số chẵn, tổng số lẻ tệp OUTPUT.OUT( dòng ghi số: số số lượng số chẵn dãy, số tổng số chẵn; dòng thứ ghi số: số số lượng số lẻ dãy, số tổng số lẻ) II BÀI TẬP SỬ DỤNG HÀM Bài toán 1: Viết chương trình tính n giai thừa Trong n số nguyên dương được nhập vào từ bàn phím chạy chương trình Phân tích: Cần thiết kế chương trình con(hàm) để tính giai thừa Chương trình: Program Giai_thua; Uses CRT; Var n: word Fucntion GT(k: word): longint; Var T, i: word; Begin T:= 1; For i:=1 to k T:= T* i; GT:=T; End; BEGIN Clrscr; Write(‘nhap n:’); readln(n); Write(n,’!=’, GT(n)); Readln END Bài tập tương tự: Viết chương trình tính tổng S= a! + b! + c! Trong a, b, c số nguyên dương được nhập vào từ bàn phím chạy chương trình k Viết chương trình tính chỉnh hợp An Trong n, k số nguyên dương được nhập vào từ bàn phím chạy chương trình k Viết chương trình tính tổ hợp Cn Trong n, k số nguyên dương được nhập vào từ bàn phím chạy chương trình Bài toán 2: Tính tổng lũy thừa S=ax+by+cz Trong a, b, c số thực; x, y, z số nguyên dương Giá trị của số được nhập vào từ bàn phím chạy chương trình Program Tong_luy_thua; Uses CRT; Var a,b,c: real; x, y, z: word; Fucntion Luythua(x:real; k: word): real; Var i: integer; T:real; Begin T:= 1; For i:=1 to k T:= T* x; Luythua:=T; End; BEGIN Clrscr; Write(‘nhap a,b,c,x,y,z:’); readln(a,b,c,x,y,z); S:=Luythua(a,x)+ Luythua(b,y)+Luythua(c,z); Write(‘Tong luy thua:’,s:8:2); Readln END Bài tập tương tự: xk + y q 20 20 Viết chương trình tính giá trị T= x y Trong x, y số thực; q, k số nguyên, so được nhập vào từ bàn phím chạy chương trình Viết chương trình tính tổng S= x 100+ y200+z50 Trong x, y, z số thực được nhập vào từ bàn phím chạy chương trình Bài tập 3: Cho chiều dài của ba cạnh tam giác Viết chương trình tính chu vi, diện tích, chiều dài đường cao, chiều dài đường trung truyến của tam giác Program Tam_giac; Uses CRT; Fucntion Chuvi(a,b,c: real): real; Begin Chuvi:=a+b+c; End; Fucntion Dientich(a,b,c: real): real; Var p: real; Begin p:=(a+b+c)/2; Dientich := sqrt(p*(p-a)*(p-b)*(p-c)); End; Fucntion Trungtuyen(a,b,c: real): real; Begin Trungtuyen:=sqrt(((b*b+c*c )- a*a)/(4*a)) End; Fucntion Chieucao( a,b,c, x: real): real;(*x chiều cao của cạnh tương ứng cần tính*) Begin Chieucao := 2*Dientich(a,b,c)/x; End; BEGIN Clrscr; Write(‘nhap a, b, c:’); readln(a,b,c); If (a+b>c) and (b+c>a) and (a+c>b) then Begin Write(‘Chu vi tam giac’, Chuvi(a,b,c):5:2); Write(‘Dien tich tam giac’, Dientich(a,b,c):5:2); Write(‘Trung tuyen m_a’, Trungtuyen(a,b,c):5:2); Write(‘Trung tuyen m_b’, Trungtuyen(b,a,c):5:2); Write(‘Trung tuyen m_c’, Trungtuyen(c,b,a):5:2); Write(‘Chieu cao h_a’, Chieucao(a,b,c,a):5:2); Write(‘Chieu cao h_b’, Chieucao(a,b,c,b):5:2); Write(‘Chieu cao h_c’, Chieucao(a,b,c,c):5:2); End Else Write(‘Ba so vua nhap khong tao ba canh cua tam giac’); Readln END Bài tập tương tự: Viết chương trình tính chu vi, diện tích hình chữ nhật có chiều dài chiều rộng cạnh a, b Viết chương trình tính chu vi, diện tích hình tròn có bán kính R Viết chương trình tính chu vi, diện tích hình vuông có cạnh a Bài toán 4: Viết chương trình nhập vào hai số nguyên dương Tìm bội số chung nhỏ của số Program BT_UCLN; Var x, y: word; Function UCLN(a,b:word):word; Begin a:= abs(a); b:=abs(b); while a b begin if a > b then a:=a-b; if b > a then b:= b- a; end; UCLN:= a; End; BEGIN Write(‘x,y:’);Readln(x,y); Write(‘BCNN cua’, x, ‘va’, ‘y:’, (x*y) div UCLN(x,y)); Readln END Bài tập tương tự: Viêt chương trình tìm ước chung lớn của số nguyên dương IV KẾT QUẢ Thông qua số tập mẫu giúp cho học sinh nắm được phương pháp giải chung, từ áp dụng để giải số toán có sử dụng chương trình V BÀI HỌC KINH NGHIỆM - Trong trình giảng dạy cần khuyến khích học sinh tích cực tham gia thảo luận, phát biểu ý kiến, tránh áp đặt cho học sinh - Có thể dùng tập thực hành thay cho tiết thực hành sách giáo khoa được giảm tải - Đối với lớp có học lực thấp, có thể giảm bớt chương trình thủ tục thao tác mảng chiều tập trung nhiều vào chương trình phần sử dụng hàm VI KẾT LUẬN Để học sinh đạt được kết tốt đòi hỏi học sinh phải nắm vững kiến thức cách giải toán toán học để phân tích toán thành thuật toán để viết chương trình Với đề tài có thể mở rộng cho toàn học sinh nhiên cần chú ý đối tượng áp dụng cho có kết tốt VII TÀI LIỆU THAM KHẢO Ghi tên tài liệu tham khảo tên tác giả được sử dụng trích dẫn sáng kiến kinh nghiệm Sách giáo khoa Tin học 11 - Hồ Sĩ Đàm – Nhà xuất giáo dục - 2006 Sách giáo viên Tin học 11 - Hồ Sĩ Đàm – Nhà xuất giáo dục - 2006 Sách tập Tin học 11 - Hồ Sĩ Đàm - Nhà xuất giáo dục - 2006 Sách giáo khoa Tin học 10 - Hồ Sĩ Đàm - Nhà xuất giáo dục - 2006 NGƯỜI THỰC HIỆN (Ký tên ghi rõ họ tên) NGUYỄN VĂN BÍNH SỞ GD&ĐT ĐỒNG NAI TRƯỜNG THPT XUÂN HUNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc Xuân Hưng, ngày 15 tháng 05 năm 2012 PHIẾU NHẬN XÉT, ĐÁNH GIÁ SÁNG KIẾN KINH NGHIỆM Năm học: 2011-2012 ––––––––––––––––– Tên sáng kiến kinh nghiệm: CHƯƠNG TRÌNH CON Họ tên tác giả: NGUYỄN VĂN BÍNH Đơn vị (Tổ): Toán – Tin , trường THPT Xuân Hưng Lĩnh vực: Quản lý giáo dục Phương pháp dạy học môn: TIN HỌC 11 Phương pháp giáo dục Lĩnh vực khác: Tính - Có giải pháp hoàn toàn mới - Có giải pháp cải tiến, đổi mới từ giải pháp có Hiệu - Hoàn toàn mới triển khai áp dụng toàn ngành có hiệu cao - Có tính cải tiến đổi mới từ giải pháp có triển khai áp dụng toàn ngành có hiệu cao - Hoàn toàn mới triển khai áp dụng đơn vị có hiệu cao - Có tính cải tiến đổi mới từ giải pháp có triển khai áp dụng đơn vị có hiệu Khả áp dụng - Cung cấp được luận khoa học cho việc hoạch định đường lối, sách: Tốt Khá Đạt - Đưa giải pháp khuyến nghị có khả ứng dụng thực tiễn, dễ thực dễ vào sống: Tốt Khá Đạt - Đã được áp dụng thực tế đạt hiệu có khả áp dụng đạt hiệu phạm vi rộng: Tốt Khá Đạt XÁC NHẬN CỦA TỔ CHUYÊN MÔN (Ký tên ghi rõ họ tên) THỦ TRƯỞNG ĐƠN VỊ (Ký tên, ghi rõ họ tên đóng dấu)