Skkn sử dụng ngôn ngữ lập trình pascal để giải một số bài toán tại trung tâm gdnn gdtx huyện thường xuân

26 8 0
Skkn sử dụng ngôn ngữ lập trình pascal để giải một số bài toán tại trung tâm gdnn   gdtx huyện thường xuân

Đ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

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA TRUNG TÂM GDNN GDTX HUYỆN THƯỜNG XUÂN SÁNG KIẾN KINH NGHIỆM SỬ DỤNG NGÔN NGỮ LẬP TRÌNH PASCAL ĐỂ GIẢI MỘT SỐ BÀI TOÁN TẠI TRUNG TÂM GDNN GDTX HUYỆN THƯỜNG XUÂN Người t[.]

SỞ GIÁO DỤC VÀ ĐÀO TẠO THANH HÓA TRUNG TÂM GDNN - GDTX HUYỆN THƯỜNG XUÂN SÁNG KIẾN KINH NGHIỆM SỬ DỤNG NGƠN NGỮ LẬP TRÌNH PASCAL ĐỂ GIẢI MỘT SỐ BÀI TOÁN TẠI TRUNG TÂM GDNN - GDTX HUYỆN THƯỜNG XUÂN Người thực hiện: Nguyễn Thị Thùy Dung Chức vụ: Giáo viên SKKN thuộc lĩnh vực (môn): Tin học THANH HÓA, NĂM 2022 skkn MỤC LỤC Nội dung Trang MỞ ĐẦU 1.1 Lí chọn đề tài 1.2 Mục đích nghiên cứu 1.3 Đối tượng nghiên cứu 1.4 Phương pháp nghiên cứu 2 NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sang kiến 2.2 Thực trạng vấn đề 2.2.1 Thuận lợi 2.2.2 Khó khăn 2.3 Các giải pháp sử dụng để giải vấn đề 2.3.1 Xác định toán 2.3.2 Tìm thuật tốn 2.3.3 Viết chương trình 2.3.4 Chạy thử, sửa đổi chương trình 17 2.4 Hiệu sáng kiến kinh nghiệm 17 2.4.1 Kết mức độ hứng thú HS 17 2.4.2 Kết kiểm tra mức độ nhận thức HS 17 KẾT LUẬN VÀ KIẾN NGHỊ 20 3.1 Kết luận 20 3.2 Kiến nghị 20 TÀI LIỆU THAM KHẢO skkn DANH MỤC CÁC CHỮ VIẾT TẮT Viết tắt HS Viết đầy đủ Học sinh SKKN Sáng kiến kinh nghiệm THPT Trung học phổ thông TT GDNN-GDTX Trung tâm Giáo dục nghề nghiêp - Giáo dục thường xuyên THCS Trung học sở DS Danh sách Vd Ví dụ THCS TB Trung học sở Trung bình DANH MỤC CÁC BẢNG BIỂU TT Số tên bảng Trang Bảng 1: Kết kiểm tra thường xuyên Bảng 2: Khảo sát yêu thích HS 17 Bảng 3: Kết kiểm tra mức độ nhận thức HS 18 Biểu đồ So sánh kết kiểm tra sau dạy thực nghiệm 18 skkn 1 MỞ ĐẦU 1 Lí chọn đề tài Tin học ngành khoa học công nghệ nghiên cứu phương pháp, q trình xử lý thơng tin cách tự động dựa phương tiện kỹ thuật mà chủ yếu máy tính điện tử Ngày Tin học ứng dụng lĩnh vực đời sống xã hội, có ý nghĩa vai trị quan trọng, đặc biệt thời đại công nghệ 4.0 Môn Tin học giữ vai trò chủ đạo việc chuẩn bị cho học sinh khả tìm kiếm, tiếp nhận, mở rộng tri thức sáng tạo thời đại thơng tin, kết nối tồn cầu hóa; hỗ trợ đắc lực học sinh tự học tập nghiên cứu; tạo sở vững cho việc ứng dụng công nghệ kĩ thuật số, phục vụ phát triển nội dung kiến thức mới, triển khai phương thức giáo dục đại cho tất môn học Tuy nhiên, em học sinh cho mơn Tin học khơng phải mơn học chương trình giáo dục phổ thơng Vì thế, em không quan tâm đến môn học Ngôn ngữ lập trình Pascal có ngữ pháp ngữ nghĩa đơn giản, mang tính logic, cấu trúc chương trình rõ ràng dễ hiểu Đây ngơn ngữ thích hợp cho kiểu lập trình theo cấu trúc, đặc biệt dễ sửa chữa cải tiến Trong trình dạy học Tin học lớp 11 Trung tâm GDNN - GDTX huyện Thường Xuân, thấy kiến thức học sinh tiếp nhận áp dụng vào giải toán đạt kết chưa cao, khả tư Toán học em hạn chế, phần đa chất lượng học sinh đầu vào thấp Do đó, kỹ phân tích, tổng hợp, xây dựng thuật tốn cho tốn hay vấn đề cần lập trình chưa tốt Các em cịn thụ động việc tiếp cận tốn, xếp tư duy, xây dựng thuật giải Học sinh chưa linh động việc áp dụng toán học vào lập trình, chưa nắm rõ bước để giải tốn ngơn ngữ lập trình Pascal Xuất phát từ sở chọn đề tài “Sử dụng ngơn ngữ lập trình Pascal để giải số toán Trung tâm GDNN - GDTX huyện Thường Xn” 1.2 Mục đích nghiên cứu Thơng qua việc nghiên cứu giúp học sinh có kỹ để giải số tốn ngơn ngữ lập trình Pascal Từ góp phần nâng cao hiệu dạy học Tin học Trung tâm GDNN - GDTX huyện Thường Xn nói riêng mơn Tin học nói chung skkn 1.3 Đối tượng nghiên cứu - Ngơn ngữ lập trình Pascal - Học sinh lớp 11 Trung tâm GDNN - GDTX huyện Thường Xuân năm học 2021 - 2022 1.4 Phương pháp nghiên cứu - Phương pháp: Phân tích, xây dựng sở lý thuyết - Thu thập thông tin Internet, kinh nghiệm thực tế giảng dạy - Sử dụng ngôn ngữ lập trình Pascal skkn NỘI DUNG SÁNG KIẾN KINH NGHIỆM 2.1 Cơ sở lí luận sáng kiến kinh nghiệm Pascal ngơn ngữ lập trình máy tính Niklaus Wirth phát triển vào năm 1970  Pascal ngơn ngữ lập trình đặc biệt thích hợp với kiểu lập trình cấu trúc cấu trúc liệu, ngơn ngữ lập trình đặt theo tên nhà toán học, triết gia nhà vật lý người Pháp Blaise Pascal Pascal ngơn ngữ có định kiểu rõ ràng: - Mọi biến kiểu liệu gán giá trị kiểu liệu đó, khơng tự đem gán cho giá trị kiểu liệu khác - Việc định kiểu cách chặt chẽ khiến cho người lập trình ln ln phải có biểu thức tương thích với kiểu liệu Pascal ngơn ngữ thể tư lập trình có cấu trúc: - Dữ liệu cấu trúc hóa: Từ liệu đơn giản có cấu trúc đơn giản người lập trình xây dựng liệu có cấu trúc phức tạp - Mệnh lệnh cấu trúc hóa: Từ lệnh chuẩn có, người lập trình nhóm chúng lại với đặt hai từ khóa Begin End khiến chúng trở thành ngôn ngữ phức tạp gọi lệnh hợp thành hay lệnh ghép - Chương trình cấu trúc hóa: Một chương trình chia thành chương trình tổ chức theo hình phân cấp Mỗi chương trình nhằm giải nhiệm vụ xác định cụ thể, điều giúp cho người lập trình giải phần một, khối cho nhiều người tham gia lập trình, người phụ trách vài khối Ngơn ngữ lập trình Pascal nội dung học sinh học từ lớp bậc THCS, lúc học sinh tiếp thu kiến thức chậm, đặc biệt kỹ để giải tốn ngơn ngữ lập trình Pascal Bởi mơn học cịn em Lên chương trình lớp 11, học sinh tiếp tục học tập nghiên cứu lập trình Pascal, địi hỏi em phải biết vận dụng kiến thức bài, xếp cách logic để lập trình giải tốn hồn chỉnh Tuy vậy, thực tế học sinh làm điều Hầu hết em vận dụng câu lệnh, cú pháp không phù hợp cho yêu cầu toán Vậy làm để học sinh nắm bước để skkn giải toán, chọn thuật toán phù hợp để giải tốn cho trước? Để học sinh tự học, tự nghiên cứu biết áp dụng để giải toán nhiều dạng khác thực tế? Bản thân phân công giảng dạy lớp 11, nên tơi trăn trở, tìm tịi tài liệu, dành nhiều tâm huyết, thời gian nghiên cứu để giúp em học sinh thực việc giải tốn ngơn ngữ lập trình Pascal nhanh Tạo hứng thú học tập môn Tin học lập trình Nâng cao nhận thức yêu mến với mơn lập trình 2.2 Thực trạng vấn đề 2.2.1 Thuận lợi Được quan tâm giúp đỡ từ Ban Giám đốc, tổ chuyên môn đồng nghiệp Cơ sở vật chất, trang thiết bị dạy học tương đối đầy đủ, đảm bảo phục vụ giảng dạy môn Tin học Hầu hết học sinh lớp chuyên cần học tập Trong q trình giảng dạy, tơi nhận thấy có số học sinh có khả muốn học hỏi từ thầy bạn bè; chịu khó nghe giảng, trau kiến thức cho thân 2.2.2 Khó khăn Trung tâm GDNN - GDTX huyện Thường Xuân đầu vào không thi tuyển khơng xét tuyển nên có nhiều học viên yếu học lực, tiếp thu chậm, kiến thức không đồng nên việc lựa chọn phương pháp, kiến thức cung cấp cho học viên gặp nhiều khó khăn Một phận học sinh chưa ý thức việc học Tin học, mơn Tin học khơng có chương trình thi THPT quốc gia nên học sinh phụ huynh xem Tin học môn học phụ nên chưa có ý thức đầu tư thời gian cho mơn Diện tích phịng máy nhỏ hẹp, máy tính cũ nên thường hay hư hỏng, khơng khí phịng máy khơng thống mát làm cho học sinh không tập trung vào giảng, ảnh hưởng lớn trình giảng dạy học tập Học sinh tiếp nhận kiến thức cách thụ động nên chưa khắc sâu kiến thức Tư Toán học chưa đồng Chưa linh động việc áp dụng toán học vào lập trình Chưa nắm rõ bước để giải tốn ngơn ngữ lập trình Pascal Khi giải tốn máy tính học sinh quan tâm đến cơng thức để tính tốn kết skkn toán mà quên bước xác định thông tin vào, thông tin ra; xây dựng thuật tốn Khi chạy chương trình chưa nhận biết kết chương trình hay sai Lớp Số HS 11A 30 07 23.33% 23 76.67 % 0% 0% 11B 35 08 22.86% 27 77.14 % 0% 0% Dưới TB TB trở lên Khá Giỏi Bảng 1: Kết kiểm tra thường xuyên Những khó khăn kể HS tháo gỡ em biết sử dụng ngơn ngữ lập trình vào q trình giải tốn Chỉ cần HS hiểu máy tính giúp tìm từ u cầu tốn cho Sau chuyển tải điều muốn sang ngơn ngữ máy tính yêu cầu máy tính thực thi 2.3 Các giải pháp sử dụng để giải vấn đề Phương pháp để giải tốn tin học khơng dùng để giải toán cụ thể mà cịn giải nhiều tốn cụ thể thuộc loại Máy tính hoạt động đạo người, để giải toán máy tính đưa cho máy tính dãy hữu hạn thao tác đơn giản mà thực để từ điều kiện cho trước, ta kết cần tìm Sử dụng ngơn ngữ lập trình Pascal để giải toán cần bước: - Xác định tốn - Tìm thuật tốn - Viết chương trình - Chạy thử, sửa đổi chương trình 2.3.1 Xác định toán skkn - Bài toán việc mà ta muốn máy tính thực để từ thơng tin đưa vào (Input) tìm thơng tin (Output) - Khi máy tính giải tốn cần quan tâm đến yếu tố: + Input: Thông tin có + Output: Thơng tin cần tìm từ Input Ví dụ: Xác định Input Output toán sau: Vd1: Giải phương trình: ax2 + bx + c = 0  (a≠0) Input: Số nguyên a, b, c với (a≠0) Output: Nghiệm phương trình Vd2: Kiểm tra số ngun dương N có phải số nguyên tố không? Input: Số nguyên dương N Output: Kết luận N có phải số nguyên tố khơng 2.3.2 Tìm thuật tốn - Thuật tốn dãy hữu hạn thao tác xếp theo trình tự xác định cho sau thực thao tác ấy, từ Input tốn ta nhận Output cần tìm - Tác dụng thuật toán: Dùng để giải toán Đây bước quan trọng để giải toán - Lựa chọn thuật tốn thích hợp: Ngắn gọn, dễ hiểu để viết chương trình, thời gian thực chương trình ngắn nhất,… * Diễn tả thuật toán cách: - Cách dùng phương pháp liệt kê: Nêu phương pháp cần tiến hành   - Cách dùng sơ đồ khối + Hình thoi + Hình chữ nhật : Thể thao tác so sánh : Thể Các phép tính tốn + Hình van : Thể thao tác nhập, xuất liệu + Các mũi tên : Quy định trình tư thực thao tác Ví dụ: Xây dựng thuật tốn tốn sau: Vd1: Giải phương trình: ax2 + bx + c = 0  (a≠0) skkn * Cách liệt kê: - Bước 1: Nhập a, b, c (a≠0) - Bước 2: Tính Δ = b2 – 4ac - Bước 3: Nếu Δ < kết luận phương trình vơ nghiệm kết thúc thuật tốn Nếu khơng chuyển sang bước −b - Bước 4: Nếu Δ = phương trình có nghiệm kép x1, = a kết thúc thuật tốn Nếu khơng chuyển sang bước - Bước 5: Nếu Δ > Phương trình có nghiệm là: x1 = −b+ √ ∆ −b−√ ∆ ; x2 = kết thúc 2a 2a * Sơ đồ khối: Nhập a, b, c Δ = b2 – 4ac Đ PT vô nghiệm Δ B ký tự khác chúng kể từ trái sang phải xâu A có mã ASCII lớn - Nếu A B xâu có độ dài khác A đoạn đầu B A < B.  * Một số thủ tục chuẩn xử lý xâu  - Thủ tục delete(st, vt, n): Xóa ký tự biến xâu st vị trí vt Trong đó: + st: giá trị xâu + vt: vị trí cần xóa + n: số kí tự cần xóa - Thủ tục insert(S1, S2, vt): Chèn xâu S1 vào xâu S2, bắt đầu vị trí vt - Hàm copy(S, vt, n): Tạo xâu gồm n kí tự liên tiếp vị trí vt xâu S Cho giá trị xâu ký tự lấy xâu S - Hàm length(S): Trả giá trị độ dài xâu S Kết trả số nguyên skkn 13 - Hàm pos(S1,S2): Trả kết vị trí xâu S1 xâu S2 Kết trả số nguyên - Hàm upcase(S): Trả kết viết in hoa chữ có S * Lưu ý: Kiểu mảng với phần tử thuộc kiểu char khác với kiểu xâu (khai báo từ khóa string) nên áp dụng thao tác (phép toán, hàm, thủ tục) xâu cho mảng c Kiểu ghi  Dữ liệu kiểu ghi dùng để mô tả đối tượng có số thuộc tính mà thuộc tính có kiểu liệu khác Khai báo kiểu ghi: Type = record : ; < Tên trường 2>: ; ……………… : ; End; Biến ghi: Var : ; d Kiểu liệu tệp - Cách khai báo: Var : TEXT; - Gắn tên tệp: Assign (, ); - Mở tệp để ghi: Rewrite (); - Ghi tệp văn bản: Writeln (, ); - Đóng tệp: Close (); - Mở tệp để đọc: Reset (); - Đọc liệu từ tệp: Readln (, ); - Kiểm tra trỏ cuối tệp: EOF (); Nếu trỏ cuối tệp hàm trả giá trị TRUE - Kiểm tra trỏ cuối dòng: EOLN (); Nếu trỏ cuối dòng hàm trả giá trị TRUE 2.3.3.5 Chương trình chương trình pascal skkn 14 Chương trình theo định nghĩa 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 Giúp tránh việc phải viết lặp lặp lại dãy lệnh, đồng thời cần dùng gọi lại chương trình Sử dụng chương trình cịn hỗ trợ việc thực chương trình lớn Phục vụ cho trình trừu tượng hóa Người lập trình sử dụng kết chương trình mà khơng cần quan tâm đến chương trình cài đặt Mở rộng khả ngôn ngữ thành thư viện cho nhiều người dùng Thuận tiện cho phát triển, nâng cấp chương trình Vd1: Viết chương trình giải phương trình: ax2 + bx + c = 0  (a≠0) program vd1; uses crt; var delta,a,b,c,x1,x2:real; begin write('Nhap a = ');Readln(a); write('Nhap b = ');readln(b); write('Nhap c = ');readln(c); delta:=b*b-4*a*c; if delta = then begin x1:=-b/(2*a); write('Phuong trinh co nghiem kep x1 = x2 = ',x1:10:2); end; if delta>0 then begin writeln('Phuong trinh co hai nghiem '); x1:=(-b+sqrt(delta))/(2*a); x2:=(-b-sqrt(delta))/(2*a); write('x1 = ',x1:10:2,' va x2 = ',x2:10:2); end; if delta < then write('Phuong rinh vo nghiem'); readln; skkn 15 end Vd2: Viết chương trình giải hệ phương trình bậc hai ẩn {axcx+by=m +dy =n program vd2; uses crt; Var a,b,c,d,m,n:real; dx,dy,dd:real; Begin Clrscr; Writeln(' GIAI HE PHUONG TRINH BAC NHAT HAI AN:'); Writeln(' '); Write('Nhap a=');readln(a); Write('Nhap b=');readln(b); Write('Nhap m=');readln(m); Write('Nhap c=');readln(c); Write('Nhap d=');readln(d); Write('Nhap n=');readln(n); dd:=a*d-b*c; dx:=m*d-b*n; dy:=a*n-c*m; If dd=0 then If (dx=0) and (dy=0) then Writeln('He vo so nghiem hoac vo nghiem') Else writeln('He vo nghiem') Else Begin Write('He co nghiem :'); Writeln('x=',dx/dd:4:2,' va y=',dy/dd:4:2); End; Readln; End Vd3: Viết chương trình tính tổng: S= +1/2 + 1/3 +…+1/n (n số tự nhiên nhập từ bàn phím) program vd3; uses crt; var i,n:integer;S:real; skkn 16 begin clrscr; writeln('Nhap so thu n: '); readln(n); S:=0; i:=1; while ir then Writeln('Diem A nam ngoai duong tron') Else Writeln('Diem A nam duong tron'); Readln; End Vd5: Viết chương trình kiểm tra số nguyên dương N có phải số ngun tố khơng? Program vd5; uses crt; var i.n.d:iinteger; begin skkn 17 clrscr; readln(n); d:=0; for i:=1 to n if n mod i=0 then d:=d+1; if d=2 then write(n,’ la so nguyen to’) write(n,’ khong la so nguyen to’); Readln; end else Vd6: Viết chương trình nhập vào hai số nguyên dương a, b bất kỳ, thị ước chung lớn hai số bội chung nhỏ hai số Program vd6; uses crt; var a,b,ucln,bcnn,i:integer; begin clrscr; write('Nhap a='); readln(a); write('Nhap b='); readln(b); While (ab) Begin If a>b then a:=a-b else b:=b-a; End; Ucln:=a; bcnn:=(a*b)/ucln; writeln('Uoc chung lon nhat la: ',ucln);  writeln('Boi chung nho nhat la: ',bcnn); readln; end 2.3.4 Chạy thử, sửa đổi chương trình Một chương trình viết xong chạy máy vi tính khơng cho kết mong muốn Do người lập trình cần phải biết cách tìm lỗi, sửa đổi chương trình Đây kỹ quan trọng người lập trình Một số lỗi chương trình: - Lỗi thuật tốn: Cần điều chỉnh lại thuật tốn, thêm vị trí có thể, loại bỏ thuật tốn sai, tìm thuật tốn khác - Lỗi trình tự: Xem lại thuật tốn để đặt lại cho với trình tự từ xuống skkn ... chưa nắm rõ bước để giải tốn ngơn ngữ lập trình Pascal Xuất phát từ sở tơi chọn đề tài ? ?Sử dụng ngơn ngữ lập trình Pascal để giải số toán Trung tâm GDNN - GDTX huyện Thường Xuân? ?? 1.2 Mục đích... giúp học sinh có kỹ để giải số tốn ngơn ngữ lập trình Pascal Từ góp phần nâng cao hiệu dạy học Tin học Trung tâm GDNN - GDTX huyện Thường Xuân nói riêng mơn Tin học nói chung skkn 1.3 Đối tượng... phù hợp cho yêu cầu toán Vậy làm để học sinh nắm bước để skkn giải toán, chọn thuật toán phù hợp để giải toán cho trước? Để học sinh tự học, tự nghiên cứu biết áp dụng để giải toán nhiều dạng khác

Ngày đăng: 02/02/2023, 08:58

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

  • Đang cập nhật ...

Tài liệu liên quan