SKKN: KINH NGHIỆM GIÚP HỌC SINH CÁC BƯỚC GIẢI BÀI TOÁN TRÊN MÁY TÍNH TRONG CHƯƠNG TRÌNH TIN HỌC 8

15 677 0
SKKN: KINH NGHIỆM GIÚP HỌC SINH CÁC BƯỚC  GIẢI  BÀI TOÁN TRÊN MÁY TÍNH TRONG CHƯƠNG TRÌNH TIN HỌC 8

Đ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

1 ĐẶT VẤN ĐỀ 1.1 Lý do, thực trạng vấn đề: Là giáo viên tin học, mục tiêu dạy môn tin học nhà trường nhằm giúp học sinh soạn thảo mà phải có khả phân tích, tổng hợp, trừu tượng hoá, khái quát hoá vấn đề đặc biệt phát triển tư duy, sáng tạo Vì mà viết hướng cho học sinh lớp cách để trở thành nhà lập trình cần phải nắm bước nào? Trong trình dạy nhận thấy em học sinh Mới đầu em sợ thấy giải toán đơn giản vòng vài giây nhẩm kết Còn lập trình toán mà phải làm đến hàng chục phút mà lại cho kết sai Nhưng tâm huyết yêu thích học sinh Nhất năm gần nghành giáo dục có phát động phong trào giải toán mạng (Violympic) thành lập đội tuyển tham dự kì thi “Học sinh giỏi môn Tin học” “Tin học trẻ” tổ chức quy mô hàng năm Điều thúc đẩy nhiều việc dạy học giúp cho em có đam mê học tập môn tin học phát triển tài học sinh 1.2 Mục đích nghiên cứu: Đưa bước giải toán máy vi tính chương trình môn Tin học lớp phù hợp với học sinh Tạo cho học sinh hứng thú học môn Tin học tiết thực hành rèn luyện cho học sinh tính tư duy, tính sáng tạo trình lập trình 1.3 Đối tượng, phạm vi nghiên cứu Học sinh khối trường THCS Thạnh Phú 1, Huyện Cờ Đỏ, TP Cần Thơ 1.4 Kết cần đạt Phải phát huy tính tích cực, tự giác, chủ động, sáng tạo học sinh; tạo thói quen làm việc độc lập; bồi dưỡng cho học sinh phương pháp tự học, khả hợp tác; rèn luyện kĩ lập trình kỹ vận dụng kiến thức vào việc giải toán thường gặp thực tiễn; tác động đến tình cảm, đem lại niềm vui, hứng thú trách nhiệm học tập cho học sinh NỘI DUNG, BIỆN PHÁP THỰC HIỆN 2.1 Cơ sở lý luận thực tiễn - Qua năm giảng dạy chương trình tin học lớp 8, nhận thấy kĩ giải toán máy tính em yếu - Khi giải toán máy học sinh quan tâm đến công thức để tính toán kết toán mà quên bước xác định thông tin vào, thông tin xây dựng thuật toán Khi chạy chương trình học sinh chưa nhận biết kết chương trình hay sai - Trước thực đề tài, khảo sát học sinh khối thông qua dạy lý thuyết, dạy thực hành, kiểm tra cũ Tổng hợp kết thu được: Tỷ lệ học sinh giỏi 10.5% Tỷ lệ học sinh 20.5% Tỷ lệ học sinh trung bình 47.5% Tỷ lệ học sinh yếu 18.5% Tỷ lệ học sinh 3% 2.2 Các biện pháp tiến hành - Qua dự trao đổi kinh nghiệm với đồng nghiệp - Qua tiết thực hành, tiết lý thuyết - Tham khảo tài liệu sách, báo, internet,… 2.3 Một số biện pháp thực 2.3.1 Mục tiêu Tìm phương pháp, bước giải toán máy vi tính chương trình môn Tin học phù hợp với học sinh Trên sở nghiên cứu tính tích cực học sinh học môn Tin học 8, đề xuất số ý kiến nhằm nâng cao chất lượng dạy học 2.3.2 Mô tả giải pháp Phương pháp giải toán tin học không dùng để giải toán cụ thể mà giải lớp toán cụ thể thuộc loại Bài toán cấu tạo từ hai yếu tố bản: Thông tin vào (Input) thông tin (Output) Phương pháp tổng quát để giải toán máy vi tính dựa ngôn ngữ pascal cần bước: Xác định toán Xây dựng thuật toán Viết chương trình Chạy thử, sửa đổi chương trình 2.3.2.1 Xác định toán: * Khái niệm toán Trong trình học người học sinh hay cá nhân phải liên tục giải toán Trong sống chuỗ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 bực Song học sinh lớp chương trình học toán em đến giải phương trình bậc cao Nên việc đưa lớp toán vào giải cho em phần bị hạn chế Nhưng toán đọc đề xác định : A → B Trong đó: - A giả thiết : điều kiện ban đầu cho bắt đầu giải toán - B kết luận: mục tiêu cần đạt hay phải tìm kết thúc 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 máy vi tính: Bài toán máy mang đầy đủ tính chất toán tổng quát trên, lại diễn đạt theo cách khác - A: đưa thông tin vào (Input ) - B: đưa thông tin (Output) - → : chương trình tạo từ 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 toán: + Thông tin vào: Chiều dài cạnh a, chiều rộng 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 thông tin 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 - Kết in 12 Ví dụ 2: Cho số tự nhiên a, b Tìm ước số chung lớn chúng Các bước định 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 ước a d ước b d số lớn tập ước chung a, b + Xác định thao tác chế biến thông tin Xây dựng hữu hạn thao tác cho phép tính d từ a b Nhập a =16 b= 24 -> d =8 Ví dụ 3: Tìm tất số nguyên tố 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 số 1) 2.3.2.2 Tìm thuật toán: Thuật toán trình gồm dãy hữu hạn thao tác đơn giản xếp theo trình tự xác định cho theo từ Input toán tìm Output toán Một 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 giải cách Cách 1: Các bước xác định toán lời: - Bước 1: Nhập số nguyên dương a,b - Bước 2: So sánh giá trị a b Nếu a b sang bước 3, ngược lại a khác b sang bước - Bước 3: Tìm ước số chung a kết thúc chương trình - Bước 4: Nếu a lớn b ước số chung lớn a:=a-b quay trở lại bước Ngược lại ước số chung b:=b-a quay trở lại bước Cách 2: Giải toán sơ đồ - Có hình thoi  thể thao tác so sánh - Hình chữ nhật thể phép tính toán, câu lệnh - Hình ôvan thể bắt đầu kết thúc - Các mũi tên quy định trình tự thao tác Begin a, b a=b sai a:= a - b a>b UCLN a END sai b:= b - a Cách 3: Dùng ngôn ngữ trình 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; USES CRT; VAR a,b, :integer; BEGIN CLRSCR; WRITE('nhap gia tri a,b=');READLN(a,b); WHILE ab DO IF a>b THEN a:=a –b else b:=b-a; WRITELN('uoc so chung lon nhat cua so’,a:5); READLN END 2.3.2.3 Viết chương trình: Lập trình 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 thực giả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 thuật toán ngôn ngữ lập trình - Đã gọi kỹ có thông qua rèn luyện tích cực - Kinh nghiệm cho thấy thuật toán đặt vụng về, lộn xộn chạy máy tính cho kết qủa tồi tệ * Phát triển chương trình cách tinh chế bước Một toán ta đưa nhiều cách giải khác nhau, song giáo viên cần giúp học sinh viết chương trình người xem nhìn vào dễ hiểu toán ? Do việc tinh chỉnh bước cho toán máy tính phương pháp khoa học, có hệ thống giúp ta phân tích thuật toán cấu trúc liệu từ thành chương trình Muốn lập trình giỏi cần nắm ngôn ngữ lập trình đủ Mà vấn đề cốt yếu biết phương pháp phát triển để chuyển ý 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â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 việc nhỏ chi tiết dễ hiểu xác Song ngôn ngữ lập trình pascal người lập trình đưa phương pháp tinh chỉnh bước thể tư giải vấn đề toán từ xuống bước hướng ngôn ngữ lập trình cho toán đưa phương pháp lập trình tối ưu, sáng sủa * Ví dụ: Tìm tất số nguyên tố số nguyên N nhập vào từ bàn phím a Tinh chế lần - Lấy tập NT= [ ] (để chứa số nguyên tố tìm được) S = [2, N] (tập số cần xét ) - Tìm số S đưa vào NT - Loại bỏ khỏi S bội số số nguyên tố vừa tìm - Số lại S số nguyên tố Tiếp tục trình S=[] - Xuất NT b Tinh chế lần Bắt đầu NT: = [ ] S = [2, N] Repeat Tìm số S NT:= NT+ [S0] Loại khỏi S bội số S0 Until S=[ ]; Xuất NT; Kết thúc; c Tinh chế lấn ( chương trình hoàn chỉnh) Program nguyen_to; Const N=100; Type nguyen=1 N; var NT, S:set of nguyen; S0,I:integer; begin NT:=[]; S:=[2 N];S0:=2; repeat while not (S0 in S) S0:=S0+1; NT:=NT+[S0]; I:=S0; While I[...]... người lập trình bạn cần nắm được các tiêu chuẩn của một chương trình từ giúp bài toán có một kết quả tốt - Tính tin cậy: có một giải thuật đúng - Tính uyển chuyển: chương trình có thể sửa đổi - Tính trong 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 bộ nhớ về không gian và thời gian Tóm lại: Quá trình xây dựng chương trình là một chuỗi các bước tinh chế Ở mỗi bước. .. đã áp dụng sáng kiến nêu trên, qua khảo sát thực tế của học sinh, tôi đã thấy chất lượng bộ môn đạt kết quả cao - Học sinh rất hứng thú học môn Tin học nhất là tiết thực hành - Rèn luyện cho học sinh tính tư duy, tính sáng tạo trong quá trình lập trình 2.3.3 Kết quả thực hiện: - Sau thời gian khảo sát ở lớp 8 tôi nhận thấy các em sử dụng được các bước giải bài toán trên máy vi tính với thái độ rất hứng... thực hành Để từ đó học sinh mới nhận thấy được ưu điểm của việc học chương trình này có lợi hơn ở điểm nào Tóm lại đây là chương trình học khá mới mẻ, các bài toán đưa ra để xây dựng một 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 8 chưa học đến Cho nên giáo viên cần phải nắm chắc các phương pháp để truyền đạt Đồng thời cũng phối hợp chương trình toán đã học đến những phần... đưa ra các ví dụ, bài tập để học sinh có thể nắm chắc lý thuyết cũng như thực hành trên máy tính dễ tiếp thu Và để từ đó các em rút ra được ưu điểm của các chương trình này so với cách tính tay ở chỗ nào Đề xuất: Tôi mong ước rằng trong tương lai, phòng máy vi tính sẽ được mở rộng, đảm bảo số lượng máy tính tạo điều kiện cho các em học sinh được thực hành nhiều hơn Vì có như vậy chất lượng dạy và học. .. phương pháp giải khác nhau Song trong lập trình người giải không sử dụng đúng cách giải thì một bài toán lại đi ngược lại và cho các kết quả khác nhau Điều đó chứng tỏ cho thấy người lập trình cần phải nắm được các bước giải bài toán trong lập trình Bài toán cho kết quả sai là do nhiều nguyên nhân mà tôi đã trình bày ở phần trước như: + Chọn kiểu dữ liệu sai + Viết kết quả in ra ở dạng có quy cách và không... không quy cách + Phép gán sai ví dụ như bài toán tính tổng ban đầu ta phải gán S:=0; nếu gán S:= 1; thì cho kết quả 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 quyết được 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à của lớp 8 nói riêng Để nâng cao chất lượng dạy học tin ở 16 các trường THCS và là một giáo viên tin học tôi muốn... và sáng tạo trong phương pháp giảng dạy Qua những năm đảm nhiệm bồi dưỡng học sinh giỏi ở trường nhờ áp dụng những kinh nghiệm trên ở năm học 2014 – 2015 và năm học 2015 - 2016 đã thu được kết quả rất khả quan Số học sinh giỏi đạt cấp Huyện Năm học 2013-2014 Năm học 2014-2015 Năm học 2015-2016 02 01 02 3 KẾT LUẬN Để đưa ra một phương pháp tối ưu cho một bài toán không đơn giản Bởi một bài toán chúng... hiện bài toán, dễ quản lý và sửa chữa khi cần thiết và kết quả thu được ở các mức độ như sau: 15 Lớp Lớp 8A1 Mức độ Nhận biết Thông hiểu Vận dụng Kỹ năng lập trình 100% 87 % 75% 60% - Trong công tác bồi dưỡng học sinh giỏi, tôi nhận thấy rằng: Người thầy cần không ngừng học hỏi và tự học hỏi để nâng cao trình độ chuyên môn, nghiệp vụ và đúc kết, rút kinh nghiệm, thường xuyên xây dựng, bổ sung chương trình. .. Phân loại lỗi và cách sửa lỗi: - Lỗi về 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à làm lại từ đầu 1 2 1 3 Ví dụ 1: viết chương trình tính tổng S= 1 + + + + 1 (n được nhập vào từ bàn phím) n Học sinh viết chương trình khai báo biến S thuộc kiểu dữ liệu nguyên (Integer) thì chương trình sẽ không thực hiện được phép toán tính tổng Do vậy... thử một chương trình ta cần lưu ý: - Nếu khởi đầu bằng bộ chương trình (test) nhỏ nhưng các giá trị đặc biệt (đây là dễ bị lỗi nhất) - Làm nhiều các bộ test nhưng phải đa dạng tránh lặp đi lặp lại các bộ test tương tự - Nên kết thúc bằng các bộ test có kích thước lớn để kiểm tra tính chịu đựng của chương trình 2.3.2.4.4 Thay đổi chương trình: Một chương trình đã viết xong, đã chạy thử tốt , giải quyết

Ngày đăng: 14/10/2016, 13:45

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan