1. Trang chủ
  2. » Kinh Doanh - Tiếp Thị

sang kien kinh nghiem mon tin 8

15 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 15
Dung lượng 25,16 KB

Nội dung

Tuy nhiên mọi thứ đều có điểm khởi đầu của nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao, qua đó giúp các em hình dung được sự ra đời, cấu tạo[r]

(1)PHÒNG GD VÀ ĐỨC TRỌNG TRƯỜNG THCS ĐÀ LOAN ===0O0=== SÁNG KIẾN KINH NGHIỆM MÔN TIN HỌC LỚP 8: ĐỀ TÀI “CÁC BƯỚC GIẢI BÀI TOÁN TRÊN MÁY TÍNH ” Người viết: Phan Lê Ngọc Huy Chức vụ: Giáo viên Tổ: Toán – Lý_tin _Kt Đơn vị: Trường THCS Đà Loan Đà Loan : 20/10/2015 (2) PHẦN I: PHẦN MỞ ĐẦU (3) Lí chọn đề tài Mục đích nghiên cứu Khách thể và đối tượng nghiên cứu Nhiệm vụ nghiên cứu Phạm vi giới hạn nghiên cứu PHẦN II : NỘI DUNG CHƯƠNG I : CƠ SỞ LỲ LUẬN VÀ THỰC TIỄN Căn khoa học Một số vấn đề lý luận đề tài Cơ sở thực tiễn đề tài CHƯƠNG II: MỘT SỐ BIỆN PHÁP ỨNG DỤNG CNTT Các giảI pháp thực hiện: Các biện pháp thực hiện: PHẦN III: KẾT LUẬN CHUNG VÀ KHUYẾN NGHỊ Kết luận chung Khuyến nghị Phương pháp tinh chế a) Lần 1: b) Lần 2: c) Lần 3: IV Chảy thử, thay đổi và kiểm tra chương trình: Chạy thử Phân loại lỗi Kiểm tra Thay đổi chương trình C Kết thúc vấn đề: (4) A ĐẶT VẤN ĐỀ: Lý chọn đề tài: Hiện nước ta các nước trên giới cạnh tranh nghành công nghệ chế tạo máy các sản phẩm phần mềm giúp ích cho người trên lĩnh vực Vậy làm nào để làm điều đó : nhờ vào ngành công nghệ thông tin Ngày xa xưa người không biết đọc, không biết viết đó là nỗi khổ vô cùng, còn ngày người không biết sử dụng máy vi tính thì coi là không biết đọc, không biết viết Vậy biết sử dụng máy vi tính chúng ta làm gì hay ngồi chơi điện tử, các trò giải trí, soạn thảo các bài văn mà thôi ? Là giáo viên Tin học các mục tiêu đưa tin học vào trường học là nhằm giúp học sinh không biết soạn thảo mà còn phải có khả phân tích, tổng hợp, trừu tượng hoá, khái quát hoá vấn đề và đặc biệt là phát triển tư duy, sáng tạo Những năm qua môn Tin học THCS chưa có sách giáo khoa cụ thể hướng dẫn cho học sinh cách phân tích lập trình Vì học sinh chưa có tính độc lập sáng tạo mà phải nhờ vào giáo viên nhiều Những năm đã có sách giáo khoa hướng dẫn cho học sinh cụ thể qui trình lập trình nào.Vì mà tôi hướng cho học sinh lớp cách để trở thành nhà lập trình thì cần phải nắm các bước nào? Trong thời đại thông tin bùng nổ ngày nay, việc lập các chương trình tự hoạt động cho máy tính, máy gia dụng là cần thiết Và để làm việc đó cần có quá trình nghiên cứu, học tập ngôn ngữ lập trình lâu dài, qua đó nhà lập trình có thể chọn ngôn ngữ lập trình thích hợp Tuy nhiên thứ có điểm khởi đầu nó, với học sinh việc học Pascal là khởi đầu cho việc tiếp cận ngôn ngữ lập trình bậc cao, qua đó giúp các em hình dung đời, cấu tạo, hoạt động ích lợi các chương trình hoạt động máy tính, các máy tự động Qua đó giúp các em có thêm định hướng, niềm đam mê tin học, nghề nghiệp mà các em chọn sau này Đồng thời Pascal là ngôn ngữ có cấu trúc thể trên yếu tố: Cấu trúc mặt liệu, cấu trúc mặt câu lệnh, cấu trúc mặt chương trình Xuất phát từ sở trên, tôi đã chọn đề tài “Các bước giải bài toán trên máy vi tính sử dụng ngôn ngữ lập trình Pascal”, giúp các em nắm cấu trúc chương trình và ngôn ngữ lập trình ( Lập trình đơn giản phần I - SGK tin học 8) Mục đích: (5) Sử dụng các ví dụ cụ thể để học sinh nắm các bước giải bài toán Và thông qua các ví dụ đó hướng dẫn học sinh chuyển đổi qua lại cách giải bài toán trên giấy và trên máy vi tính Nhiệm vụ: Đưa vấn đề: Lập trình đơn giản phần I SGK tin học 8, để học sinh thảo luận qua đó nắm vững cấu trúc chung chương trình Và hình thành học sinh kỷ phân tích, xử lý các vấn đề liên quan đến các bài toán quá trình lập trình các chương trình đơn giản sau này Đối tượng nghiên cứu: Học sinh khối trường THCS Đà Loan Phương pháp nghiên cứu: - Kết hợp thực tiễn giáo dục trường THCS Đà Loan - Có thao khảo các tài liệu ngôn ngữ lập trình Pascal và tài liệu sáng kiến kinh nghiệm Cơ sở lý luận: Khi học sinh bước vào chương trình lớp (Phần I lập trình đơn giản) Học sinh đã gặp nhiều khó khăn và bở ngỡ việc để hiểu và giải các bài toán trên máy vi tính Cơ sở thực tiển: Trong quá trình dạy tôi nhận thấy các em học sinh Mới đầu các em sợ thấy giải bài toán ngoài thì đơn giản và vòng vài giây có thể nhẩm kết Còn lập trình bài toán đó mà phải làm đến hàng chục phút mà lại có thể cho kết sai Song tâm huyết mình và yêu thích học sinh Nhất là năm nghành giáo dục có phát động phong trào giải toán trên mạng Điều đó đã thúc đẩy tôi nhiều việc dạy học là làm đưa cho các em đam mê và phát triển tài học sinh việc đào tạo nhân tài cho đất nước Ngôn ngữ lập trình PASCAL là phần mềm có cấu trúc và nhiều độc giả quan tâm và chính đó đã có nhiều sách nhiều tác giả viết Song với thân tôi lựa chọn viết đề tài này là muốn đưa “Các bước giải bài toán trên máy vi tính” sử dụng ngôn ngữ lập trình pascal B GIẢI QUYẾT VẤN ĐỀ Phương pháp giải các bài toán tin học không dùng để giải bài toán cụ thể mà còn giải nhiều các bài toán cụ thể thuộc cùng loại Bài toán cấu tạo từ hai yếu tố bản: Thông tin vào (Input) và thông tin (Output) (6) Phương pháp tổng quát để giải bài toán máy vi tính dựa trên ngôn ngữ pascal cần các bước : Xác định bài toán Tìm thuật toán Viết chương trình Chạy thử, sửa đổi chương trình I XÁC ĐỊNH BÀI TOÁN Khái niệm bài toán Trong quá trình học người học sinh hay cá nhân nào luôn phải liên tục giải các bài toán Trong sống là chuỗi các bài toán mà ta phải đối đầu giải không chút đơn giản mà nhiều lúc phải mình Song học sinh lớp chương trình học toán các lớp đến giải phương trình bậc là cao Nên việc đưa các lớp bài toán vào giải cho các em còn phần nào bị hạn chế Nhưng bài toán nào thì chúng ta đọc đề xác định nó : A->B Trong đó: - A là giải thiết : điều kiện ban đầu cái đã cho bắt đầu giải bài toán - B là kết luận: Mục tiêu cần đạt hay cái phải tìm, phải làm kết thúc bài toán - -> Là suy luận: giải pháp cần xác định hay chuổi thao tác thực từ A đến B Bài toán trên máy vi tính: Bài toán trên máy mang đầy đủ các tính chất bài toán tổng quát trên, nó lại diễn đạt theo cách khác - A: là đưa thông tin vào (Input ) - B: là đưa thông tin ra( Output)  : là chương trình tạo từ các lệnh máy tính cho phép biến đổi từ A đến B Một số ví dụ Ví dụ 1: Tính diện tích hình chữ nhật Ta cần xác định cho bài toán: + Thông tin vào: Chiều dài là cạnh a, chiều rộng là cạnh b + Thông tin ra: Kết diện tích đưa a,b vào + Các thông tin cần chế biến như: - Lần lượt đưa a,b vào ( cho a=3,b=4) - Áp dụng công thức tính diện tích hình chữ nhật: a*b (7) - Kết in là 12 Ví dụ 2: Cho số tự nhiên a, b Tìm ước số chung lớn chúng Các bước xác định bài toán: + Xác định thông tin vào: hai số tự nhiên a,b + Xác định thông tin ra: số tự nhiên d thoả mãn: d là ước a và d là ước b d là số lớn tập các ước chung a, b + Các thông tin cần chế biến như: Xây dựng hữu hạn các thao tác cho phép tính d từ a và b Nhập a =16 b= 24 -> d =8 Ví dụ 3: Tìm tất các số nguyên tố các số nguyên N nhập vào từ bàn phím: + Xác định thông tin vào:Nhập số nguyên N + Xácđịnh thông tin ra: Các số nguyên tố ( chia hết cho nó và số 1) II- TÌM THUẬT TOÁN Thuật toán là quá trình gồm dãy hữu hạn các thao tác đơn giản xếp theo trình tự xác định cho theo đó từ Input bài toán tìm Output bài toán Một bài toán ta có cách thể thuật toán: Các bước xác định lời, lập sơ đồ khối, ngôn ngữ trình, dùng ngôn ngữ lập trình (Pascal) Ví dụ: Tìm ước số chung lớn số nguyên dương a,b ta có thể giải các cách trên Cách 1: Các bước xác định bài toán lời: - Bước 1: Nhập số nguyên dương là a,b - Bước 2: So sánh giá trị a và b Nếu a b thì sang bước 3, ngược lại a khác b thì sang bước - Bước 3: Tìm ước số chung là a và kết thúc chương trình - Bước 4: Nếu a lớn b thì ước số chung lớn là a và quay trở lại bước Ngược lại ước số chung là b và quay trở lại bước 2 Cách 2: Giải bài toán sơ đồ - Có hình thoi  thể các thao tác so sánh - Hình chữ nhật thể các phép tính toán, các câu lệnh - Hình ôvan thể bắt đầu và kết thúc - Các mũi tên quy định trình tự các thao tác (8) Begin a, b a=b Đúng Sai Đúng a:= b - a a<>b UCLN là a END Sai b:= b - a Cách 3: Dùng ngôn ngữ mô Bắt đầu Nhập a, b While a khác b IF a>b then thay a :=a -b Else thay b:=b-a; Kết thúc in USCLN (a,b) Cách 4: Viết chương trình hoàn chỉnh (dùng ngôn ngữ pascal) Program USCLN; Var a,b: integer; Begin Write('nhap gia tri a =');Readln(a); Write('nhap gia tri b =');Readln(b); While a<>b Do If a>b Then a:=a - b else b:=b-a; Writeln('uoc so chung lon nhat cua so a va b la',a:); (9) Readln END III- VIẾT CHƯƠNG TRÌNH Lập trình là dùng ngôn ngữ máy vi tính cụ thể (ngôn ngữ Pascal) để diễn tả thuật toán, cấu trúc liệu thành câu lệnh để máy tính có thể thực và giải đúng bài toán mà người lập trình mong muốn Kỹ lập trình - Rèn luyện cho học sinh kỹ cài đặt thành công các thuật toán ngôn ngữ lập trình - Đã gọi là kỹ thì có thể có thông qua rèn luyện tích cực - Kinh nghiệm cho thấy thuật toán cài đặt vụng về, lộn xộn thì chạy trên máy tính có thể cho kết tồi tệ là không thể chạy Phát triển chương trình cách tinh chế bước Một bài toán ta có thể đưa nhiều cách giải khác nhau, song là giáo viên thì chúng ta cần giúp học sinh viết chương trình làm người xem nhìn vào có thể dễ hiểu bài toán đó là gì? Do đó việc tinh chỉnh các bước cho bài toán máy tính là phương pháp khoa học, có hệ thống giúp ta phân tích các thuật toán và cấu trúc liệu từ đó thành chương trình Muốn lập trình giỏi không phải cần nắm ngôn ngữ lập trình là đủ Mà vấn đề cốt yếu là biết phương pháp phát triển để chuyển các ý tưởng thành chương trình hoàn chỉnh Phương pháp tinh chế bước Một chương trình bắt đầu viết lời tự nhiên (tiếng việt) thể phân tích tổng thể người lập trình thể bước sau các câu lệnh phân tích chi tiết hơn, lời khác tương ứng với phân tích công việc thành các việc nhỏ chi tiết dễ hiểu và chính xác Song ngôn ngữ lập rình pascal người lập trình có thể đưa phương pháp tinh chỉnh bước là thể tư giải vấn đề bài toán từ trên xuống đó các bước là hướng ngôn ngữ lập trình làm cho bài toán đưa phương pháp lập trình tối ưu, sáng sửa Ví dụ: Tìm tất các số nguyên tố các số nguyên N nhập vào từ bàn phím a Tính lần - Lấy tập NT= [ ] (để chứa các số nguyên tố tìm được) S = [2, N] (tập các số cần xét ) - Tìm số đầu tiên S đưa vào NT (10) - Loại bỏ khỏi S các bội số số nguyên tố vừa tìm - Số đầu tiên còn lại S là số nguyên tố Tiếp tục quá trình S=[] - Xuất NT b Tính lần Bắt đầu NT: = [ ] S = [2, N] Repeat Tìm số đầu tiên S NT:= NT+ [S0] Loại khỏi S các bội số S0 Until S=[ ]; Xuất NT; Kết thúc; c Tính lấn (chương trình hoàn chỉnh) Program nguyen_to; Var N,S: Integer; Begin Write(‘Nhap vao mot so nguyen to:’); Readln(N); If N <= then Writeln (N,’ khong la so nguyen to!’) Else Begin S:=2; While (N mod S <> ) S:= S +1; If S = N then Writeln (N,’ la so nguyen to!’) Else Writeln (N,’ khong phai la so nguyen to!’) End; Readln End Vậy đó là kỹ lập trình người lập trình có thể tinh chỉnh chương trình bước làm đưa phương án tối ưu cho người xem dễ tiếp thu chiếm nhớ máy tính càng ít các tốt IV- CHẠY THỬ , THAY ĐỔI, KIỂM TRA CHƯƠNG TRÌNH: Chạy thử (11) Một chương trình đã viết xong chưa đã chạy trên máy vi tính kết mong muốn Ví dụ: Tìm số lớn số a,b,c nguyên dương nhập vào từ bàn phím Lần 1: Program tim_so; var a,b,c: integer; begin write('nhap so a, b, c=');readln(a,b,c); if a<b then a:=b else if a<c then a:=c; write('so lon nhat la ',a); readln End Với chương trình này chạy song đáp số có lúc đúng, có lúc sai tuỳ thuộc vào lúc nhập giá trị a,b,c{ ta nhập thứ tự a=5,b=7,c=9 Thì cho ta kết số lớn là Vậy thì sai hoàn toàn} Do đó người lập trình cần phải biết cách tìm lỗi Sữa lỗi, điều chỉnh viết lại chương trình là kỹ quan trọng người lập trình Vậy với ví dụ trên để kết luôn đúng thì ta có thể viết lại chương trình Lần 2: Program tim_so; var a,b,c,t:integer; begin write('nhap so a, b, c=');readln(a,b,c); t:=a; if t<b then t:=b; if t<c then t:=c; write('so lon nhat la ',t); readln End Nếu nhập: (12) Lần nhập a b c Kết 7 9 9 Phân loại lỗi và cách sửa lỗi: - Lỗi thuật toán: Điều chỉnh lại thuật toán, thêm vị trí có thể, loại bỏ thuật toán sai, tìm thuật toán khác nghĩa làm lại từ đầu 1 Ví dụ: viết chương trình tính tổng S= 1+ + + + n (n nhập vào từ bàn phím) Học sinh viết chương trình khai báo biến S thuộc kiểu liệu nguyên thì chương trình không thực phép toán tính tổng Do để thực phép toán thì khai báo biến S là thuộc kiểu liệu thực - Lỗi trình tự: Phải xem lại thuật toán, phân tích lại từ trên xuống để đặt lại cho đúng với thuật toán Ví dụ:Viết chương trình giải phương trình bậc ax+b=0 với a,b nhập vào từ bàn phím program ptb1; var a,b:real; begin write('nhap cac he so=');readln(a,b); if a<>0 then writeln('moi so deu la nghiem'); else if b=0 then writeln('phuong trinh co nghiem',-b/a) else writeln('phuong trinh vo nghiem') readln end Với chương trình trên hoàn toàn có thể chạy song kết không đúng nhập liệu a, b vào Do ta phải xếp lại thuật toán kết đúng yêu cầu : program ptb1; (13) var a,b:real; begin write('nhap cac he so=');readln(a,b); if a<>0 then if b=0 then writeln('phuong trinh vo nghiem') else writeln('phuong trinh co nghiem',-b/a) else writeln('moi so deu la nghiem'); readln end - Lỗi cú pháp: Viết lại cho đúng cú pháp ngôn ngữ lập trình mà mình sử dụng Ví dụ : Lỗi sau câu lệnh ta không sử dụng dấu chấm phẩy, hay kết thúc chương trình không có dấu chấm, hay từ khoá DOWNTO ta viết DOWN TO thì không có nghĩa Kiểm tra Có nhiều chương trình khó kiểm tra tính đúng đắn, là chương trình tìm kiếm lời giải tối ưu Vì chúng chưa biết kết qủa nào là đúng Vì việc tìm lỗi là khó khăn Trong quá trình chạy thử chương trình ta cần lưu ý: - Nếu khởi đầu chương trình (test ) nhỏ các giá trị đặc biệt (đây là dễ bị lỗi nhất) - Làm nhiều các test phải đa dạng tránh lặp lặp lại các test tương tự - Nên kết thúc các test có kích thước lớn để kiểm tra tính chịu đựng chương trình Thay đổi chương trình Một chương trình đã viết xong, đã chạy thử tốt, giải đúng bài toán mà ta mong muốn chưa có nghĩa là quá trình lập trình đã xong Mà người lập trình muốn nó đây ta có thể sửa đổi nó theo hướng khác mà nó có thể đáp ứng yêu cầu Như phần tinh chế chương trình là quan trọng cho việc sửa chữa chương trình củ sang chương trình (14) Ví dụ: - Nhập số a,b,c kiểm tra xem số đó có thể là độ dài các cạnh tam giác hay không Từ đó ta có thể chuyển nó sang dạng là các cạnh đó thoã mãn tam giác cân, hay là tính diện tích tam giác đó - Tính tổng cho N số nguyên đầu tiên nhập vào từ bàn phím Từ đó ta có thể triển khai tính giai thừa, tìm số nguyên tố, độ dài dãy số đó, tính trung bình cộng cho dãy số…… - Nhập vào mảng dãy số từ bàn phím Từ đó ta có thể tìm giá trị lớn, nhỏ mảng, trung bình độ dài mảng, điểm học sinh… Vậy là người lập trình bạn cần nắm các tiêu chuẩn chương trình từ giúp bài toán có kết tốt - Tính tin cậy: Có giải thuật đúng - Tính uyển chuyển: Chương trình có thể sửa đổi - Tính sáng: dễ đọc, dễ hiểu - Tính hữu hiệu: chạy chương trình nhanh và tốn ít dung lượng nhớ không gian và thời gian Tóm lại: Quá trình xây dựng chương trình là chuỗi các bước tính Ở bước phân nhiều công việc để từ đó đưa phương pháp tối ưu Song người lập trình cần rèn luyện để có ý thức các định liên quan và biết khảo sát nghiêm túc từ bỏ các lời giải chúng đúng Mà cần phải cân nhắc phương tiện lời giải theo tiêu chuẩn C- KẾT THÚC VẤN ĐỀ Để đưa phương pháp tối ưu cho bài toán không đơn giản Bởi bài toán chúng ta có thể đưa nhiều phương pháp giải khác Song lập trình người giải không sử dụng đúng cách giải thì bài toán lại ngược lại là cho các kết khác Điều đó chứng tỏ cho thấy người lập trình cần phải nắm các bước giải bài toán lập trình Bài toán cho kết sai là nhiều nguyên nhân mà tôi đã trình bày phần trước như: + Chọn kiểu liệu sai + Viết kết in dạng có quy cách và không quy cách + Phép gán sai ví dụ bài toán tính tổng ban đầu ta phải gán S:=0; gán S:= 1; thì cho kết sai Hay Bài toán tính tích thì phép gán phải ngược trở lại ban đầu S:=1; Vậy để giải bài toán trên máy tính điện tử sử dụng ngôn ngữ lập trình pascal nói chung và lớp nói riêng Để nâng cao chất lượng dạy học tin (15) các trường THCS thì là giáo viên tin học tôi muốn nói chúng ta không dạy lý thuyết suông mà cần phải biết kết hợp thực hành Để từ đó học sinh nhận thấy ưu điểm việc học chương trình này có lợi điểm nào Tóm lại đây là chương trình học khá mới, các bài toán đưa để xây dựng chương trình chưa có gì là phức tạp Bởi có nhiều bài hay thì học sinh lớp chưa học đến Cho nên giáo viên cần phải nắm các phương pháp để truyền đạt Đồng thời phối hợp chương trình toán đã học đến phần nào để từ đó đưa các ví dụ, bài tập để học sinh có thể nắm lý thuyết thực hành trên máy tính dễ tiếp thu để từ đó các em rút ưu điểm các chương trình này so với cách tính tay chỗ nào Bản thân tôi mong muốn góp phần nhỏ bé mình vào nghiệp giáo dục Bởi đây là môn học khá mẻ với tất các học sinh THCS Tóm lại các bước giải bài toán trên máy vi tính tôi đưa còn nhiều thiếu sót Mong nhận góp ý các thầy cô giáo cùng bạn bè để hoàn thiện hơn./ NGƯỜI VIẾT Phan Lê Ngọc Huy (16)

Ngày đăng: 17/09/2021, 10:43

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w