Đăng ký Đăng nhập
Trang chủ Sáng kiến kinh nghiệm chương trình con...

Tài liệu Sáng kiến kinh nghiệm chương trình con

.PDF
11
152
81

Mô tả:

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 bộ 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 1. Họ và tên: NGUYỄN VĂN BÍNH 2. Ngày tháng năm sinh: 15/08/1982 3. Nam, nữ: Nam 4. Địa chỉ: Ấp 2A, Xuân Hưng, Xuân Lộc, Đồng Nai 5. Điện thoại: (CQ)/ (NR); ĐTDĐ: 01667489510 6. Fax: E-mail: [email protected] 7. Chức vụ: Giáo Viên 8. Đơ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: 6 năm - Các sáng kiến kinh nghiệm đã có trong 5 năm gần đây: BM03-TMSKKN CHƯƠNG TRÌNH CON I. LÝ DO CHỌN ĐỀ TÀI - Lập trình là vấn đề tương đối m i đối v i học sinh THPT, đặt biệt là học sinh v ng nông thôn như trường THPT Xuân Hưng. Trong uá trình lập trình nếu học sinh không n m vững về chương trình con thì thường d n đến các sai sót d n t i chương trình không đạt đư c kết uả như mong muốn. - Đ học sinh có th hi u kĩ hơn và nhận thấy đư c l i ích c a chương trình con trong uá trình lập trình đ giải uyết các bài toán. Tạo hứng th trong uá 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 1. Thuận lợi - Học sinh đã đư c tiếp cận một 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 uyết các bài toán trong uá trình học. - Đư c sự hỗ tr c a các thành viên trong tổ. 2. Khó khăn - Do bư c đầu tiếp cận việc lập trình nên khả năng c n hạn chế. - hả năng diễn đạt cách giải một bài toán sang thuật toán c n nhiều khó khăn do học sinh v ng nông thôn khả năng tin học c n hạn chế. - hả năng 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 1. Cơ sở lý luận - Ngày nay việc lập trình đ giải uyết các bài toán trong các lĩnh vực đã tr nên rất phổ biến. Đ giải uyết các bài toán l n thì cách lập trình không s dụng chương trình con khó có th thực hiện đặc biệt là đối v i các bài toán l n cần nhiều người tham gia. - Làm cơ s cho học sinh sau này tiếp cận v i phương pháp lập trình khác. 2. Nội dung, biện pháp thực hiện các giải pháp của đề tài - Nêu ra cách lập trình giải uyết một số bài toán thường gặp trong toán học và các bài tập liên uan đ học sinh hi u rõ hơn cách viết chương trình con trong Pascal t đó có th tự mình giải uyết một số bài toán tương tự . A. TÓM TẮT LÝ THUYẾT: I/ hái niệm chương trình con: Chương trình con là một dãy lệnh mô tả một số thao tác nhất định và có th đư c thực hiện (đư c gọi) t nhiều vị trí trong chương trình. II/ Phân loại và cấu tr c chương trình con 1. Phân loại - Hàm (function) là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị ua tên c a nó. - Th tục (procedure) là chương trình con thực hiện các tháo tác nhất định nhưng không trả về giá trị ua tên c a nó. 2. Cấu tr c chương trình con 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ự như th tục, tuy nhiên có khác nhau phần đầu. - hai báo phần đầu một hàm như sau: Function [(danh sách tham số)]:; i u dữ liệu là ki u dữ liệu c a giá trị mà hàm trả v và chỉ có th là các ki u: integer, real, char, boolean, string. hác v i th tục, trong thân hàm cần có lệnh gán giá trị cho tên hàm: := ; 3. Một số khái niệm - Tham số hình thức: Các biến đư c khai báo cho dữ liệu vào/ra đư c gọi là tham số hình thức. - Tham số thực sự: Đ thực hiện (gọi) một chương trình con, ta cần phải có lệnh gọi nó tương tự lệnh gọi hàm hay th tục chuẩn, bao gồm tên chương trình con v i tham số (nếu có) là các hằng và biến chứa dữ liệu và và ra tương ứng v i các tham số hình thức đặt trong cặp dấu ngoặc ( và ). Các hằng và biến này đư c gọi là các tham số thực sự. - Biến cục bộ là biến đư c khai báo đ d ng riêng trong chương trình con - Biến toàn cục là biến đư c d ng tại mọi vị trí trong chương trình - Tham số giá trị ( tham trị) trong lệnh gọi th tục các tham số hình thức đư c thay bằng các tham số thực sự tương ứng là các giá trị cụ th đư c gọi là các tham số giá trị. - Tham số biến (tham biến) trong lệnh gọi th tục các tham số hình thức đư c thay bằng các tham số thực sự tương ứng là các biến chứa dữ liệu ra đư c gọi là các tham số biến. - Đ phân biệt tham số biến và 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) và 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 và xuất dãy đư c s p xếp ra ngoài màn hình. Phân tích: - Thiết kế một chương trình con phục vụ việc nhập dãy số. - Thiết kế một chương trình con phục vụ việc xuất dãy số ra màn hình. - Thiết kế một chương trình con d ng đ thực hiện công việc s p xếp. - Các chương trình con trên không cần trả về một giá trị cụ th nào nên d ng th tục. - Đối v i th tục nhập mảng cần phải dữ lại các thay đổi bên trong nên s dụng tham số biến. - Đối v i th tục s p xếp cần giữ lại các giá trị sau khi s p xếp nên khai báo mảng là 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 do 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 2 do For i:=1 to j-1 do 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 do 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ự: 1. Viết chương trình nhập vào một dãy số nguyên dương B gồm M phần t (M≤300). Tìm giá trị nhỏ nhất c a dãy. 2. Viết chương trình nhập vào số nguyên dương N (N≤ 300) và dãy A gồm N số nguyên. S p xếp dãy số v a nhập thành tăng và xuất dãy đư c s p xếp ra ngoài màn hình. Bài tập 2: Viết chương trình đọc dữ liệu t tệp A.IN đưa vào mảng A: d ng đầu tiên trong tệp A.IN chứa số phần t c a mảng A, d ng thứ 2 chứa các số nguyên là các giá trị c a các phần t trong mảng mỗi số cách nhau b i một dấu cách, sau đó tạo ra mảng B trong đó B[i] là tổng i phần t đầu tiên trong mảng A. Ghi các giá trị c a mảng B ra tệp B.OUT. Phân tích: - Thiết kế một th tục phục vụ đọc dữ liệu t tệp. - Thiết kế một th tính các giá trị c a dãy B - Thiết kế một th tục ghi các giá trị c a dãy B ra 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 do read(f,A[i]); close(f); End; procedure XuLi_DL; var i:integer; Begin B[1]:=A[1]; for i:=2 to n do 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 do write(f,B[i]:3); close(f); End; Begin Doc_DL; XuLi_DL; Ghi_DL; End. Bài tập tương tự: 1 Viết chương trình s p xếp dãy số chứa trong tệp INPUT.IN (d ng 1: Chứa số n, d ng 2:chứa n số nguyên cách nhau b i dấu cách). Ghi dãy số đư c s p tăng dần ra tệp OUTPUT.OUT. 2 Viết chương trình đọc dãy số chứa trong tệp INPUT.IN (d ng 1: Chứa số n, d ng 2:chứa n số nguyên cách nhau b i dấu cách). Cho biết trong dãy số có bao nhiêu số chẵn, bao nhiêu số lẻ và tính tổng số chẵn, tổng số lẻ rồi ra tệp OUTPUT.OUT( d ng đầu tiên ghi 2 số: số đầu tiên là số lư ng số chẵn trong dãy, số kế tiếp là tổng các số chẵn; d ng thứ 2 ghi 2 số: số đầu tiên là số lư ng số lẻ trong dãy, số kế tiếp là tổng các 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 là số nguyên dương đư c nhập vào t bàn phím khi chạy chương trình. Phân tích: Cần thiết kế một 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 do 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ự: 1. Viết chương trình tính tổng S= a! + b! + c!. Trong đó a, b, c là các số nguyên dương đư c nhập vào t bàn phím khi chạy chương trình. 2. Viết chương trình tính chỉnh h p Ank . Trong đó n, k là các số nguyên dương đư c nhập vào t bàn phím khi chạy chương trình. 3. Viết chương trình tính tổ h p Cnk . Trong đó n, k là các số nguyên dương đư c nhập vào t bàn phím khi 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 là các số thực; x, y, z là các số nguyên dương. Giá trị c a các số này đư c nhập vào t bàn phím khi 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 do 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 1. Viết chương trình tính giá trị T= 20 20 . Trong đó x, y là số thực; , k là các số x y nguyên, các so này đư c nhập vào t bàn phím khi chạy chương trình. 2. Viết chương trình tính tổng S= x100+ y200+z50. Trong đó x, y, z là các số thực đư c nhập vào t bàn phím khi 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 các đường cao, chiều dài các đườ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 là 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 thanh ba canh cua tam giac’); Readln END. Bài tập tương tự: 1. Viết chương trình tính chu vi, diện tích hình chữ nhật có chiều dài và chiều rộng các cạnh là a, b. 2. Viết chương trình tính chu vi, diện tích hình tr n có bán kính R. 3. 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ỏ nhất c a 2 số này. Program BT_UCLN; Var x, y: word; Function UCLN(a,b:word):word; Begin a:= abs(a); b:=abs(b); while a<> b do 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ự: 1. Viêt chương trình tìm ư c chung l n nhất c a 2 số nguyên dương. IV. KẾT QUẢ Thông ua một số bài 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 một số bài toán cơ bản có s dụng chương trình con. V. BÀI HỌC KINH NGHIỆM - Trong uá 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 các bài tập trên trong giờ thực hành thay cho các tiết thực hành trong sách giáo khoa đã đư c giảm tải. - Đối v i các l p có học lực thấp, có th giảm b t các chương trình về các th tục thao tác trên mảng một chiều và tập trung nhiều hơn vào các chương trình trong phần s dụng hàm. VI. KẾT LUẬN Đ học sinh đạt đư c kết uả tốt hơn nữa thì đòi hỏi học sinh phải n m vững các kiến thức về cách giải các bài toán trong toán học đ phân tích các bài toán thành thuật toán đ viết chương trình. V i đề tài này có th m rộng cho toàn bộ học sinh tuy nhiên cần ch ý đối tư ng áp dụng sao cho có kết uả tốt nhất. VII. TÀI LIỆU THAM KHẢO Ghi tên tài liệu tham khảo và tên tác giả đã đư c s dụng trích d n trong sáng kiến kinh nghiệm. 1. Sách giáo khoa Tin học 11 - Hồ Sĩ Đàm – Nhà xuất bản giáo dục - 2006. 2. Sách giáo viên Tin học 11 - Hồ Sĩ Đàm – Nhà xuất bản giáo dục - 2006. 3. Sách bài tập Tin học 11 - Hồ Sĩ Đàm - Nhà xuất bản giáo dục - 2006. 4. Sách giáo khoa Tin học 10 - Hồ Sĩ Đàm - Nhà xuất bản giáo dục - 2006. NGƯỜI THỰC HIỆN (Ký tên và 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ự do - 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ọ và 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 bộ môn: TIN HỌC 11 Phương pháp giáo dục  Lĩnh vực khác: ....................................................  1. Tính mới - 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ó  2. Hiệu quả - Hoàn toàn m i và đã tri n khai áp dụng trong toàn ngành có hiệu uả cao  - Có tính cải tiến hoặc đổi m i t những giải pháp đã có và đã tri n khai áp dụng trong toàn ngành có hiệu uả cao  - Hoàn toàn m i và đã tri n khai áp dụng tại đơn vị có hiệu uả cao  - Có tính cải tiến hoặc đổi m i t những giải pháp đã có và đã tri n khai áp dụng tại đơn vị có hiệu uả  3. Khả năng áp dụng - Cung cấp đư c các luận cứ khoa học cho việc hoạch định đường lối, chính sách: Tốt  Khá  Đạt  - Đưa ra các giải pháp khuyến nghị có khả năng ứng dụng thực tiễn, dễ thực hiện và dễ đi vào cuộc sống: Tốt  Khá  Đạt  - Đã đư c áp dụng trong thực tế đạt hiệu quả hoặc có khả năng áp dụng đạt hiệu quả trong phạm vi rộng: Tốt  Khá  Đạt  XÁC NHẬN CỦA TỔ CHUYÊN MÔN ( ý tên và ghi rõ họ tên) THỦ TRƯỞNG ĐƠN VỊ ( ý tên, ghi rõ họ tên và đóng dấu)
- Xem thêm -

Tài liệu liên quan