Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 11 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
11
Dung lượng
119,5 KB
Nội dung
MỤC LỤC A PHẦN I: MỞ ĐẦU Lý chọn đề tài .2 Mục đích nghiên cứu Đối tượng nghiên cứu .3 Phương pháp nghiên cứu B PHẦN II: NỘI DUNG SÁNG KIẾN KINH NGHỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm 2.2 Thưc trạng vấn đề trước khí áp dụng sáng kiến kinh nghiệm 2.3 Sáng kiến kinh nghiệm giải pháp sử dụng để giải vấn đề I Mộtsố lỗi sai thường gặp họcsinhlậptrìnhPascal 1) Sử dụng dấu ; sai vị trí 2) Không phân biệt xâu biến 3) Khai báo sai miền sốcho liệu kiểu mảng 4) Khai báo biến thuộc kiểu liệu phần thân chương trình lại dùng biến với kiểu liệu khác 5) Tràn số kết tính toán vượt giới hạn 6) Không hiểu nguyên tắc làm tròn số thực .4 7) Chưa nắm nguyên lí hoạt động vòng lặp For 8) Giá trị biến điều khiển vượt miền số mảng .5 9) Chưa hiểu thứ tự ưu tiên phép toán II Giải pháp sử dụng để giải vấn đề 1) Bài tập đọc hiểu chương trình .6 2) Bài tập sửa lỗi chương trình 3) Bài tập khai báo biến .7 4) Bài tập viết thuật toán 5) Chia toán thành nhiều toán nhỏ 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục, với thân, đồng nghiệp nhà trường C PHẦN III: KẾT LUẬN VÀ KIẾN NGHỊ DANH MỤC TÀI LIỆU THAM KHẢO 10 PHẦN I: MỞ ĐẦU 1) Lý chọn đề tài : • Sự phát triển mạnh mẽ vũ bão tin học làm cho xã hội có nhiều nhận thức cách tổ chức hoạt động Nhiều quốc gia giới ý thức rõ tầm quan trọng tin học có đầu tư lớn cho lĩnh vực này, đặc biệt giáo dục nâng cao dân trí tin học đào tạo nguồn nhân lực có chất lượng cao Người Việt Nam có nhiều tố chất thích hợp với ngành khoa học này, hi vọng sớm hoà nhập với khu vực giới • Trong thời đại thông tin bùng nổ ngày nay, việc lập chương trình tự hoạt động cho máy tính, máy gia dụng cần thiết Và để làm việc cần có trình nghiên cứu, học tập ngôn ngữ lậptrình lâu dài, qua nhà lậptrình chọn ngôn ngữ lậptrình thích hợp • Tin học môn học trường phổ thông nên họcsinh nhiều bỡ ngỡ tiếp cận với môn học Nội dung tin họclậptrìnhlớp11 nội dung lạ đa sốhọcsinh với nhiều khái niệm, thuật ngữ, cấu trúc liệu mà họcsinh tiếp xúc lần đầu Chính mà họcsinh dễ mắc sai lầm lậptrình giải toán Nguyên nhân dẫn đến khó khăn mà họcsinh thường gặp phong phú • Tuy nhiên thứ điều có điểm khởi đầu nó, với họcsinh việc học ngôn ngữ lậptrình Turbo Pascal khởi đầu cho việc tiếp cận ngôn ngữ lậptrình bậc cao, qua giúp em hình dung đời, cấu tạo, hoạt đông ích lợi chương trình hoạt động máy tính, máy tự động… Qua giúp em có thêm định hướng, niềm đam mê tin học, nghề nghiệp mà em chọn sau Xuất phát từ sở trên, chọn đề tài “Một sốlưuýdạylậptrìnhPascalchohọcsinhlớp 11” 2) Mục đích nghiên cứu: • Do gặp phải khó khăn nên lậptrình giải toán họcsinh thường mắc nhiều lỗi, chí có lỗi em mắc phải nhiều lần không hiểu nguyên nhân xuất lỗi Vì nội dung đề tài nêu số lỗi phổ biến em thường mắc phải cách sửa lỗi • Tuy vậy, đối tượng họcsinh giỏi, đa phần em hào hứng với việc họclập trình, cụ thể ngôn ngữ lậptrình Turbo Pascal Do đề tài trình bày thêm sốlưuý kinh nghiệm dạylậptrìnhPascal đề giúp họcsinh hiểu cách nhanh chóng, nắm kiến thức kĩ lậptrìnhPascalsố ví dụ mở rộng, nâng cao với đối tượng họcsinh 3) Đối tượng nghiên cứu: • Đối tượng nghiên cứu: họcsinhlớp 11A1, 11A2 , 11A3 trường THPT Nông Cống I 4) Phương pháp nghiên cứu: • Trực tiếp qua dạy PHẦN II: NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm • Đảng Nhà nước ta nhận thấy tầm quan trọng ngành Tin học đưa môn học vào nhà trường phổ thông môn khoa học khác năm học 2006-2007 Thành to lớn ngành công nghệ ngày không vận dụng riêng giáo dục rộng rãi khắp lĩnh vực xã hội • Riêng trường phổ thông Tin học vận dụng triệt để, đặc biệt với sở vật chất đầy đủ trường THPT Nông Cống I, tất môn học khả áp dụng công nghệ thông tin vào giảng dạy Chính lợi to lớn cho riêng môn Tin học, đặc biệt chương trình Tin học11 em bước đầu làm quen với việc lậptrình Kỹ môn học giúp họcsinh hướng tới việc học tập chủ động, chống lại thói quen học tập thụ động Mục tiêu giáo viên làm sau kết thúc chương trìnhlớp11 em hiểu nắm ngôn ngữ lập trình, cụ thể ngôn ngữ lậptrìnhPascal Với số nội dung đề tài này, họcsinh tự học, tự rèn luyện thông qua số tập, dạng tập cụ thể 2.2 Thực trạng vấn đề trước áp dụng sáng kiến kinh nghiệm • Qua thực tế giảng dạy trường THPT Nông Cống I năm qua, nhận thấy học đến chương trình tin họclớp11 đa sốhọcsinh nhận xét môn khó Các họcsinh thường gặp nhiều lỗi viết chương trình ngôn ngữ lậptrìnhPascal • Tuy nhiên có số lượng không nhỏ họcsinh yêu thích tin học thích tìm hiểu số toán, dạng toán phạm vi sách giáo khoa 2.3 Sáng kiến kinh nghiệm giải pháp sử dụng để giải vấn đề I Mộtsố lỗi sai thường gặp họcsinhlậptrình Pascal: 1) Sử dụng dấu ; sai vị trí - Trước Else dấu chấm phẩy - Sử dụng dấu chấm phẩy sau từ khoá câu lệnh lặp 2) ) Không phân biệt xâu biến: họcsinh cần phải ý xâu đặt cặp nháy đơn biến không cần đặt cặp nháy đơn Writeln(' Nhap phan tu thu ',i,' cua mang'); Nhap phan tu thu, cua mang: xâu i: biến 3) Khai báo sai miền sốcho liệu kiểu mảng Ví dụ : Nhập vào mảng số nguyên gồm số lớn nhỏ 100 In mảng vừa nhập Họcsinh khai báo mảng sau: Var a: array[5 100] of integer; 4) Khai báo biến thuộc kiểu liệu phần thân chương trình lại dùng biến với kiểu liệu khác Ví dụ: Khai báo biến a thuộc kiểu nguyên, phần thân chương trình lại có câu lệnh a:=a/2; biểu thức a/2 thuộc kiểu số thực, biến a thuộc kiểu nguyên lưu trữ giá trị số thực 5) ) Tràn số kết tính toán vượt giới hạn Tính tổng số nguyên từ 50 đên 500 Var SUM,i:integer; Begin SUM:=0; For i:=50 to 500 SUM:=SUM+i; Writeln('Tong:=',SUM); End Song thực tế, tổng SUM lớn 32767 tức tràn ô nhớ Vì vậy, cần khai báo tổng SUM Real chương trình chạy 6) ) Không hiểu nguyên tắc làm tròn sốsố thực Trong toán học: 10 = + 5 + Tuy nhiên Pascal biểu thức sau cho kết sai: If 10/sqrt(5)=3/sqrt(5)+5/sqrt(5)+2/sqrt(5) then write(‘Dung!’) else write(‘sai!’); Khi thực vế trái máy tính tính sai số 1lần, vế phải chịu sai số lần Do kết thực không giống Đây nguyên nhân khiến chotrình tính toán gần máy tính thành tính toán sai 7) Chưa nắm nguyên lí hoạt động vòng lặp For nên dễ sai trình dùng biến vòng lặp For lồng Ví dụ: Trong toán xếp dãy không giảm có đoạn chương trình For j:=N downto For i:=1 to j-1 If a[i]>a[j] then begin t:=a[i]; a[i]:=a[i+1]; a[i+1]:=t; end; Nhiều họcsinh tự sửa lại câu lệnh For j:=N downto câu lệnh For j:=2 to n do, nghĩ hai câu lệnh 8) Giá trị biến điều khiển vượt miền số mảng Ví dụ 2: Nhập vào dãysố gồm phần tử cho biết dãy vừa nhập có tạo thành cấp số cộng không? Họcsinhlậptrình giải toán sau: Var a: array[1 7] of integer; i,d:integer;kt:boolean; Begin Write(‘nhap day so:’); For i:=1 to Begin Write(‘a[’ ,i, ‘]’); Readln(a[i]); End; d:=a[2]-a[1];kt:=true;i:=1; while (kt) and (i=,>,1 then begin tu:=tu div d; mau:=mau div d; end; Writeln('phan so toi gian la:',tu,'/',mau); readln; END Chương trình sử dụng hàm UCLN(a,b) để tối giản phân số có tử số mẫu số nhập từ bàn phím Nhìn vào chương trình ta thấy bàn đến tính đắn công thức, nhiên chạy chương trình ta nhận kết 1/1 cho phân số Vậy lỗi đâu? Lỗi chương trình hàm UCLN tổ chức truyền theo tham biến, nên sau lời goi d:=UCLN(tu,mau), ta đông thời giá trị d, tu, mau d Để sửa lại chương trìnhcho ta phải sửa lại khai bao tham số hàm UCLN truyền theo tham trị ( tức bỏ từ khoá Var trước a,b) Bài tập khai báo biến: • Ví dụ: Hãy lỗi sai khai báo sau: Var K,M,I,L: Integer; C,C1: Char; i,il,j: integer; PI=3.14; Biến i khai báo lần ( Pascal không phân biệt chữ hoa chữ thường) PI thực nên khai báo phải là: Const PI=3.14; • Khai báo kiểu liệu không chuẩn ( khai báo tốn nhiều nhớ không sát với yêu cầu toán) Ví dụ: Chodãy A gồm n số nguyên dương a1, a2,a3 an Tìm giá trị nhỏ dãy đưa vị trí sốHọcsinh viết khai báo sau: Const nmax=50; Var A: array[1 nmax] ò integer; n,i,min,csmin:integer; Bài toán cho ta dãysố nguyên dương họcsinh khai báo Integer có nghĩa nhập giá trị cho phần tử mảng âm thoả mãn điều sai với yêu cầu toán Bài tập viết thuật toán: • Theo định nghĩa sách giáo khoa Tin học 10, thuật toán dãy hữu hạn thao tác xếp theo trình tự xác định, cho sau thực dãy thao tác từ INPUT ta nhận OUTPUT Nói cách khác, trình bày thuật toán tức bước cần thực để đến kết • Việc trình bày thuật toán trước viết chương trình quan trọng Thuật toán chương trình có khả đúng, thuật toán sai chắn cho chương trình sai Tuy nhiên phần lớn họcsinhlớp11 thường bỏ qua bước tâm lý họcsinh không thích loại tập • Trong nhiều trường hợp tưởng không cần thuật toán cụ thể họcsinh viết chương trình Thực tế thuật toán không viết hình thành sẵn đầu người viết • Một toán có nhiều cách giải khác ứng với cách giải ta có thuật toán Để giúp họcsinh có khả nhanh chóng nắm ý tưởng người khác cần luỵên cho em biết giải toán theo thuật toán trao đổi Khả hiểu nhanh ý tưởng người khác yêu cầu hoạt động nhóm Phát triển khả phát triển phẩm chất tư quí báu để em biết hợp tác công việc, yêu cầu người lao động, sáng tạo thời đại mới, thời đại mà sản phẩm kết tinh lao động nhiều người • Với đa sốhọcsinh nay, cần phải dành lượng thời gian thích hợp để rèn luỵên loại tập Phải cho việc viết thuật toán trở thành kĩ để em lậptrình máy, không cần viết thuật toán song em hình dung thuật toán đầu Cần phải tạo cho em có ý thức viết chương trìnhPascal phải tuân thủ theo trình tự sau: Bài toán Xây dựng thuật toánViết chương trình Ví dụ: Mộtlớp có 40 học sinh, chào cờ nhà trường yêu cầu xếp thành hàng dọc theo thứ tự từ thấp đến cao Với toán thực tế ta phát biểu lại toán toán học sau: Chodãy 40 số nguyên, xếp dãy theo thứ tự tăng dần Khitrình bày thuật toán sau: B1: Nhập N, a1,a2, a40 B2: Gán M=40 B3: Nếu MM quay lại B3 B7: Nếu ai>ai+1 tráo đổi cho ai+1 B8: Quay lại B5 Chia toán thành nhiều toán nhỏ: Trong thực tế thường gặp vấn đề lớn mà với sức người giải gặp vấn đề vậy, ta thường nhờ bạn bè, người thân giúp tay, người lo phần việc.Khi giải toán, ta thường chia toán lớn ban đầu thành nhiều toán để việc giải toán ban đầu trở nên dễ dàng hơn, … Và vậy, cần giải vấn đề máy tính, để viết chương trình phức tạp ta viết phần chương trình giải vấn đề nhỏ Như vậy, việc phân chia toán thành nhiều toán nhỏ giúp cho việc giải toán mạch lạc, vịêc kiểm tra sai sót thuận tiện, thấy kết bước điều chỉnh kịp thời Cụ thể rèn luyện tư khả sư dụng chương trình 2.4 Hiệu sáng kiến kinh nghiệm hoạt động giáo dục, thân, đồng nghiệp họcsinh • Bảng số liệu kết đạt họcsinhlớp11 năm học 2014-2015 chưa thực đề tài: STT Lớp Sỉ số Đạt yêu cầu Không đạt yêu cầu 11C1 49 70% 30% 11C2 48 62.5% 37.5% 11C5 50 44% 56% • Khi thực thực nghiệm qua đối tượng họcsinh nêu trên, đa số em tránh lỗi thường gặp họclậptrìnhPascal • Mộtsố không họcsinh có tiến rõ rệt viết chương trình có sử dụng lậptrình có cấu trúc • Nâng cao việc yêu thích học tin học phận họcsinhsố em có định hướng nghề nghiệp sau • Bảng số liệu kết đạt họcsinhlớp11 năm học 2015-2016 sau thực đề tài: STT Lớp 11A1 11A2 11A3 Sỉ số 45 43 48 Đạt yêu cầu 92% 85% 66% Không đạt yêu cầu 8% 15% 34% III KẾT LUẬN VÀ KIẾN NGHỊ • Có thể nói sáng kiến kinh nghiệm vấn đề đơn giản lại tảng vững để bước đầu em hiểu rõ yêu thích môn học Nó tài liệu hữu ích giáo viên vừa đứng lớp giảng dạylậptrìnhPascal • Việc ứng dụng sáng kiến vận dụng tại trường THPT Nông Cống I đem lại hiệu trông thấy thông qua số liệu khảo sát Hy vọng sáng kiến nhiều đồng nghiệp chuyên môn trường tham khảo hướng tiếp tục nghiên cứu phát triển mở rộng để sáng kiến hoàn thiện DANH MỤC TÀI LIỆU THAM KHẢO Hội Tin học Việt Nam - Tạp chí “Tin học nhà trường” Hồ Sĩ Đàm (chủ biên)- Sách giáo khoa, sách giáo viên tin họclớp11 GS-TS Hoàng Kiếm -“Giải toán máy tính nào” Quách Tuấn Ngọc - Ngôn ngữ lậptrìnhPascal XÁC NHẬN CỦA THỦ TRƯỞNG ĐƠN Thanh Hoá, ngày tháng năm VỊ 2016 Tôi xin cam đoan SKKN viết, không chép nội dung người khác 10 11 ... tượng học sinh giỏi, đa phần em hào hứng với việc học lập trình, cụ thể ngôn ngữ lập trình Turbo Pascal Do đề tài trình bày thêm số lưu ý kinh nghiệm dạy lập trình Pascal đề giúp học sinh hiểu... chương trình tin học lớp 11 đa số học sinh nhận xét môn khó Các học sinh thường gặp nhiều lỗi viết chương trình ngôn ngữ lập trình Pascal • Tuy nhiên có số lượng không nhỏ học sinh yêu thích tin học. .. mê tin học, nghề nghiệp mà em chọn sau Xuất phát từ sở trên, chọn đề tài Một số lưu ý dạy lập trình Pascal cho học sinh lớp 11 2) Mục đích nghiên cứu: • Do gặp phải khó khăn nên lập trình giải