Sáng kiến kinh nghiệm THCS: Một số biện pháp rèn luyện kỹ năng học lập trình Pascal môn Tin học lớp 8
lượt xem 8
download
Mục tiêu nghiên cứu của sáng kiến kinh nghiệm là giới thiệu về các thành phần cơ bản, cú pháp và nguyên lý hoạt động của các câu lệnh trong ngôn ngữ lập trình Pascal. Một số kinh nghiệm dạy lập trình nói chung và Pascal nói riêng. Một số thuật toán, chương trình cơ bản khi học môn Tin học lớp 8. Lý thuyết dãy số các thuật toán đơn cơ bản trên dữ liệu mảng một chiều. Cách xử lý lỗi khi chạy, kiểm tra tính đúng đắn của chương trình
Bình luận(0) Đăng nhập để gửi bình luận!
Nội dung Text: Sáng kiến kinh nghiệm THCS: Một số biện pháp rèn luyện kỹ năng học lập trình Pascal môn Tin học lớp 8
- 1. PHẦN MỞ ĐẦU 1.1. Lý do chọn đề tài Ở các trường trung học học sơ sở học sinh được học rất nhiều bộ môn trong đó môn tin học. Học sinh được tiếp cận nhiều trên các phương tiện hiện đại, hệ thống phòng máy với các thiết bị máy tính có cấu hình tương đối cao, hệ thống mạng cáp quang tương đối mạnh để đảm bảo phục vụ tốt nhu cầu học tập và tra cứu bộ môn Tin học của học sinh trong nhà trường; Trong các khối lớp học thì môn tin học lớp 8 là môn học tương đối khá trừu tượng, khó hiểu, khô khan khó nuốt đối với các em. Việc học tốt môn Tin học lại càng khó khăn hơn đối với các em vì hầu hết kiến thức chủ yếu và trọng tâm của là lập trình trên môi trường ngôn ngữ lập trình Pascal, đòi hỏi học sinh phải chú ý tìm hiểu kỹ vấn đề, hiểu được cách giải bài toán, hiểu cách mô tả thuật toán để giải bài toán, cách viết chương trình, kiểm tra lỗi, sửa lỗi chương trình và kiểm tra tính đúng đắn của chương trình. Trong quá trình giảng dạy bản thân tôi nhận thấy học sinh khối 8 rất sợ môn tin học vì kiến thức lập trình khá mới mẻ và khó hiểu. Các em phải tập trung cao độ, tìm hiểu chặt chẽ vấn đề của từng bài toán trên cơ sở hướng dẫn của giáo viên thì mong mới hiểu được cách lập trình cho một bài toán; Chính vì vậy, để giúp các em hiểu được ngôn ngữ lập trình Pascal, hiểu được cách mô tả bài toán, lập trình viết bài toán nên tôi mạnh dạn chọn giải pháp “Một số biện pháp rèn luyện kỹ năng học lập trình Pascal môn Tin học lớp 8” để chia sẽ một vài kinh nghiệm trong công tác giảng dạy giúp học sinh tiến bộ hơn trong học tập đặc biệt là các giờ thực hành ở bộ môn Tin học khối 8 bậc trung học cơ sở. * Điểm mới của đề tài Đề tài tổng hợp lại các bước để giải quyết một bài toán theo trình tự hoàn chỉnh giúp học sinh dễ dàng xác định được bài toán và tìm ra giải pháp viết chương trình phù hợp; Hình thành cho học sinh các kỹ năng như: kỹ năng tìm hiểu và giải quyết vấn đề, kỹ năng tự học giúp các em có được kết quả học tập cao hơn nhiều so Trang 1
- với trước khi các em chưa được trang bị; Qua các giải pháp của đề tài, học sinh có thể tự mình viết chương trình với ngôn ngữ lập trình Pascal, chạy thử và sửa lỗi mà không còn bị “choáng” khi lập trình nữa. 1.2. Phạm vi áp dụng của đề tài Khi dạy ngôn ngữ lập trình nói chung, ngôn ngữ lập trình Pascal nói riêng có rất nhiều vấn đề cần lưu ý. Tuy nhiên trong phạm vi sáng kiến kinh nghiệm này tôi chỉ trình bày một số lưu ý, kinh nghiệm của cá nhân tôi qua các nội dung cụ thể sau: Giới thiệu về các thành phần cơ bản, cú pháp và nguyên lý hoạt động của các câu lệnh trong ngôn ngữ lập trình Pascal; Một số kinh nghiệm dạy lập trình nói chung và Pascal nói riêng. Một số thuật toán, chương trình cơ bản khi học môn Tin học lớp 8 . Lý thuyết dãy số các thuật toán đơn cơ bản trên dữ liệu mảng một chiều. Cách xử lý lỗi khi chạy, kiểm tra tính đúng đắn của chương trình Do vậy, đề tài này có thể vận dụng trong công tác giảng dạy cho tất cả học sinh mới bắt đầu làm quen ngôn ngữ lập trình Pascal, phụ đạo học yếu kém môn tin học lớp 8 trong phạm vi trường trung học cơ sở. Với các giải pháp trong đề tài học sinh có thể tự học, tự thực hành tại phòng máy hoặc tại nhà khi không có giáo viên hướng dẫn Trang 2
- 2. PHẦN NỘI DUNG 2.1. Thực trạng trước khi thực hiện các giả pháp của đề tài 2.1.1. Số liệu thống kê Trong quá trình giảng dạy, bản tôi nhận thấy kỹ năng đọc hiểu bài toán, mô tả bài toán và kỹ năng viết chương trình đối với các em học sinh khối lớp 8 là rất yếu, chưa đáp ứng được yêu cầu khi tiếp xúc với các bài tập lập trình Pascal; Theo khảo sát đầu năm học với học sinh các lớp 8 tại trường thì khoảng gần 60% các em chưa hiểu ngôn ngữ lập trình Pascal là gì? Việc tiếp cận kiến thức lập trình để áp dụng giải bài toán cụ thể còn nhiều vấn đề gây khó khăn, trong đó phải kể đến là các bước mô tả thuật toán và viết chương trình, kiểm lỗi, sửa lỗi chương trình và chạy thử tính đúng đắn của chương trình; Thực tế cho thấy tỷ lệ học sinh đạt điểm trung bình trở lên khi làm những bài tập đơn giản đầu tiên khá thấp, các em chưa hiểu rõ vấn đề, chưa thực sự ham thích, chưa thuộc các cú pháp câu lệnh và sai cấu trúc khá nhiều dẫn đến kết quả không như mong đợi. Cụ thể kết quả qua bài khảo sát: Điểm số Số lượng học sinh/Tổng số học sinh Tỷ lệ 1 12/96 12.5% 2 14/96 14.6% 3 15/96 15.6% 4 16/96 16.7% 5 10/96 10.4% 6 14/96 14.6% 7 6/96 6.3% 8 6/96 6.3% 9 3/96 3.1% 10 0/96 0.0% Bảng số liệu tỷ lệ khảo sát đầu năm qua các bài thực hành trên lớp 2.1.2. Tình hình trước khi thực hiện các giải pháp của đề tài Qua thực tế giảng dạy tại trường, tôi nhận thấy: Theo thói quen của nhiều em học sinh, học môn Tin học là học những thao tác với máy tính như cách sử dụng sử dụng hệ điều hành Window, chương trình soạn thảo văn bản Word, Trang 3
- chương trình bảng tính Exell, chương trình soạn thảo trình diễn PowerPoint, khai thác Internet, … đây là những phần học không cần đòi hỏi tư duy, mà chỉ cần học kĩ và nhớ thao tác, thực hành nhiều lần thì sẽ thành thạo; trong khi đó môn tin học lớp 8 các em học sinh bắt đầu làm quen với lập trình mà chủ yếu là lập trình bằng ngôn ngữ lập trình Pascal; Khi học bộ môn lập trình Passal ở lớp 8 cấp học Trung học cơ sở thì hầu như các em bị “choáng” vì bộ môn rất “mới”, và cách học cũng “mới”. Những thao tác và thực hành nhiều không còn tác dụng, học thuộc bài cũng không còn ổn nữa, các em cần phải học cách tư duy logic, tìm thuật toán, và viết những dòng lệnh máy tính chính xác đúng cú pháp và đúng ngữ nghĩa. 2.1.3. Nguyên nhân dẫn đến tình hình trên Nguyên nhân thứ nhất: Các em học sinh chưa nắm được về các thành phần cơ bản, cú pháp và nguyên lý hoạt động của các câu lệnh trong ngôn ngữ lập trình Pascal; Nguyên nhân thứ hai: Các em học sinh chưa nắm được về các bước viết một chương trình; Nguyên nhân thứ ba: Các em học sinh chưa biết phân tích chi tiết bài toán để tìm ra nội dung cần viết chương trình; Nguyên nhân thứ tư: Các em học sinh chưa biết cách phát hiện lỗi và cách sửa lỗi chương trình khi thực hành trên máy tính; Nguyên nhân thứ năm: Các em học sinh chưa biết cách làm việc với dãy số các thuật toán đơn cơ bản trên dữ liệu mảng một chiều. 2.2. Một số giải pháp 2.2.1 Giải pháp 1: Giáo viên bộ môn cần giúp học sinh nắm vững lý thuyết; cú pháp, nguyên lý hoạt động của các câu lệnh; nguyên tắc viết một chương trình hoàn chỉnh với ngôn ngữ lập trình Pascal 2.2.1.1 Giới thiệu chung giúp học sinh nắm được về các thành phần cơ bản của ngôn ngữ lập trình Pascal Ngôn ngữ lập trình Pascal gồm: Bảng chữ cái và các quy tắc để viết các câu lệnh Trang 4
- *Bộ chữ cái trong Pascal gồm: 26 chữ la tinh lớn: A, B, C,…Z ; 26 chữ la tinh nhỏ: a, b, c,…z ; dấu gạch dưới _; bộ chữ số thập phân: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 ; các ký hiệu toán học: +, , *, / ,,>=,,
- Integer 32768 → 32767 Word 0 → 65535 LongInt 2147483648 → 2147483647 Các phép toán số học trên kiểu dữ liệu số nguyên : + (phép cộng), (phép trừ), * (phép nhân), / (phép chia cho ra kết quả là số thực). Phép chia lấy phần nguyên: DIV (Ví dụ : 34 DIV 5 = 6). Phép chia lấy phần dư: MOD (Ví dụ: 34 MOD 5 = 4). Kiểu số thực : Real Các phép toán số học trên kiểu dữ liệu số thực : + (phép cộng), (phép trừ), * (phép nhân), / (phép chia). Không có phép chia lấy phần nguyên và phép chia lấy phần dư trên kiểu dữ liệu số thực. Kiểu dữ liệu ký tự: Char + Phạm vi giá trị: Một ký tự Kiểu dữ liệu xâu: String + Phạm vi giá trị: Một xâu ký tự, tối đa gồm 255 ký tự b) Cách khai báo và sử dụng hằng Hằng là một đại lượng có giá trị không thay đổi trong suốt chương trình. Cú pháp khai báo hằng: CONST = ; +Ví dụ khai báo hằng có tên Pi khi tính diện tích hình tròn là: Const Pi=3.14; Lưu ý: +Không được thay đổi giá trị của hằng trong phần thân chương trình. Muốn thay đổi giá trị của hằng thì phải thay đổi trong phần khai báo. + Khi khai báo hằng là 1 giá trị số thực thì phần ngăn cách giữa phần nguyên và phần thập phân là dấu chấm (.); khi khai báo hằng là 1 ký tự hay 1 xâu ký tự thì phải đặt trong cặp dấu nháy đơn. c) Cách khai báo và sử dụng biến Biến là một đại lượng mà giá trị của nó có thể thay đổi trong quá trình thực hiện chương trình. Cú pháp khai báo biến: VAR : ; Trang 6
- +Trong đó: Danh sách biến là một hoặc nhiều tên biến được cách nhau bởi dấu phẩy; Kiểu dữ liệu là một trong các kiểu dữ liệu của ngôn ngữ lập trình Pascal Ví dụ: VAR x, y: Real; {Khai báo hai biến x, y có kiểu là Real} Var a, b: Integer; {Khai báo hai biến a, b có kiểu integer} d) Biểu thức Để thực hiện tốt kỹ năng viết biểu thức trong lập trình Pascal các em cần nắm vững các công thức toán học của bài toán, cách chuyển các phép toán trong toán học sang các ký hiệu trong ngôn ngữ lập trình Pascal để có thể chuyển đổi công thức ấy sang biểu thức Pascal. Cho học sinh ghi nhớ lại các công thức toán học mà các em chưa biết, chưa hiểu vào vở bài tập. Ví dụ một số công thức cơ bản như sau: + Tính diện tích hình chữ nhật: SCN = chiều dài × chiều rộng. Khi đó ta chuyển sang biểu thức Pascal sẽ là: S:=a*b; (trong đó: S là diện tích, a là số đo của chiều dài, b là số đo của chiều rộng) nên lưu ý học sinh khi viết xong cuối dòng công thức phải có dấu chấm phẩy; + Tính diện tích hình vuông: SHV = cạnh × cạnh. Khi đó ta chuyển sang biểu thức Pascal sẽ là: S:=a*a; (trong đó: S là diện tích, a là số đo của cạnh) nên lưu ý học sinh khi viết xong cuối dòng công thức phải có dấu chấm phẩy; + Tính chu vi hình tam giác: CVABC = cạnh a + cạnh b + cạnh c . Khi đó ta chuyển sang biểu thức Pascal sẽ là: CV:=a+b+c; (trong đó: CV là chu vi; a,b,c là số đo của 3 cạnh) nên lưu ý học sinh khi viết xong cuối dòng công thức phải có dấu chấm phẩy; Cần lưu ý cho học sinh 2 vấn đề sau: Để gộp các phép toán, trong ngôn ngữ lập trình Pascal chỉ sử dụng các dấu mở và đóng ngoặc đơn ( ). Trong một biểu thức, thứ tự ưu tiên thực hiện của các phép toán được liệt kê theo thứ tự sau: +Các phép trong dấu ngoặc () Trang 7
- + Các phép toán *, /, DIV, MOD + Các phép toán +, e) Câu lệnh * Câu lệnh gán Cú pháp: :=; Trong đó: tên biến là tên của biến , kiểu của giá trị biểu thức phải phù hợp với kiểu của biến Chức năng: Gán giá trị mới của biến bằng giá trị của biểu thức ở về phải. VD: x :=2*a; {gán giá trị của biểu thức 2*a cho biến x} Cần lưu ý cho học sinh 2 vấn đề sau: Thông thường kiểu dữ liệu của biến phải cùng kiểu dữ liệu với kiểu dữ liệu của giá trị biểu thức, biến kiểu thực có thể nhận giá trị kiểu nguyên và biến kiểu xâu có thể nhận kiểu kí tự, ngược lại thì không. Sau khi thực hiện câu lệnh gán thì giá trị của biến sẽ nhận giá trị mới bằng giá trị của biểu thức ở vế phải * Các lệnh xuất nhập dữ liệu: Để xuất dữ liệu ra màn hình, ta sử dụng ba dạng sau: Thủ tục Chức năng WRITE([Các tham số]); Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ không xuống dòng. WRITELN([Các tham số]); Sau khi xuất giá trị của các tham số ra màn hình thì con trỏ xuống đầu dòng tiếp theo. WRITELN; Xuất ra màn hình một dòng trống. Trong đó: Các tham số có thể là các hằng, biến, biểu thức, chuỗi thông báo. Nếu có nhiều tham số trong câu lệnh thì các tham số phải được phân cách nhau bởi dấu phẩy. Cần lưu ý cho học sinh 2 vấn đề sau: Nếu tham số là một chuỗi thông báo thì phải đặt cặp dấu nháy đơn vào hai đầu chuỗi thông báo đó Ví dụ: writeln(‘chao cac ban’); Trang 8
- Nếu tham số là biến, hằng, biểu thức có giá trị trả về có kiểu dữ liệu số thực thì nên đặt thêm định dạng khoa học dưới dạng write([tham số]:m:n); hoặc writeln([tham số]:m:n); trong đó m là độ dài dùng để viết số trên màn hình, n là số chữ số thập phân sau dấu thập phân Ví dụ: writeln(x:10:1); {viết giá trị biến x trên màn hình có độ dài là 10 và làm tròn đến chữ số thập phân thứ nhất} Để nhập dữ liệu từ bàn phím cho các biến + Cú pháp: READLN( [Danh sách biến]); +Trong đó: Danh sách biến là tên một hoặc nhiều biến; nếu nhiều hơn 1 biến thì các biến phải cách nhau bởi dấu phẩy. +Khi chạy chương trình, để nhập dữ liệu cho biến thì khi nhập dữ liệu xong cho 1 biến phải bấm phím Enter ++ Ví dụ: Để nhập dữ liệu cho biến x ta sử dụng lệnh Readln(x); +Chú ý: Khi gặp câu lệnh READLN; (không có danh sách biến), chương trình sẽ dừng lại chờ người sử dụng nhấn phím ENTER mới chạy tiếp. Lệnh này thường được dùng trước từ khóa kết thúc chương trình (End.) để xem kết quả xuất ra màn hình thay vì thao tác bấm tổ hợp phím Alt+F5 (nên khuyến khích học sinh sử dụng lệnh này trước từ khóa kết thúc chương trình End. Bởi vì khi chạy chương trình, nếu không đặt lệnh Readln; trước từ khóa End. thì học sinh thườngbị tâm lý “hoảng sợ” do không nhìn thấy được kết quả). * Câu lệnh điều kiện dạng thiếu Cú pháp: IF THEN ; + Trong đó: điều kiện là phép so sánh Nguyên tắc hoạt động: Khi gặp câu lệnh điều kiện dạng thiếu, chương trình sẽ kiểm tra điều kiện. Nếu điều kiện được thỏa mãn (điều kiện có giá trị đúng) thì chương trình sẽ thực hiện câu lệnh sau từ khóa THEN. Ngược lại (điều kiện có giá trị sai) thì câu lệnh đó bị bỏ qua. Ví dụ: IF x>y THEN writeln(‘DUNG ROI’); {với x, y là 2 biến có giá trị nguyên} + Giả sử trước đó x có giá trị 6, y có giá trị 5 thì câu lệnh writeln(‘DUNG ROI’); được thực hiện trên màn hình hiện ra DUNG ROI; Trang 9
- + Giả sử x có giá trị 5, y có giá trị 6 thì câu lệnh writeln(‘DUNG ROI’) không được thực hiện; Cần lưu ý cho học sinh về các phép so sánh: > (lớn hơn),= (lớn hơn hoặc bằng), y THEN Writeln(‘ gia tri cua x lon hon gia tri cua y’) ELSE IF x > y THEN Writeln(‘ gia tri cua x lon hon gia tri cua y’) ELSE Writeln(‘ gia tri cua x bang gia tri cua y’); *Câu lệnh lặp với số lần lặp biết trước FOR..DO Cú pháp: FOR := TO DO ; +Trong đó: Biến đếm là biến có kiểu số nguyên; giá trị đầu, giá trị cuối là các giá trị nguyên Trang 10
- Nguyên tắc hoạt động: Khi gặp câu lệnh FOR..DO, ban đầu biến đếm sẽ nhận giá trị bằng giá trị đầu, sau mỗi vòng lặp thì biến đếm tự động tăng thêm một đơn vị cho đến khi bằng giá trị cuối; khi biến đếm có giá trị lớn hơn giá trị cuối thì thoát khỏi câu lệnh lặp. Ví dụ: Để xuất ra 5 chữ O trên 5 dòng trên màn hình, ta có đoạn lệnh sau: FOR I :=1 TO 5 DO Writeln(‘O’); Cần lưu ý cho học sinh: Chỉ sử dụng câu lệnh lặp với số lần lặp biết trước FOR..DO đối với các bài toán đã xác định trước số lần lặp của câu lệnh sau từ khóa DO. *Câu lệnh lặp với số lần chưa biết trước WHILE..DO Để thực hành tốt các dạng bài tập câu lệnh lặp với số lần chưa biết trước học sinh cần thiết nắm vững kiến thức lý thuyết thông qua cú pháp: WHILE DO ; Trong đó: Điều kiện là phép so sánh Nguyên tắc hoạt động: Khi gặp câu lệnh WHILE..DO chương trình sẽ thực hiện theo các bước sau: +Bước 1: Kiểm tra điều kiện +Bước 2: Nếu điều kiện sai thì câu lệnh sau từ khóa DO bị bỏ qua và kết thúc lệnh lặp. Nếu điều kiện đúng thì thực hiện câu lệnh sau từ khóa DO và quay lại bước 1. Ví dụ: Tính tổng các số được nhập vào từ bàn phím. Khi tổng lớn hơn 100 thì dừng việc nhập và thông báo kết quả ra màn hình. Ta có đoạn lệnh sau: S:=0; {S là biến để lưu kết quả tổng các số nhập từ bàn phím} While S
- Giá trị các biến trong điều kiện trong câu lệnh phải thay đổi để sớm hay muộn giá trị của chuyển từ đúng sang sai. Chỉ như vậy chương trình mới không bị rơi vào tình trạng “lặp vô hạn”. Nhớ lại kết quả của các phép so sánh (đã đề cập ở câu lệnh điều kiện IF..THEN) Có thể linh hoạt sử dụng câu lệnh lặp với số lần chưa biết trước WHILE..DO thay cho câu lệnh lặp FOR..DO. 2.2.1.1 Giáo viên giới thiệu cách viết một chương trình bằng ngôn ngữ lập trình Pascal *Cấu trúc cơ bản nhất của một bài lập trình Pascal: Về mặt lý thuyết giáo viên nên cung cấp chắc chắn cho học sinh cấu trúc chung của một bài lập trình như sau: +Xây dựng khung chương trình để tránh trường hợp chương trình quá dài học sinh bỏ quên hoặc bỏ sót cấu trúc chương trình; nên khuyến khích học sinh khi soạn thảo khung chương trình đầy đủ như sau: PROGRAM ; USES CRT; {Các khai báo biến, hằng,....} BEGIN Clrscr; {các câu lệnh xuất/ nhập dữ liệu cho biến, các lệnh gán,...} READLN; END. + Bên cạnh đó, cũng cần lưu ý học sinh cách đặt tên chương trình đúng quy tắc, đảm bảo không sai cú pháp khi đặt tên chương trình, tên chương trình không được trùng với các từ khóa: PROGRAM, BEGIN, USES, VAR, END,..., dùng dấu gạch nối xen giữa nếu tên dài quá 8 ký tự và phải đảm bảo tên không dài quá 127 ký tự, tên chương trình phải được đặt bằng tiếng việt không dấu, không sử dụng dấu cách; Trang 12
- + Các biến ở phần khai báo phải đảm bảo phù hợp với bài toán và phù hợp với kiểu dữ liệu cần nhập. Các hằng ở phần khai báo phải đảm bảo phù hợp với bài toán. Cần lưu ý cho học sinh 5 vấn đề sau: Khi soạn thảo chương trình trên máy tính nên tắt các phần mềm hỗ trợ gõ tiếng Việt như Vietkey, unikey; Khi thực hiện chương trình máy tính sẽ thực hiện các lệnh trong phần thân chương trình theo tuần tự nên khi viết chương trình phải xác định viết lệnh nào trước, lệnh nào sau theo tư duy thuật toán. Các lệnh khi viết phải tuân theo cú pháp của nó. Cần nhắc lại sau các lệnh đều kết thúc bằng dấu chấm phẩy; sử dụng lệnh Clrscr để xóa màn hình (lưu ý học sinh: để sử dụng được lệnh này trong phần thân thì phải khai báo thư viện Crt ở phần khai báo của chương trình) và lệnh Readln để hiển thị kết quả ra màn hình Thông thường trong cú pháp các câu lệnh thường là là một lệnh đơn (một thao tác trong thuật toán) cần chỉ thị cho máy tính thực hiện. Tuy nhiên, trong các câu lệnh điều kiện và câu lệnh lặp ta thường thấy có nhiều thao tác được thực hiện khi điều kiện thỏa mãn thì các lệnh đơn đó phải được đặt trong cặp từ khóa Begin và End để tạo thành câu lệnh ghép. => Khi học sinh nắm vững lý thuyết; cú pháp, nguyên lý hoạt động của các câu lệnh; nguyên tắc viết một chương trình hoàn chỉnh với ngôn ngữ lập trình Pascal thì các em có thể viết chương trình đúng cấu trú, đúng cú pháp hạn chế được lỗi cú pháp khi chạy chương trình. 2.2.2 Giải pháp 2: Giới thiệu về quá trình giải bài toán trên máy tính Phương pháp tổng quát để giải một bài toán bằng máy vi tính dựa trên ngôn ngữ Pascal thì cần thực hiện được các bước cụ thể như sau: ước 1 . Xác định các bài toán: B Là xác định xem ta phải giải quyết vấn đề gì?; từ phát biểu của bài toán, các em phải xác định được đâu là thông tin đã cho (Input) và đâu là thông tin cần Trang 13
- tìm (Output). Xác định đúng yêu cầu bài toán là rất quan trọng bởi nó ảnh hưởng tới cách thức giải quyết và chất lượng một lời giải. Bước 2. Mô tả thuật toán: Tuỳ thuộc vào vấn đề cần giải quyết mà có những thao tác sẽ tiến hành trên dữ liệu vào sau một số hữu hạn bước thực hiện các thao tác đã chỉ ra, ta đạt được mục tiêu đã định. Từ đó tìm cách giải bài toán và diễn tả bằng các lệnh cần phải thực hiện. Bước 3. Viết chương trình: Dựa vào mô tả ở bước 2 trên; vận dụng cú pháp các câu lệnh và các quy tắc của ngôn ngữ lập trình Pascal để viết chương trình. => Khi học sinh nắm và vận dụng được quá trình giải bài toán trên máy tính thì các em biết được bài toán đã cho dữ liệu gì, cần tìm kết quả gì, từ đó định hướng được các thao tác và các lệnh cần sử dụng, tránh được tình trạng lập trình mò mẫm. 2.2.3 Giải pháp 3: Phân tích chi tiết nội dung cần viết chương trình: * Xác định bài toán Xác định thông tin đã cho (Input): Xác định thông tin đã cho này có cần nhập từ bàn phím hay không; Xác định thông tin cần tìm (Output): Xác định kết quả sau khi chạy chương trình là gì? *Tìm thuật toán Thuật toán là một quá trình gồm một dãy hữu hạn các thao tác đơn giản được sắp xếp theo một trình tự xác định sao cho theo đó từ Input của bài toán sẽ tìm ra được Output của bài toán. Một bài toán ta có 3 cách thể hiện thuật toán: Các bước xác định bằng lời, lập sơ đồ khối, dùng một ngôn ngữ lập trình (Pascal) * Viết chương trình Viết chương trình là dùng một ngôn ngữ lập trình để viết chương trình mà cụ thể trong đề tài này là ngôn ngữ lập trình Pascal để diễn tả thuật toán, cấu trúc dữ liệu thành câu lệnh để máy tính có thể thực hiện được và giải quyết đúng bài toán mà người lập trình mong muốn. Trang 14
- ∙ Một bài toán ta có thể đưa ra nhiều cách giải khác nhau, song là một giáo viên thì chúng ta cần giúp học sinh viết chương trình làm sao người xem nhìn vào có thể dễ hiểu được bài toán đó là gì? Do đó, việc tinh chỉnh các bước cho bài toán trong 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 dữ liệu từ đó thành một chương trình. Muốn lập trình giỏi không phải chỉ cần nắm vững 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 dần dần để chuyển các ý tưởng ra thành chương trình hoàn chỉnh. Tinh chế từng bước là một thể hiện của tư duy giải quyết vấn đề từ trên xuống, giúp cho người lập trình có được một định hướng thể hiện trong phong cách viết chương trình tránh việc mò mẫm, xoá đi viết lại nhiều lần. Người lập trình có thể đưa ra phương pháp tinh chỉnh từng bước, thể hiện tư duy để giải quyết những vấn đề của bài toán từ trên xuống làm cho chương trình tối ưu, sáng sủa, làm cho bài toán được giải một cách gọn gàng nhất, chính xác nhất. => Khi học sinh nắm quá trình giải bài toán trên máy tính thì các em có thể phân tích bài toán một cách kỹ càng hơn, định hướng được bài toán đã cho dữ liệu gì, cần tìm kết quả gì, thuật toán để giải bài toán ra sao, vận dụng lệnh gì trong ngôn ngữ lập trình Pascal để giải bài toán từ đó có thể tránh được lỗi ngữ nghĩa khi chạy chương trình. VÍ DỤ MINH HOẠ Sử dụng ngôn ngữ lập trình Pascal , hãy viết chương trình tính diện tích hình chữ nhật với chiều dài là a, chiều rộng là b (biết a,b là các số thực được nhập vào từ bàn phím). Xuất kết quả tính diện tích ra màn hình ( \yêu cầu diện tích làm tròn đến chữ số thập phân thứ 2) 1. Xác định bài toán: + Input (Thông tin vào): Chiều dài là cạnh a, chiều rộng là cạnh b + Output (Thông tin ra): Kết quả diện tích khi đưa a, b vào 2. Viết thuật toán của bài toán: Bước 1: CD a, CR b Bước 2: s a*b sau đó xuất kết quả tính diện tích ra màn hình và kết thúc thuật toán. Ở đây chương trình bắt đầu bằng lời tiếng việt như: Trang 15
- CD a, có nghĩa là gán chiều dài bằng a (hay là nhập chiều dài) CR b có nghĩa là gán chiều rộng bằng a (hay là nhập chiều dài) Giáo viên phân tích chi tiết cụ thể, từ đó mới bắt đầu hướng dẫn các em viết một chương trình cụ thể bằng ngôn ngữ lập trình thông qua phân tích trên 3. Viết chương trình cho bài toán sử dụng ngôn ngữ lập trình Pascal: Sau khi học sinh đã xác định được bài toán, viết được chương trình, giáo viên cho học sinh thực hành trên máy tính, chạy thử để kểm tra kết quả và từ đó khắc sâu kiến thức viết một chương trình đơn giản cho học sinh. Để viết được chương trình cần bám sát vào các bước của thuật toán: ở bước 1 để nhập được chiều dài và chiều rộng của hình chữ nhật, trước hết cần khai báo biến chiều dài, chiều rộng sử dụng lệnh khai bóa biến là var a,b:real; để nhập chiều dài và chiều rộng sử dụng lệnh readln(a); readln(b); ở bước 2 tính diện tích sử dụng lệnh gán s:=a*b; lệnh in ra màn hình write(s:3:2);. 2.2.4 Giải pháp 4: Giúp học sinh biết cách phát hiện lỗi và cách sửa lỗi chương trình khi thực hành trên máy tính Trang 16
- 2.2.4.1 Sửa lỗi cú pháp Khi biên dịch chương trình trong môi trường lập trình Free Pascal các em thường bấm tổ hợp phím Alt+F9 hoặc vào bảng chọn Compile chọn lệnh Compile. Tuy nhiên khi chương trình bị lỗi thì học sinh lúng túng không biết lỗi ở đâu và làm thế nào để sửa lỗi. Trong quá trình giảng dạy tôi đã hướng dẫn học sinh bình tĩnh quan sát trên màn hình, và làm như sau: Màn hình báo chương trình bị lỗi sau khi biên dịch Khi gặp trên màn hình Free Pascal có bảng thông báo này, hướng dẫn học sinh bấm phím Enter để mất bảng thông báo này, khi đó quan sát phía dưới của màn hình làm việc Free Pascal có một cửa sổ có tên Compile Messages Cửa sổ có tên compile Messages Để ý trong cửa sổ có tên Compile Messages sẽ thấy có 1 dòng có màu nền khác; hướng dẫn học sinh bấm chuột phải tại dòng có màu nền khác đó, khi đó xuất hiện bảng chọn như hình sau: Bảng chọn Trang 17
- + Chọn lệnh Goto source, khi đó con trỏ soạn thảo sẽ nhảy đến vị trí có lỗi, hoặc lân cận vị trí có lỗi. Để sửa lỗi thì dựa vào lý thuyết và các cú pháp đã học để tiến hành sửa lỗi. Sau khi sửa xong lỗi thì tiến hành biên dịch lại và sửa lỗi cho đến khi không còn lỗi. 2.2.4.2 Sửa lỗi ngữ nghĩa Lỗi ngữ nghĩa là lỗi mà chương trình khi biên dịch không mắc lỗi nhưng khi chạy chương trình thì chương trình cho kết quả không như mong muốn. Khi mắc lỗi ngữ nghĩa thì phải xem lại thuật toán và tiến hành hiệu chỉnh lại chương trình theo thuật toán đã hiệu chỉnh. => Khi học sinh biết cách phát hiện lỗi và cách sửa lỗi chương trình khi thực hành trên máy tính thì các em không bị tâm lý chán nản với lập trình mà các em yêu thích và đam mê lập trình hơn. 2.2.5 Giải pháp 5: Giáo viên cần giúp học sinh nắm vững lý thuyết; cú pháp khai báo mảng, một số thuật toán cơ bản đối với dữ liệu kiểu mảng một chiều Đối với nội dung này, giáo viên cần cho học sinh hiểu rõ khái niệm kiểu mảng một chiều, hiểu được cách khai báo các phần tử và cách truy cập đến các phần tử của mảng một chiều, học sinh cần hiểu được cách cài đặt thuật toán một số bài đơn giản với dữ liệu kiểu mảng, thực hiện việc khai báo mảng, truy cập, tính toán các phần tử của mảng một chiều. 2.2.5.1 Cú pháp khai báo: Var : Array[..] of ; +Trong đó: chỉ số đầu, chỉ số cuối là các số nguyên thỏa mãn chỉ số đầu
- Giả sử cần nhập dữ liệu cho mảng gồm N phần tử ( với N đã được nhập trước đó) ta sử dụng kết hợp giữa câu lệnh lặp FOR..DO và câu lệnh nhập dữ liệu như sau: FOR := TO N DO Readln(tên biến mảng[biến đếm]); + Ví dụ cần nhập dữ liệu cho mảng M gồm N phần tử (với N đã được nhập trước đó, mảng M đã khai báo VAR M: ARRAY[1..5] OF INTEGER; ) ta có đoạn lệnh sau: FOR i:=1 TO N DO Readln(M[i]); Gán giá trị cho phần tử thứ I trong mảng theo cú pháp: Tên_biến_mảng[i] := ; hoặc Tên_biến_mảng[i] := ; +Trong đó giá trị hoặc giá trị của biểu thức phải cùng kiểu dữ liệu với kiểu dữ liệu của biến mảng. +Ví dụ: Để gán giá trị 7 cho phần tử thứ 3 của mảng M ta sử dụng lệnh M[3] := 7; Để gán giá trị biểu thức x+y cho phần tử thứ 3 của mảng M ta sử dụng lệnh M[3] := x+y; * Truy cập biến mảng Để truy cập biến mảng thông qua chỉ số tương ứng của phần tử tương ứng trong mảng + Ví dụ 1: Để xuất ra toàn bộ giá trị của mảng M đã nhập mỗi phần tử cách nhau 1 dấu cách (mảng có N phần tử, với N biết trước) ta sử dụng đoạn lệnh: FOR I :=1 TO N DO Write(M[i],’ ‘); + Ví dụ 2: Để xuất ra giá trị phần tử thứ I của mảng M đã nhập (với i biết trước) ta sử dụng lệnh: write(M[i]); Trang 19
- * Một số thuật toán đơn giản biến mảng a) Thuật toán tìm giá trị lớn nhất của mảng Xác định bài toán Input: Số nguyên dương N (N>1) và dãy N số nguyên M1,..., Mn. Output: Giá trị lớn nhất Max của dãy số. Thuật toán Bước 1: Max := M1, i := 2; Bước 2: Nếu Mi > Max thì Max := Mi; Bước 3: i := i + 1 Bước 4: Nếu i
CÓ THỂ BẠN MUỐN DOWNLOAD
-
Sáng kiến kinh nghiệm THCS: Một số biện pháp nhằm nâng cao chất lượng học tập phân môn Hát ở lớp 6
13 p | 328 | 31
-
Sáng kiến kinh nghiệm THCS: Một số phương pháp giáo dục học sinh cá biệt ở THCS
33 p | 99 | 16
-
Sáng kiến kinh nghiệm THCS: Một số biện pháp nâng cao hiệu quả sử dụng thiết bị dạy học và sửa chữa đồ dùng dạy học bộ môn Vật lí ở trường THCS
16 p | 27 | 11
-
Sáng kiến kinh nghiệm THCS: Một vài kinh nghiệm sử dụng phương pháp trò chơi vào tiết luyện tập môn Hóa học ở trường THCS
24 p | 168 | 11
-
Sáng kiến kinh nghiệm THCS: Một số thủ thuật dạy từ vựng môn tiếng Anh cấp THCS
12 p | 31 | 10
-
Sáng kiến kinh nghiệm THCS: Một số biện pháp trong việc bảo quản vốn tài liệu tại thư viện trường THCS Nguyễn Lân
15 p | 96 | 10
-
Sáng kiến kinh nghiệm THCS: Một số kinh nghiệm trong việc chỉ đạo nâng cao chất lượng sinh hoạt tổ, nhóm chuyên môn ở trường THCS Nguyễn Lân, quận Thanh Xuân
35 p | 37 | 10
-
Sáng kiến kinh nghiệm THCS: Một số kinh nghiệm bồi dưỡng học sinh giỏi môn Toán cấp THCS
28 p | 97 | 9
-
Sáng kiến kinh nghiệm THCS: Một số kinh nghiệm trong việc giáo dục đạo đức cho học sinh THCS
27 p | 84 | 9
-
Sáng kiến kinh nghiệm THCS: Một số ứng dụng của định lí Vi-ét trong chương trình Toán 9
24 p | 85 | 8
-
Sáng kiến kinh nghiệm THCS: Một số giải pháp góp phần nâng cao chất lượng đội ngũ Ban chỉ huy Đội tại trường THCS Nguyễn Khuyến
29 p | 65 | 7
-
Sáng kiến kinh nghiệm THCS: Một số biện pháp rèn kỹ năng viết CTHH của chất vô cơ trong chương trình Hoá học lớp 8 THCS
45 p | 17 | 7
-
Sáng kiến kinh nghiệm THCS: Một số kinh nghiệm dạy dạng bài tập đồ thị phần toán chuyển động trong Vật lí THCS
33 p | 36 | 7
-
Sáng kiến kinh nghiệm THCS: Một số kinh nghiệm hữu ích giúp học sinh học tốt môn Ngữ văn 8
21 p | 84 | 7
-
Sáng kiến kinh nghiệm THCS: Một số phương pháp dạy học nhằm phát huy tính tích cực, chủ động, sáng tạo của học sinh THCS trong các bài vẽ tranh
17 p | 22 | 6
-
Sáng kiến kinh nghiệm THCS: Một số kinh nghiệm giúp học sinh lớp 8 thành công trong thí nghiệm Hoá học 8
10 p | 13 | 4
-
Sáng kiến kinh nghiệm THCS: Một số biện pháp nâng cao chất lượng giờ dạy thực hành sử dụng các hàm để tính toán của Excel
14 p | 90 | 3
-
Sáng kiến kinh nghiệm THCS: Một số giải pháp nâng cao hiệu quả giảng dạy loại bài tập về số chính phương cho học sinh giỏi lớp 8 ở trường trung học cơ sở
16 p | 73 | 2
Chịu trách nhiệm nội dung:
Nguyễn Công Hà - Giám đốc Công ty TNHH TÀI LIỆU TRỰC TUYẾN VI NA
LIÊN HỆ
Địa chỉ: P402, 54A Nơ Trang Long, Phường 14, Q.Bình Thạnh, TP.HCM
Hotline: 093 303 0098
Email: support@tailieu.vn