1. Trang chủ
  2. » Giáo án - Bài giảng

SỬ DỤNG CHƯƠNG TRÌNH CON TRONG LẬP TRÌNH PASCAL KHI BỒI DƯỠNG HSG MÔN TIN HỌC LỚP 8; 9

28 4 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 28
Dung lượng 249,96 KB

Nội dung

Qua các năm giảng dạy, bồi dưỡng đội tuyển học sinh giỏi môn Tin học và cụ thể là giảng dạy ngôn ngữ lập trình Pascal, tôi nhận thấy khi mới học lập trình Pascal học sinh cảm thấy khó hiểu, khó tiếp thu vì nó kết hợp cả tiếng Anh lẫn cấu trúc lập trình. Học sinh chưa có khả năng vận dụng Pascal để phục vụ được các môn khoa học tự nhiên khác nên các em lại càng không thấy hứng thú với môn học, vì nghĩ rằng nó chẳng có tác dụng gì. Để tạo được hứng thú, yêu thích môn học thì cần phải giúp học sinh biến ngôn ngữ lập trình Pascal là công cụ đắc lực trong việc giải quyết các bài toán trong chương trình học của các em. Các em học sinh trong đội tuyển Tin học của nhà trường khi làm bài thường chỉ chú ý đến việc lập trình mà không mô tả thuật toán trước, hay các em chưa chú ý sử dụng chương trình con trong lập trình.... từ đó khiến các em thường xuyên bỏ sót các trường hợp vì thế chất lượng giải chưa được cao. Việc tìm cách mô tả thuật toán, sử dụng chương trình con trong lập trình giúp các em tìm cách giải bài toán trở nên dễ dàng và cho kết quả tốt hơn khi lập trình trên máy tính.

