intTypePromotion=1
zunia.vn Tuyển sinh 2024 dành cho Gen-Z zunia.vn zunia.vn
ADSENSE

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

Chia sẻ: Khánh Thành | Ngày: | Loại File: DOC | Số trang:26

86
lượt xem
8
download
 
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

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

Chủ đề:
Lưu

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. 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
  2. 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
  3. 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
  4. 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
  5. *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: +, ­, *, / ,,>=,,
  6. 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
  7. +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
  8.   + 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
  9.   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
  10. + 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
  11. ­ 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 
  12.  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
  13.  + 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
  14. 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
  15. ∙              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
  16. 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
  17. 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
  18. + 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 
  19. ­ 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
  20. * 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 
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản
2=>2