Vận dụng một số thuật toán để giải quyết bài toán tin học trong PASCAL

28 19 0
Vận dụng một số thuật toán để giải quyết bài toán tin học trong PASCAL

Đ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

Đề tài : Vận dụng số thuật toán để giải tốn tin học PASCAL PHỊNG GD & ĐT CHÂU PHÚ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM TRƯỜNG THCS KHÁNH HÒA Độc lập - Tự - Hạnh phúc Khánh Hòa, ngày 29 tháng 10 năm 2018 BÁO CÁO Kết thực sáng kiến, cải tiến, giải pháp kỹ thuật, quản lý, tác nghiệp, ứng dụng tiến kỹ thuật nghiên cứu khoa học sư phạm ứng dụng I Sơ lược lý lịch tác giả: - Họ tên: Lê Thanh Hiền - Giới tính: Nam - Ngày tháng năm sinh: 20/4/1987 - Nơi thường trú: Khánh Hòa - Châu Phú - An Giang - Đơn vị cơng tác: Trường THCS Khánh Hịa - Chức vụ nay: Giáo viên - Lĩnh vực cơng tác: Giảng dạy mơn Tin học - Trình độ chuyên môn: ĐHSP Tin học II Sơ lược đặc điểm tình hình đơn vị: 1.Thuận lợi: Trường quan tâm, đạo kịp thời lãnh đạo ngành hỗ trợ, giúp đỡ nhiệt tình quyền địa phương có phịng máy cho học sinh thực hành đảm bảo đủ số lượng cho 02 học sinh/máy Phòng học đảm bảo để phục vụ cho giảng dạy Tập thể tổ chun mơn có tinh thần đoàn kết cao, sẵn sàng hỗ trợ chia sẻ với đồng nghiệp chuyên môn Giáo viên tự học tập để nâng cao trình độ chun mơn, ln tìm hiểu nghiên cứu phương pháp dạy học cho phù hợp với đối tượng học sinh Khó khăn: Sĩ số lớp đông, phương tiện dạy học thiếu, nhiều học sinh thiếu sách giáo khoa Đối với học sinh lớp nội dung kiến thức lạ nên học sinh cần có thời gian để tiếp cận làm quen Ý thức chuyên cần học sinh tham gia lớp học chưa cao Việc tự học học sinh nhà chưa phát huy Phần lớn học sinh chưa xác định đắn động mục tiêu học tập Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL -Tên sáng kiến: Vận dụng số thuật toán để giải toán tin học PASCAL - Lĩnh vực: Tin học III Mục đích yêu cầu đề sáng kiến: Thực trạng ban đầu trước áp dụng sáng kiến Tin học gắn tích hợp kiến thức mơn học Tốn Tiếng anh Nên học sinh e dè ngắn ngại nói đến tốn học gặp phải tốn khó em vận động tư suy nghĩ tìm cách giải sợ giải sai nhiều lần dẫn đến nản chí Do em biết máy tính cơng cụ giúp người xử lí thơng tin hỗ trợ học tập việc lập trình giải tốn máy tính Vì nội dung đề tài tơi giới thiệu việc lập trình giải vài toán toán học để giúp cho học sinh lớp phần giải khó khăn vận dụng giải toán thực tế Kết học tập khảo sát tiêu đầu năm trước áp dụng sáng kiến 03 năm học qua Năm học Học kì SL HS Khá Tỉ lệ HS Khá SL HS Giỏi Tỉ lệ HS Giỏi Do đó, HKI 17 13.39% 100 78.74% 2015-2016 học HKI có 66 40.24% 42 25.61% 2016-2017 kĩ lập 72 35.29% 50 24.51% 2017-2018 Pascal qua số thuật toán từ đến nâng cao phù hợp với đối tượng học sinh đề tài giúp sinh thêm trình thơng Sự cần thiết phải áp dụng sáng kiến Ngày nay, kiến thức, kỹ Công nghệ Thông tin kiến thức thiết yếu mà học sinh cần trang bị cho học tập cho sống Nhằm nâng cao hiệu chất lượng giáo dục việc ứng dụng cơng nghệ thơng tin công cụ đắc lực hỗ trợ đổi phương pháp dạy, kiểm tra, đánh giá, hỗ trợ đổi quản lý giáo dục Môn tin học nhằm cung cấp cho học sinh kiến thức phổ thông ngành khoa học tin học, hình thành phát triển khả tư thuật toán, lực sử dụng thành tựu ngành khoa học học tập lĩnh vực hoạt động sau Đặc biệt kiến Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL thức trang bị cho học sinh cách tương đối có hệ thống khái niệm mức phổ thông tin học, ngành khoa học với đặc thù riêng, kiến thức hệ thống, thuật tốn, cấu trúc liệu, lập trình, kỹ học sinh bước đầu biết sử dụng máy tính, biết soạn thảo văn bản, biết sử dụng Internet, khai thác phần mềm thông dụng, giải tốn đơn giản máy tính Cịn thái độ rèn luyện cho học sinh phong cách suy nghĩ làm việc khoa học ham hiểu biết, tìm tịi, sáng tạo, chuẩn mực xác suy nghĩ hành động, say mê môn học, cẩn thận công việc, hợp tác tốt với bạn bè Nội dung sách giáo khoa tin học lớp nội dung lạ đa số học sinh có định hướng sau: Giảng dạy lập trình thơng qua thuật tốn bản, cung cấp khái niệm ngôn ngữ lập trình, giúp rèn luyện kỹ xây dựng thuật tốn lập trình giải số tốn máy tính Tuy nhiên thứ điều có điểm khởi đầu nó, với học sinh việc học ngơn ngữ lập trình Pascal khởi đầu cho việc tiếp cận ngơn ngữ lập trình khác, 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 “Vận dụng số thuật toán để giải toán tin học PASCAL” Nội dung sáng kiến 3.1 Tìm hiểu khái quát cấu trúc chung chương trình Pascal PROGRAM Tên_chương_trình; USES CRT; CONST ; TYPE ; VAR ; PROCEDURE THUTUC[(Các tham số)]; [Khai báo Const, Type, Var] BEGIN END; FUNCTION HAM[(Các tham số)]:; [Khai báo Const, Type, Var] Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL BEGIN HAM:=; END; BEGIN {Chương trình chính} THUTUC[( )]; A:= HAM[( )]; END 3.2 Q trình giải tốn máy tính Bước 1: Xác định tốn: Xác định đâu thông tin cho (input) đâu thơng tin cần tìm (output) theo đề Bước 2: Mơ tả thuật tốn phân tích tốn chọn lựa thuật tốn thích hợp Để lập trình giải vấn đề, điều trước tiên cần có giải thuật Giải thuật kiến thức lĩnh vực vấn đề giải Giải thuật có ý nghĩa định đến thành cơng chương trình, có giải thuật tốt, có chương trình tốt Có giải thuật tổng quát tổ chức cấu trúc liệu, thuật tốn xếp, thuật tốn tìm kiếm, thuật toán phân phối nhớ … thuật toán thuộc lĩnh vực chun mơn giải thuật tốn, sở liệu, trí tuệ nhân tạo, đồ hoạ …Tuy nhiên kiến thức trung học sở, em cần biết qua thuật tốn đơn giản Ví dụ: Để giải phương trình bậc 2, ta phải xét dấu delta với (delta=b 2-4*a*c) Bước 3: Viết chương trình ngơn ngữ lập trình - Quan trọng phần cốt lõi thân chương trình để giải thành cơng u cầu đề - Sau phần nhập liệu đầu chương trình xuất kết cuối chương trình - Cuối thêm phần khai báo, cần dùng biến khai báo phần var, đặt tên chương trình phần khai báo program Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL Ví dụ: Để giải phương trình bậc phát biểu if với điều kiện trường hợp a hay khác 0, b hay khác Trong phần thân chương trình thường khơng có nhập xuất Tóm lại: Khi viết chương trình, đừng nghĩ tên chương trình gì, dùng biến nào, khoan nghĩ đến phải nhập xuất liệu cho đẹp mắt, mà phải tập trung trước tiên vào việc viết phần thân chương trình cho thể xác qua giải thuật Bước 4: Dịch chương trình, chạy thử kiểm tra kết Biên dịch chương trình xem có chỗ viết sai cú pháp hay vấn đề để điều chỉnh lại Khi biên dịch không báo lỗi, chưa chương trình bạn cho kết đúng, nhiều giải thuật sai, cho kết sai Do bạn chạy thử chương trình, kiểm tra kết xem có xác hay khơng Ví dụ: Thay dấu cộng bạn lại cho dấu trừ, chỗ biến a, bạn lại để biến b Cú pháp đúng, biên dịch kết sai - Để chạy chương trình, bạn thực cách sau: + Nhấn Ctrl+F9 + Nhấn Alt+R (hoặc nhấp chuột trái tên menu, nhấn phím F10, di chuyển vệt sáng đến mục Run), đưa vệt sáng đến Run, nhấn phím Enter 3.3 Tiến trình thực - Hướng dẫn học sinh qua tiết học môn thực hành - Theo dõi hoạt động học tập học sinh lớp qua tiết học Yêu cầu em trình bày cách giải tốn đơn giản Ví dụ: Nêu bước tính chu vi diện tích hình vng ta cần phải làm sao? Từ đó, vận dụng kiến thức ngơn ngữ lập trình vào để giải tốn máy tính - Nâng cao dần dạng tập nhằm nâng cao tư tuật toán em 3.4 Thời gian thực hiện: Năm học 2015-2016, 2016-2017, 2017-2018 3.5 Biện pháp tổ chức 3.5.1 Sử dụng phương pháp giải vấn đề Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL - Đặt tình đưa để HS xử lí, giải theo yêu cầu đề - Vấn đề đặt thuật toán thực tế gần gũi với sống - Học sinh xác định rõ vấn đề trước vào giải vấn đề - Học sinh diễn tả cách trình bày trước lớp 3.5.2 Sử dụng phương pháp kỹ thuật tạo ý tưởng - Tôn trọng ý tưởng học sinh đưa ra: Khi ý tưởng đưa ra, khơng phép trích, phê bình Tất ý tưởng ghi chép lại phân tích đánh giá bước sau - Học sinh tự suy nghĩ: Không giới hạn việc đưa ý tưởng - Giáo viên kết nối ý tưởng: Cải thiện, sửa đổi, góp ý xây dựng cho ý tưởng - Từ ý tưởng sau góp ý thống ta vận dụng ngơn ngữ lập trình vào giải 3.5.3 Sử dụng phương pháp dạy học thực hành - Học sinh sử dụng máy tính phần mềm Free Pascal học tập - Giáo viên sử dụng Phần mềm Netsupport School kết hợp với Free Pascal để quản lý, hướng dẫn học sinh thực hành - Thực hành theo hướng dẫn giáo viên - Giáo viên nhận xét, sửa chữa đánh giá 3.6 Một số thuật tốn thơng dụng 3.4.1 Thuật tốn 1: Tìm ước chung lớn (UCLL) Ý tưởng thuật toán Euclide UCLN số a,b UCLN số b a mod b, ta đổi a b, b a mod b b Khi UCLN a Hàm UCLN nhận vào số nguyên a,b trả lại kết UCLN số function UCLN(a,b: integer): integer; var r : integer; begin while b0 begin Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL r := a mod b; a := b; b := r; end; UCLN := a; end; Chú ý: Dựa thuật tốn tính UCLN ta kiểm tra số nguyên tố hay khơng Ngồi dùng để tối giản phân số cách chia tử mẫu cho UCLN Bài toán dạng 1: ƯCLL BCNN a) Ý tưởng, giải thuật UCLN số x, y UCLN số y x mod y, ta đổi x y, y x mod y y Khi UCLN x b) Chương trình Program UCLN_BCNN var x,y,UCLN,BCNN,t:integer; begin readln(x,y); BCNN:=x*y; t:= y mod x; While t Begin t:= x MOD y; x:= y; y:= t; End; ucln:=x; BCNN:=BCNN div UCLN; write(UCLN,' ',BCNN); end c) Chạy chương trình, in kết hình Bài toán dạng 2: Rút gọn phân số Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL Cho phân số a/ b a số nguyên b số tự nhiên khác khơng Hãy tìm số c, d cho phân số c/ d tối giản a/b=c/d + Phân tích: Đây tốn đơn giản, phải ý số a âm Program Rutgon_PS; Uses crt; Var Tu, mau, a: integer; Function UCLN(x, y: integer): integer; Var sodu:integer; Begin While y0 Begin Sodu:=x mod y; X:=y; Y:=sodu; End; UCLL:=x; End; Begin Clrscr; Write(‘nhap tu so, mau so vao!’); Readln(tu, mau); a:= UCLN(tu, mau); if a>1 then begin Tu:=tu div a; Mau:=mau div a; End; Writeln(Tu:4, mau:4); End Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL 3.4.2 Thuật toán 2: Kiểm tra số nguyên tố Thuật toán ta dựa ý tưởng: n >1 không chia hết cho số nguyên n tất số từ đến n số nguyên tố Do ta kiểm tra tất số nguyên từ đến có round(sqrt(n)), n khơng chia hết cho số n số ngun tố Nếu thấy biểu thức round(sqrt(n)) khó viết ta kiểm tra từ đến n div Hàm kiểm tra nguyên tố nhận vào số nguyên n trả lại kết true (đúng) n nguyên tố trả lại false n không số nguyên tố function ngto(n:integer):boolean; var i:integer; begin ngto:=false; if n luôn} ngto:=true; end; Chú ý: Dựa hàm kiểm tra ngun tố, ta tìm số ngun tố từ đến n cách cho i chạy từ đến n gọi hàm kiểm tra nguyên tố với giá trị i Bài toán dạng 1: Nhập vào số N Xác định xem số có phải số nguyên tố hay không a) Ý tưởng, giải thuật Số nguyên tố số chia cho Giả sử số vừa nhập vào n, ta cho i chạy từ đến n-1, n chia hết cho i lần lặp có nghĩa n khơng ngun tố, khơng chia hết cho lần lặp nguyên tố Về nguyên tắc vậy, ta chứng minh cần xét từ đến phần nguyên N Như thuật toán tối ưu Gọi số cần xét n, bậc hai x, hai ước tương ứng có tích n a b(ab), ta cần chứng minh ax*x=n => trái với giải thiết Vậy hai số a b, phải có số nhỏ x Dựa vào đặc điểm trên, ta giới hạn phạm vi i 2->n-1 thành 2->sqrt(n) Tuy nhiên, sqrt(n) với n khơng phương số vơ tỉ, i số nguyên, cần làm tròn sqrt(n) Phạm vi 2->trunc(sqrt(n)) Giáo viên: Lê Thanh Hiền Trang Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL b) Chương trình program kiem_tra_nguyen_to; uses crt; var n,i:integer; bl:boolean; begin clrscr; bl:=true; write('nhap vao so can kiem tra tinh nguyen to: '); readln(n); if n length(s2); writeln(g,kq); end; {================} begin assign(g,fo); rewrite(g); doc; nen; giainen; close(g); end IV Hiệu đạt được: Học sinh - Tránh lỗi thường gặp lập trình - Các em có nhận thức xác định đắn động học tập trách nhiệm gia đình, nhà trường - Học sinh ngày thêm u thích mơn tin học - Học sinh tự tin học tập nghiên cứu tìm tịi chiếm lĩnh kiến thức Đối với giáo viên: - Bản thân ngày trao dồi thêm kinh nghiệm giảng dạy - Các năm học 2015-2016 có học sinh dự thi Tin học trẻ cấp tỉnh, năm học 2016-2017, 2017 -2018 có học sinh đạt giải khuyến khích cấp huyện dự thi tin học trẻ cấp tỉnh niềm động viên phấn đấu giảng dạy Giáo viên: Lê Thanh Hiền Trang 24 Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL - Bản thân tạo niềm tin lãnh đạo, phụ huynh, học sinh đồng nghiệp Đối với nhà trường: - Góp phần nâng cao chất lượng mơn văn hóa nhà trường - Xác định hướng đổi giảng dạy môn Tin học - Góp phần nâng cao chất lượng giáo dục, tạo niềm tin phụ huynh Bảng kết chất lượng học tập năm học qua: Năm học nguồn liệu 2015-2016 Học kì Cả năm Cả năm 2016-2017 2017-2018 Cả năm SL Tỉ lệ HS Khá SL HS Giỏi Tỉ lệ HS Giỏi 17.31% 121 77.56% 78 49.68% 46 29.30% 75 39.47% 107 56.32% HS Khá 27 (Theo sở Smas.edu.vn trường 2015-2016 Theo nguồn sở liệu Vnedu.vn trường 2016-2017, 2017-2018) V Mức độ ảnh hưởng: - Giáo viên mơn tin học làm tài liệu nghiên cứu phục vụ giảng dạy Tin học tốt - Khơi gợi nguồn tiềm để em có hội dự thi HSG Tin học, Tin học trẻ cấp - Sáng kiến kinh nghiệm tài liệu hỗ trợ giảng dạy cho Tin học cho tổ, đồng nghiệp tham khảo nghiên cứu phát triển thêm VI Kết luận: Kiến thức Tin học khó, để học tốt Tin bạn phải có kiến thức từ trung bình-khá trở lên mơn Tiếng anh mơn Tốn học Để khắc phục khó khăn ta phải áp dụng vào giảng dạy phương pháp dạy học tích cực.- Tạo hứng thú nhằm kích thích niềm u thích học tập mơn VII Kiến nghị - Tham mưu tốt với lãnh đạo công tác tuyển chọn nguồn lực HSG môn - Cần có chuẩn bị phát triển câu lạc tin học để em có sân chơi điều kiện trao đổi kinh nghiệm học tập Giáo viên: Lê Thanh Hiền Trang 25 ...Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL -Tên sáng kiến: Vận dụng số thuật toán để giải toán tin học PASCAL - Lĩnh vực: Tin học III Mục đích yêu cầu đề sáng... Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL 3.4.2 Thuật toán 2: Kiểm tra số nguyên tố Thuật toán ta dựa ý tưởng: n >1 không chia hết cho số nguyên n tất số từ đến n số ngun tố... Readln End 3.4.9 Thuật toán 9: Số nguyên lớn Giáo viên: Lê Thanh Hiền Trang 18 Đề tài : Vận dụng số thuật toán để giải toán tin học PASCAL Bài toán dạng : Cộng số nguyên lớn Cho hai số nguyên dương

Ngày đăng: 14/12/2021, 21:03

Từ khóa liên quan

Mục lục

  • I. Sơ lược lý lịch tác giả:

  • II. Sơ lược đặc điểm tình hình đơn vị:

    • 1.Thuận lợi:

    • 2. Khó khăn:

    • III. Mục đích yêu cầu của đề sáng kiến:

      • 1. Thực trạng ban đầu trước khi áp dụng sáng kiến

      • 2. Sự cần thiết phải áp dụng sáng kiến

      • 3. Nội dung sáng kiến

        • 3.1. Tìm hiểu khái quát cấu trúc chung của chương trình Pascal

        • 3.2. Quá trình giải bài toán trên máy tính

        • 3.3. Tiến trình thực hiện

        • 3.4. Thời gian thực hiện: Năm học 2015-2016, 2016-2017, 2017-2018

        • 3.5. Biện pháp tổ chức

        • 3.6. Một số thuật toán thông dụng

        • IV. Hiệu quả đạt được:

          • 1. Học sinh

          • 2. Đối với giáo viên:

          • 3. Đối với nhà trường:

          • V. Mức độ ảnh hưởng:

          • VI. Kết luận:

          • VII. Kiến nghị

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

Tài liệu liên quan