PHÒNG GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG THCS    BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN Tên sáng kiến: “SỬ DỤNG CHƯƠNG TRÌNH CON TRONG LẬP TRÌNH PASCAL KHI BỒI DƯỠNG HSG MÔN TIN HỌC LỚP 8, 9” Tác giả sáng kiến: Mã sáng kiến: 40 , tháng năm 2023 Mục lục Đề mục Trang Lời giới thiệu: Tên sáng kiến: Tác giả sáng kiến: Chủ đầu tư tạo sáng kiến: Lĩnh vực áp dụng sáng kiến: 6 Ngày sáng kiến áp dụng lần đầu áp dụng thử: .6 Mô tả chất sáng kiến: 7.1 Về nội dung sáng kiến: 7.1.1 Phần mở đầu: .6 7.1.2 Cơ sở lý luận: 7.1.3 Cơ sở thực tiễn: 7.1.4 Đề xuất giải pháp: 7.2 Về khả áp dụng sáng kiến: 18 Những thông tin cần bảo mật sáng kiến: 26 Các điều kiện cần thiết để áp dụng sáng kiến: 26 10 Đánh giá lợi ích thu dự kiến thu áp dụng sáng kiến 26 10.1 Đánh giá lợi ích thu dự kiến thu áp dụng sáng kiến theo ý kiến tác giả 26 10.2 Đánh giá lợi ích thu dự kiến thu áp dụng sáng kiến theo ý kiến tổ chức cá nhân 26 11 Danh sách tổ chức/ cá nhân tham gia áp dụng thử áp dụng sáng kiến lần đầu 27 Tài liệu tham khảo .28 Danh mục từ viết tắt Ký hiệu chữ viết tắt Chữ viết đầy đủ HSG Học sinh giỏi BGH Ban giám hiệu THCS Trung học sở SGK Sách giáo khoa HS Học sinh GV Giáo viên PHHS Phụ huynh học sinh KHTN Khoa học tự nhiên SKKN Sáng kiến kinh nghiệm BÁO CÁO KẾT QUẢ NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN Lời giới thiệu: Ngôn ngữ lập trình Pascal nội dung quan trọng nhất, xuyên suốt chương trình Tin học lớp 8, giúp học sinh giải số tốn mơn Tốn sống Pascal sử dụng nhiều thi HSG tin học cấp, Cuộc thi tin học trẻ, Là ngôn ngữ lập trình có cấu trúc chặt chẽ tạo móng tốt để em học tốt mơn lập trình khác Nhưng thực tế việc học ngơn ngữ lập trình Pascal chương trình tin học 8, cịn ít, giống cưỡi ngựa xem hoa, học sinh chưa tự sử dụng ngơn ngữ để giải toán học, toán thực tế Cũng lý học sinh thấy học lập trình khó khơng có tác dụng Vì để học sinh trở nên yêu thích mơn học ta cần phải bồi dưỡng thêm để học sinh tự giải số tốn ngơn ngữ Pascal Học sinh thấy tác dụng thú vị việc lập trình từ tạo thái độ u thích mơn học, u thích lập trình có khả trở thành lập trình viên tương lai Qua năm giảng dạy, bồi dưỡng đội tuyển học sinh giỏi môn Tin học cụ thể giảng dạy ngơn ngữ lập trình Pascal, tơi nhận thấy học lập trình Pascal học sinh cảm thấy khó hiểu, khó tiếp thu kết hợp tiếng Anh lẫn cấu trúc lập trình Học sinh chưa có khả vận dụng Pascal để phục vụ môn khoa học tự nhiên khác nên em lại không thấy hứng thú với mơn học, nghĩ chẳng có tác dụng Để tạo hứng thú, u thích mơn học cần phải giúp học sinh biến ngơn ngữ lập trình Pascal cơng cụ đắc lực việc giải tốn chương trình học em Các em học sinh đội tuyển Tin học nhà trường làm thường ý đến việc lập trình mà khơng mơ tả thuật toán trước, hay em chưa ý sử dụng chương trình lập trình từ khiến em thường xun bỏ sót trường hợp chất lượng giải chưa cao Việc tìm cách mơ tả thuật tốn, sử dụng chương trình lập trình giúp em tìm cách giải tốn trở nên dễ dàng cho kết tốt lập trình máy tính Tên sáng kiến: Sử dụng chương trình lập trình Pascal bồi dưỡng HSG môn Tin học lớp 8, Tác giả sáng kiến: - Họ tên: …………………………… - Địa tác giả sáng kiến: ……………… - Vĩnh Tường - Vĩnh Phúc - Số điện thoại: …………………… - E_mail: ………………………… Chủ đầu tư tạo sáng kiến: Chủ đầu tư tạo sáng kiến cá nhân tác giả sáng kiến: …………………… Lĩnh vực áp dụng sáng kiến: Có thể áp dụng sáng kiến vấn đề mà sáng kiến giải là: - Giáo dục - Lĩnh vực công nghệ thông tin truyền thông Ngày sáng kiến áp dụng lần đầu áp dụng thử: 20/08/2021 Mô tả chất sáng kiến: 7.1 Về nội dung sáng kiến: 7.1.1 Phần mở đầu:  Giới thiệu ngắn gọn ngơn ngữ lập trình Pascal: Pascal ngơn ngữ lập trình bậc cao Niklaus Wirth, giáo sư điện toán trường Đại học kỹ thuật Zurich (Thụy Sĩ) đề xuất năm 1970 Ông lấy tên Pascal để kỷ niệm nhà toán học nhà triết học người Pháp tiếng Blaise Pascal Pascal ngơn ngữ lập trình bậc cao có từ khóa tiếng Anh, tính logic Toán học chặt chẽ, đặc trưng thuật toán khả trừu tượng hóa cao Điều lí giải học sinh học Tốn tốt, thơng minh lại dễ dàng tiếp thu dạng kiến thức  Các ưu điểm ngơn ngữ lập trình Pascal Pascal ngơn ngữ lập trình có định kiểu mạnh mẽ (có nghĩa khơng cho phép trộn lẫn với biến, có kiểu liệu khác nhau) Pascal ngơn ngữ có cấu trúc thể mặt sau:  Cấu trúc mặt liệu: Từ liệu có ta xây dựng cấu trúc liệu phức tạp  Cấu trúc mặt lệnh: Từ lệnh có (lệnh đơn giản lệnh có cấu trúc) ta nhóm chúng lại với đặt cặp từ khóa Begin End để trở thành câu lệnh phức tạp gọi lệnh hợp thành (lệnh ghép)  Cấu trúc mặt chương trình: Một chương trình lớn chia thành nhiều module chương trình nhỏ (chương trình con), chương trình phân chia cho nhiều người tham gia xây dựng Trong lập trình người lập trình hay gặp phải chương trình phức tạp trường hợp phải viết lặp lặp lại đoạn chương trình Để giúp học sinh dễ dàng việc lập trình giải tốn phức tạp có đoạn chương trình lặp lặp lại nhiều lần Một chương trình gây lãng phí khơng gian lưu trữ chương trình Để khắc phục Pascal cho phép xây dựng chương trình từ nhiều module chương trình nhỏ gọi chương trình ghép lại với Một chương trình có ưu điểm sau: - Tiết kiệm thời gian lập trình - Làm tăng tính cấu trúc cho chương trình lớn - Làm tăng tính độc lập thử nghiệm Trong nội dung sáng kiến tơi đưa tóm lược việc sử dụng chương trình lập trình Pascal bồi dưỡng HSG  Đối tượng nghiên cứu: - Học sinh lớp 8, lớp  Phương pháp nghiên cứu: - Phương pháp điều tra - Phương pháp phân tích - Phương pháp tổng hợp kinh nghiệm giảng dạy - Phương pháp trò chuyện trao đổi - Phương pháp đọc sách tổng hợp tư liệu 7.1.2 Cơ sở lý luận: * Các thực hiện: Công văn số 4003/BGDĐT-CNTT ngày 07/10/2020 việc hướng dẫn nhiệm vụ Công nghệ thông tin Một nhiệm vụ trọng tâm “Tăng cường ứng dụng CNTT đổi nội dung, phương pháp dạy, học, thi kiểm tra đánh giá, quản lý giáo dục, quản trị nhà trường; áp dụng dạy, học trực tuyến; phát triển kho học liệu số toàn ngành, ngân hàng câu hỏi trực tuyến dùng chung, kho giảng e-learning kết nối với Hệ tri thức Việt số hóa” Chương trình giáo dục phổ thơng tổng thể năm 2018 Ban hành kèm theo Thông tư số 32/2018/TT-BGDĐT ngày 26 tháng 12 năm 2018 Bộ trưởng Bộ Giáo dục Đào tạo Căn vào văn hướng dẫn thực nhiệm vụ năm học 20222023 cấp Để giúp học sinh dễ dàng việc lập trình giải tốn phức tạp lập trình mơn Tin học vừa với nguyên tắc dạy học trường phổ thông, vừa theo tinh thần đổi phương pháp dạy học nay, nhằm hình thành cho học sinh tính tích cực, độc lập, sáng tạo, nâng cao lực phát triển giải vấn đề, rèn luyện kỹ vận dụng kiến thức vào thực tiễn, tác động đến tình cảm, đem lại niềm tin thích thú học tập cho HS Hiện nay, khơng học sinh lười, học tập thụ động có khơng phụ huynh thiếu quan tâm đến việc học em Vì vậy, việc chia chương phức tạp thành chương trình nhỏ ghép chúng lại để giải vấn đề phức tạp chương trình lớn để giải số tập giáo viên phải ý mức 7.1.3 Cơ sở thực tiễn: Trong q trình giảng dạy, tơi nhận thấy Pascal mơn học khó em học sinh Khối 8,9 Vì có số thuật tốn em chưa học mơn Tốn, thêm vào em sử dụng câu lệnh Tiếng Anh để thể lập trình Do việc học tập học sinh cịn mang tính mơ hồ, bị ép buộc, có nhiều học sinh sợ mơn Tin học 8, tính chất khơ khan, khó hiểu học Từ thực tế tơi khơng ngừng học hỏi để tìm biện pháp khắc phục Bằng kinh nghiệm khiêm tốn năm bồi dưỡng HSG môn Tin Học lớp 8, Tơi đưa tóm lược sử dụng chương trình lập trình Pascal Khi bồi dưỡng HSG môn Tin Học lớp 8, có hiệu nhằm giúp học sinh biết phân tích chương trình phức tạp thành chương trình (modul) nhỏ Sau ghép chương trình lại để thành chương trình lớn với cách HS hiểu nhanh, nhớ kiến thức lâu cảm thấy thích thú lập trình Thực trạng bồi dưỡng HSG đơn vị:  Thuận lợi: Tin học mơn khoa học tự nhiên, sở, tảng nhiều lĩnh vực khoa học Nhu cầu học tập, nâng cao kiến thức say mê khám phá khoa học học sinh ngày nâng cao Vì vậy, mơn tin học ngày nhiều em học sinh quan tâm, lựa chọn môn học ưa thích cần thiết cho Được quan tâm Chi Bộ BGH nhà trường bồi dưỡng HSG Giáo viên giảng dạy đào tạo theo chuyên ngành bồi dưỡng chuyên đề hàng năm Phần lớn em học sinh đội tuyển có ý thức tự học cao, ln tìm tòi học hỏi kiến thức học tập hứng thú với môn Tin học Đa số gia đình có điều kiện để đầu tư cho em học tập tốt Được nhà trường tạo điều kiện thuận lợi sở vật chất, trang thiết bị máy tính, máy chiếu, hệ thống mạng internet thiết bị dạy học khác * Những việc làm được: Tôi áp dụng công nghệ thông tin để soạn giảng lý thuyết thực hành nhằm hướng dẫn học sinh dễ hiểu ghi nhớ kiến thức cách sâu sắc lập trình Pascal mơn Tin học 8,  Khó khăn: Mơn Tin học 8, mơn học tự chọn nên cịn có học sinh chưa thật đam mê môn học, số em cịn thụ động q trình tiếp thu kiến thức Đa số em bị hổng kiến thức Toán từ lớp nên việc giải tốn lập trình cịn hạn chế, nên ảnh hưởng khơng đến việc học Vì lập trình Pascal u cầu địi hỏi HS phải có tảng tốn học tốt 7.1.4 Đề xuất giải pháp: 7.1.4.1 Xây dựng KHGD từ đầu năm học: Ngay từ đầu năm học, GV phải lập kế hoạch, xây dựng chương trình bồi dưỡng HSG GV cần đầu tư nghiên cứu phương pháp dạy học khác từ cải thiện cách truyền thụ kiến thức tới HS GV năm cập nhật thuật toán hay đồng nghiệp để tích lũy cho việc giảng dạy GV cần hướng dẫn HS cách phân tích tốn lập trình cách cẩn thận đưa hướng giải tốn GV u cầu HS nhớ kiến thức vừa học tiết học lý thuyết Cũng cách tìm hiểu ý nghĩa lệnh thực hành HS phải nắm đầu vào (Input) đầu (Output) toán từ xây dựng thuật tốn sau tiến hành lập trình ngơn ngữ lập trình Pascal 7.1.4.2 Một số giải pháp thực hiện: a, Khái niệm phân loại chương trình con:  Khái niệm: Chương trình dãy lệnh mơ tả số thao tác định thực (được gọi) từ nhiều vị trí chương trình  Phân loại: Trong Pascal chương trình chia thành hai loại: Thủ tục (Procedure) Hàm (Function) + Hàm (Function) Khái niệm: hàm chương trình chứa lệnh để thực công việc Mỗi hàm nhận vào giá trị thơng qua tham số trả giá trị Hàm chia làm hai loại hàm có sẵn (Built in function) hàm tự tạo (User defind function) Mỗi hàm nhận vào giá trị tham số trả giá trị Một số hàm có sẵn (Built in function) ST T Hàm Round(x) Trunc(x) Int(x) Frac(x) Abs(x) Sqr(x) Sqrt(x) Exp(x) Kiểu tham số x Thực Thực Thực Thực Thực/ nguyên Thực/ nguyên Thực/ nguyên Thực/ nguyên Cho kết Longint Longint Thực Thực Làm tròn x Lấy phần nguyên x Lấy phần nguyên x Lấy phần thập phân x Thực/nguyên Lấy giá trị tuyệt đối x Thực/nguyên Bình phương x Thực Căn bậc x Thực ex Công dụng 10 Ln(x) Thực/ nguyên Thực logex Hàm tự tạo (User defind function) Lý phải tự tạo hàm sử dụng hàm tự tạo Hàm tự tạo giúp  Dễ dàng triển khai chương trình lớn mà phần chương trình người phụ trách  Dễ dàng hiểu dàn ý chương trình  Dễ dàng sửa lỗi chương trình (nếu sai)  Dễ dàng nâng cấp chương trình  Sử dụng chương trình nhiều lần chương trình Dạng tổng qt chương trình dạng hàm sau: FUNCTION tên_hàm(Khai báo tham số hình thức): Kiểu giá trị trả về; (* Khai báo nhãn, hằng, định nghĩa kiểu, biến cục *) (* Khai báo chương trình trực thuộc *) Begin (* Thân chương trình *) Exit([giá trị trả về]); End; Ví dụ: Hàm tính tổng hai giá trị Function tinhtong(x,y:longint):longint; Var kq:longint; {biến cục bộ} Begin Kq := x + y; Exit(kq); End; Lưu ý: Hàm có nhận vào giá trị qua tham số trả giá trị Sử dụng hàm: Vì hàm trả giá trị nên muốn sử dụng hàm ta phải viết tên hàm chung với lệnh khác truyền cho hàm cac tham số (nếu có) 14 Tham số biến khai báo sau: Var ts1, ts2,…, tsn: kiểu liệu; Trong đó: ts1, ts2,…, tsn danh sách tham số hình thức  Tham số giá trị: Nếu trước nhóm tham số khơng có từ khóa VAR sử dụng tham số hình thức truyền theo giá trị tham số thực tương ứng giá trị tham số thực khơng bị thay đổi Tham số giá trị khai báo sau: ts1, ts2,…, tsn: kiểu liệu; Trong đó: ts1, ts2,…, tsn danh sách tham số hình thức Ví dụ Procedure Abc(Var a,b:integer; c,d:real); Như vậy: Abc: tên chương trình (dạng thủ tục) a, b: tham số biến c, d: tham số trị d, Truyền tham số cho chương trình Chương trình khai báo mà khơng dùng tham số chương trình tính tốn trực tiếp với biến tồn cục chương trình không dùng đến biến hay Q trình hoạt động máy tính bắt gặp lời gọi hàm chương trình sau: Cấp phát vùng nhớ cho biến cục tham số hình thức Truyền giá trị tham số thực cho tham số hình thức tương ứng Thực lệnh chương trình Sau thực xong lệnh thân chương trình máy tính giải phóng vùng nhớ cấp phát cho biến cục tham số hình thức Trong phần ta nói tham số hình thức gồm hai loại tham số biến tham số giá trị, truyền tham số cho chương trình có hai trường hợp sau:  Truyền tham số giá trị (truyền trị) Chúng ta xét ví dụ đơn giản sau: Lập trình xây dựng chương trình có nhiệm vụ hốn giá trị hai số dùng chương trình để hoán vị giá trị hai số nguyên a b cho PROGRAM swapNumbers; USES crt; 15 VAR a,b:integer; (* chuong trinh hoan vi hai so *) Procedure hoanvi(x,y:integer); Var temp:integer; Begin temp := x; x := y; y := temp; End; (* Chuong trinh chinh *) BEGIN clrscr; {gan gia tri cho hai bien} a:=5; b:=10; {g?i chuong trinh con} hoanvi(a,b); write('Ket qua la a=',a,' va b=',b); readln; END Quá trình hoạt động chương trình sau: Chương trình thực chương trình Trước tiên máy tính cung cấp hai vùng nhớ vùng chiếm bytes cho hai biến a b Tiếp theo lệnh xóa hình Hai lệnh gán giá trị gán giá trị cho biến a giá trị 10 cho biến b Sau lời gọi thủ tục “hoanvi” truyền cho thủ tục giá trị hai tham số thực a b Sau lời gọi thủ tục máy tính cung cấp hai vùng nhớ cho hai tham số hình thức x y gán cho chúng giá trị cua hai tham số thực tương ứng a b (lúc x = y=10) Máy tính cung cấp vùng nhớ bytes cho biến temp Thực lệnh thân chương trình Sau lệnh giá trị hai tham số hình thức x y hoán vị cho (x = 10 y = 5) Kết thúc chương trình (máy tính giải phóng vùng nhớ cung cấp cho tham số hình thức x, y biến cục temp) 16 Trở chương trình thực lệnh in hình giá trị hai biến a b Ta kết a b 10 Như chương trình khơng làm thay đổi giá trị hai biến a b Chương trình tác động tham số hình thức tức tham số thực Kết luận: Phương pháp truyền tham số giá trị có ý nghĩa cần xử lý liệu tham số thực mà không làm thay đổi nội dung  Truyền tham số biến ( truyền biến) Chúng ta làm lại ví dụ khai báo chương trình ta khai báo tham số hình thức tham số biến (thêm từ khóa VAR vào trước danh sách tham số hình thức) PROGRAM swapNumbers; USES crt; VAR a,b:integer; (* chuong trinh hoan vi hai so *) Procedure hoanvi(Var x,y:integer); Var temp:integer; Begin temp := x; x := y; y := temp; End; (* Chuong trinh chinh *) BEGIN clrscr; {gan gia tri cho hai bien} a:=5; b:=10; {goi chuong trinh con} hoanvi(a,b); write('Ket qua la a=',a,' va b=',b); readln; END Khi trương trình thực gọi thủ tục “hoavi” truyền tham số máy tính không truyền giá trị tham số thực mà truyền theo địa tham số thực cho tham số hình thức Chúng ta giả sử biến a vúng nhớ có địa 100 cịn biến b có địa 101 chẳng hạn Như giá trị hai tham số hình thức tương ứng x = 100 y = 101 lệnh thân chương trình tác động trực tiếp lên hai vùng nhớ có địa 100 101 làm thay đổi giá trị hai vùng 17 nhớ tức giá trị biến a b hoán đổi cho (a 10 b 5) Kết luận: Phương pháp truyền tham số biến làm thay đổi giá trị tham số thực giá trị truyền cho tham số hình thức địa tham số thực tương ứng 7.2 Về khả áp dụng sáng kiến: Một số ví dụ sử dụng chương trình Bài 1: Viết chương trình nhập vào số nguyên n Hãy in thông báo cho biết n có phải số ngun tố hay khơng? Ví dụ: Nhập In N=9 khơng phải số nguyên tố N = 17 17 số nguyên tố N=0 số nguyên tố Program Hamsnt; uses crt; Var n:longint; {bien toan cau - global var} Function ktnt(x:longint):longint; var i:longint; {bien dia phuong - local var} Begin if x < then exit(0); for i:=2 to trunc(sqrt(x)) if x mod i = then exit(0); exit(1); end; BEGIN clrscr; write('Nhap so nguyen n='); readln(n); if ktnt(n)=1 then writeln(n,' la so nguyen to') 18 else writeln(n,' khong la so nguyen to'); readln; END Kết chạy chương trình Test Test Test Bài tập 2: Tìm nghiệm (Equation) Xét phương trình có dạng x + y = k, k số ngun dương, phương trình có vơ số nghiệm Tuy nhiên ta quan tâm đến nghiệm (x,y) mà số x, y số nguyên tố; Yêu cầu: Nhập vào số nguyên dương k (với k < 5000) Hãy in tất gồm số nguyên tố x, y (với x < y) nghiệm phương trình (mỗi nằm dịng Ví dụ: Nhập In K=4 22 K= 16 13 11 19 Program Equation; uses crt; Var k,x,y:longint; {Bien toan cau - Global var} Function ktnt(x:longint):longint; var i:longint; Begin if x

Ngày đăng: 18/10/2023, 09:29

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

TÀI LIỆU LIÊN QUAN

w