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 THPT: Tìm hiểu thêm về ngôn ngữ lập trình pascal

Chia sẻ: Caphesua | Ngày: | Loại File: DOC | Số trang:23

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

Mục đích nghiên cứu của đề tài là sử dụng các ví dụ minh họa cụ thể để học sinh hiểu như thế nào gọi là ‘lặp’ và như thế nào là ‘lặp với số lần biết trước’, tiếp theo đó là học sinh nắm được cú pháp, ý nghĩa của cấu trúc lặp. Và thông qua các ví dụ đó, hướng dẩn học sinh phân biệt, nắm vững dạng lặp.

Chủ đề:
Lưu

Nội dung Text: Sáng kiến kinh nghiệm THPT: Tìm hiểu thêm về ngôn ngữ lập trình pascal

  1. A. MỞ ĐẦU I. Lý do chọn đề tài: Như  ta đã biết Tin học là một bộ  môn được đưa vào giảng dạy chính   thức trong nhà trường phổ thông gần đây. Đối với các em học sinh, có thể nói  đây là một hành trang để  giúp các em vững bước đi tới tương lai ­ tương lai  của một thế hệ công nghệ thông tin bùng nổ!  Phần mềm phát triển nhanh và phong phú đáp  ứng hầu hết mọi lãnh  vực trong xã hội, đời sống con người. Người ta, đặc biệt là các bạn trẻ khi sử  dụng một phần mềm chỉ  biết được phần mềm đó  ứng dụng vào lãnh vực   nào, sử  dụng ra sao và cố  gắng tìm hết chức năng của phần mềm đó chứ  ít   khi mà nghĩ đến phần mềm mình đang sử dụng ở đâu ra? Ai đã tạo ra nó? Và   tạo ra như  thế nào? Những người quan tâm đến công nghệ  thông tin thì đều   biết được chính các lập trình viên đã sáng tạo nên, viết nên các phần mềm đó   mà viết được nó là nhờ vào các ngôn ngữ lập trình.  Cũng vì lẽ  đó mà Bộ  Giáo dục đã chọn ngôn ngữ  lập trình Pascal đưa   vào trong chương trình học của lớp 8 để các em biết được thế nào là tư  duy,  thế nào là lập trình và chắc chắn sẽ có được một số em thích thú, say mê để  rồi trở thành những lập trình viên chuyên nghiệp mai sau. Vậy thì chúng ta phải làm như thế nào để sau khi kết thúc lớp 8 thì các   em có thể  nắm và hiểu được như  thế  nào là ngôn ngữ  lập trình, cụ  thể  là   ngôn ngữ lập trình Pascal mà ta đã nói ở trên. Trong chương trình Pascal lớp 8, phần nào cũng rất hay và rất quan   trọng nhưng tôi thấy câu lệnh lặp với số  lần lặp biết trước For..Do rất đặc  biệt mà lại thường gặp trong các bài toán cơ  bản và nâng cao. Khi tới phần  này, rất nhiều em mơ hồ về việc lặp lại các thao tác của câu lệnh lặp mặc dù  chương   trình   được   chạy   trực   tiếp   bằng   phần   mềm   Pascal   trên   màn   hình  chiếu. Nên sau khi chạy chương trình xong, tôi ghi đoạn chương trình có chứa  câu lệnh For lên bảng và hướng dẫn các em chạy bằng tay nghĩa là tự  mình  tính toán và ghi lại kết quả trong mỗi lần lặp lại của lệnh lặp For. Tôi nhận  thấy các em hiểu rõ hơn phần này và cảm thấy thích thú hơn.  1
  2. Xuất phát từ những cảm nhận trên, tôi chọn đề tài “TÌM HIỂU THÊM  VỀ NGÔN NGỮ LẬP TRÌNH PASCAL” để đi sâu thêm và mở rộng thêm về  câu lệnh lặp với số lần lặp biết trước For..Do.  II. Mục tiêu, nhiệm vụ của đề tài: 1. Mục tiêu: Sử dụng các ví dụ  minh họa cụ  thể để  học sinh hiểu như thế  nào gọi  là ‘lặp’ và như thế nào là ‘lặp với số lần biết trước’, tiếp theo đó là  học sinh   nắm được cú pháp, ý nghĩa của   cấu trúc lặp. Và thông qua các ví dụ  đó,  hướng dẩn học sinh  phân biệt, nắm vững dạng lặp. 2. Nhiệm vụ: Xuất phát từ  yêu cầu thực tế  của việc dạy và học bộ  môn Tin học,   hàng năm cứ vào đầu năm là tôi đề ra kế hoạch cụ thể nhằm đạt được hiệu   quả tốt nhất, với những nhiệm vụ như sau: ­ Khảo sát chất lượng đầu năm của học sinh để  từ  đó có phương pháp  phù hợp với từng đối tượng. ­ Luôn trao đổi kinh nghiệm với tổ bộ môn sau mỗi tiết dự giờ để đóng  góp những ý kiến hay và bổ sung cho tiết dạy hoàn thiện hơn. ­ Tham khảo nhiều tài liệu về Pascal để có những bài tập rèn luyện kỹ  năng lập trình cho học sinh. III. Đối tượng nghiên cứu ­ Căn cứ vào tình hình thực tế, tôi thực hiện nghiên cứu trên đối tượng  là học sinh những lớp tôi được phân công gồm các lớp: 8A1  8A8 IV. Giới hạn của đề tài Đưa ra vấn đề  là bài 7 trong sách tin học 8, để học sinh thảo luận tính  toán qua đó nắm vững câu lệnh lặp với số lần biết trước và hình thành ở học   2
  3. sinh ki năng phân tích, x ̃ ử lý các vấn đề liên quan đến vòng lặp trong quá trình  lập trình các chương trình đơn gian sau này. ̉ V. Phương pháp nghiên cứu: ­ Kết hợp thực tiễn giáo dục ở trường THCS Nguyễn Trường Tộ ­ Kiểm tra chất lượng học tập của học sinh đầu tiết học, sau mỗi buổi  học. ­ Sử dụng máy tính, máy chiếu (projector). ­ Rèn luyện kỹ năng viết chương trình theo mức độ từ dễ đến khó. B. NỘI DUNG I. Cơ sở lí luận: ­ Nhận thấy được tầm quan trọng của ngành Tin học, Bộ  Giáo dục đã   đưa môn học này vào nhà trường phổ  thông như  những môn khoa học khác  bắt đầu từ năm học 2006­2007.  ­ Chỉ  thị  số  55/2008/CT­ BGDĐT ngày 30/9/2008 của Bộ  trưởng Bộ  GDĐT về tăng cường giảng dạy, đào tạo  và ứng dụng  công nghệ thông tin   trong ngành giáo dục giai đoạn 2008­2012. Trong bối cảnh toàn ngành Giáo dục và Đào tạo đang nỗ  lực đổi mới  phương pháp dạy học theo hướng phát huy tính tích cực chủ  động của học  sinh   trong   hoạt   động   học   tập.   Điều   24.2   của   Luật   giáo   dục   đã   nêu   rõ:  “Phương pháp giáo dục phổ  thông phải phát huy tính tích cực, tự  giác, chủ   động, sáng tạo của học sinh, phù hợp với đặc điểm của từng lớp học, môn   học; bồi dưỡng phương pháp tự  học, rèn luyện kỹ  năng 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 vui, hứng thú học tập cho   học sinh”.  Cốt lõi của việc đổi mới phương pháp dạy học  ở  trường phổ  thông là giúp học sinh hướng tới việc học tập chủ động, chống lại thói quen   học tập thụ động. 3
  4. II. Thực trạng vấn đề nghiên cứu Qua thực tế  giảng dạy  ở  trường THCS Nguyễn Trường Tộ  đã nhiều  năm, tôi nhận thấy đa số học sinh lớp 8, 9 đều nhận xét Tin học 8 là môn học  khó. Khi học sinh học Bài 7_CẤU TRÚC LẶP, học sinh đã có rất nhiều khó   khăn, nhầm lẫn trong việc xác định vòng lặp. Một số thuận lợi và khó khăn khi thực hiện chuyên đề này: 1. Thuận lợi: ­   Nhà trường trang bị  cơ  sở  vật chất tương đối đủ  (máy   chiếu) để  phục vụ việc giảng dạy và học tập. ­  Giáo viên chuẩn bị nội dung bài giảng tốt, sử dụng phương pháp phù   hợp với từng đối tượng học sinh; luôn trao đổi chuyên môn với các đồng  nghiệp. ­ Học sinh chuẩn bị bài tốt, hứng thú học tập, tích cực phát biểu.   2. Khó khăn: ­ Về  phía nhà trường, phòng máy tính chưa đủ  phục vụ  cho việc thực  hành vì hai học sinh chung một máy tính. Khi viết chương trình Pascal nếu  mỗi học sinh một máy thì sự  sáng tạo của các em rất dễ  bộc lộ  và sẽ  có   nhiều giải thuật hay. ­ Một số học sinh  ở vùng dân tộc thiểu số, ít có điều kiện tiếp xúc với  máy tính, vì thế mà các em thao tác rất chậm. ­ Một số  các em học yếu môn toán nên để  giải được một bài tập đơn  giản liên quan đến toán cũng còn gặp không ít khó khăn. III.  Nội dung và hình thức của giải pháp: 1. Mục tiêu của giải pháp: ­ Căn cứ vào yêu cầu cụ thể của việc dạy và học Tin học 8. 4
  5. ­ Căn cứ vào việc nâng cao chất lượng giảng dạy và sự  ham thích học   môn tin học của học sinh khối 8. ­ Căn cứ  vào thực trạng sử  dụng ngôn ngữ  lập trình và kỹ  năng lập  trình của học sinh. 2. Nội dung và cách thức thực hiện giải pháp: Để truyền đạt cho học sinh nắm vững kiến thức về câu lệnh lặp, cũng  như  kỹ  năng lập trình thành thạo là vấn đề  rất khó khăn. Chính vì vậy, cần  phải có phương pháp giảng dạy nhằm phát huy tính tích cực, chủ  động sáng  tạo ở học sinh.  + Về  phương pháp: Sử  dụng phương pháp thuyết trình kết hợp vấn  đáp. Bài giảng được soạn bằng phần mềm Microsoft Powerpoint, liên kết với   Pascal để chạy những chương trình cụ thể. + Về  phương tiện: Sử  dụng máy chiếu (Projector) hoặc chương trình  Netop School và phải có chương trình Pascal để minh họa. Nội dung trọng tâm sẽ  gồm các ví dụ, mỗi ví dụ  là một bài toán. Bài  toán ban đầu có dạng đơn giản rồi sau đó phức tạp dần. Mỗi bài toán sẽ được  đưa ra các giải pháp để  thực hiện và chúng ta sẽ  xem cách giải các bài toán  này có điểm chung nào và có những điểm nào khác nhau.  Ở  đây, ta sẽ  chạy   đoạn chương trình bằng tay (bằng tính toán của mình) để các em biết được ý  nghĩa và hoạt động của câu lệnh lặp For..Do. Sau đó, ta đưa đoạn chương  trình đó vào một chương trình Pascal hoàn chỉnh và chạy cho các em xem kết   quả chạy bằng tay có giống với chạy bằng máy không hoặc nếu có thời gian   nên dùng cách chạy từng bước Step Over (F8) cho dễ so sánh hơn. a.  VÍ DỤ 1:  Đoạn chương trình  sau chạy xong thì biến a, b, i sẽ có giá trị là bao nhiêu?             a := 1; b := 1; FOR i := 1 TO 3 DO  5
  6. Begin           a := a + i ;          b := b + a ; end ; THỰC HIỆN: + Đầu tiên, ta phải xác định: ­ Biến đếm: i ­ Giá trị đầu: 1 ­ Giá trị cuối: 3 ­ Số lần lặp = Giá trị cuối – giá trị đầu + 1 = 3 ­1 +1 = 3 ­ Câu lệnh cần thực hiện trong lệnh lặp For:  a : = a + i  ; b : = b + a ; ­ Hai câu lệnh trên chỉ được thực hiện khi i ≤ 3 + Sau khi xác định xong, ta tiến hành thực hiện các bước được liệt kê trong  bảng sau: Bước Diễn giải và tính toán Ghi giá trị của các biến ­ Tạo bảng ghi lại các giá trị  cho các  i a b biến 1 ­ Vì có 3 biến nên ta tạo 3 cột 2 ­ i chưa có giá trị (vì chưa vào lệnh lặp  i a b 1 1 For..Do) ­ a = 1 ­ b = 1 6
  7. Bắt đầu vào lệnh lặp For ­ i = 1 (gán giá trị đầu là 1 cho i) ­ Vì i ≤ 3 nên ta phải thực hiện:            a : = a + i  ;  a = 1 + 1 =2 i a b           b : = b + a ;  b = 1 + 2 = 3 1 1 1 2 3 3 ­ Tính toán xong, ta điền các giá trị vào  bảng bên. ­ Sau khi thực hiện xong hai câu lệnh  trên, lệnh lặp For sẽ lặp lại lần thứ 2  các thao tác như  lần thứ  nhất nhưng  trước khi lặp lại biến đếm i phải tăng  i a b lên 1. 1 1 1 2 3 4 ­ i = 2 (i tự động tăng lên 1) 2 4 7 ­ Vì i vẫn ≤ 3 nên ta phải thực hiện:            a : = a + i  ;      a = 2 + 2 = 4           b : = b + a ;      b = 3 + 4 = 7 ­ Tính toán xong, ta điền các giá trị vào  bảng bên. 7
  8. ­ Sau khi thực hiện xong hai câu lệnh  trên, lệnh lặp For sẽ lặp lại lần thứ 3  nhưng   trước   khi   lặp   lại   biến   đếm   i  phải tăng lên 1. i a b ­ i = 3 (i tự động tăng lên 1) 1 1 5 ­ Vì i vẫn ≤ 3 nên ta phải thực hiện:  1 2 3 2 4 7           a : = a + i  ;      a = 4 + 3 = 7 3 7 14           b : = b + a ;      b = 7 + 7 = 14 ­ Tính toán xong, ta điền các giá trị vào  bảng bên. NHẬN XÉT: ­  Sau khi i = 3 và thực hiện xong 2 câu lệnh trong vòng lặp For thì cũng  kết thúc lệnh lặp For. ­  Số lần lặp là 3 như ta xác định ban đầu. ­  Đoạn chương trình trên chạy xong, ta thu được kết quả là: i = 3; a = 7; b = 14 ­   Tạo đoạn chương trình trên thành một chương trình hoàn chỉnh trong  Pascal Nhưng thêm vào hai lệnh Writeln(i,’    ’, a,’   ’,b); và Readln; để  kết quả  hiện lên trong mỗi lần lặp giúp học sinh quan sát tốt và dễ  so  sánh với kết quả vừa thực hiện bằng tay. Program Vidu1; Var a, b, i : integer; Begin          a : = 1; b : =1; For i := 1 to 3 do          Begin           a : = a + i  ;  b : = b + a ; 8
  9. Writeln(i,’    ’, a,’   ’,b); Readln;                    End; End. ­  Dùng Step over để chạy chương trình từng bước cho học sinh quan sát. ­  Kết quả chạy bằng Pascal cũng giống như  việc thực hiện trong bảng  trên. ­  Sửa lại chương trình cho gọn và đúng yêu cầu. Program Vidu1; Var a,b,i : integer; Begin           a : = 1; b : =1; For i := 1 to 3 do      Begin a : = a + i  ;                       b : = b + a ;                 End;           Writeln(i,’    ’, a,’   ’,b);           Readln; End. ­  Chạy bằng máy chương trình vừa sửa lại cho học sinh quan sát  ­  Sau đó, ta thay số lần lặp trong chương trình lên nhiều lần hơn. b.  VÍ DỤ 2: Hãy tính S là tổng các số nguyên từ 1 đến N với N là một số nguyên dương. S = 1 + 2 + 3 + … + N Với yêu cầu trên, ta viết thành đoạn chương trình sau: 9
  10. N := 4; S := 0; For i := 1 To N Do S := S + i ; THỰC HIỆN: + Đầu tiên, ta phải xác định: ­ Biến đếm: i ­ Giá trị đầu: 1 ­ Giá trị cuối: 4 ­ Số lần lặp = Giá trị cuối – giá trị đầu + 1 = 4 ­1 +1 = 4 ­ Câu lệnh cần thực hiện trong lệnh lặp For: S : = S + i  ; ­ Câu lệnh trên chỉ được thực hiện khi i ≤ 4 + Sau khi xác định xong, ta tiến hành thực hiện các bước theo bảng sau: Bước Diễn giải và tính toán Ghi giá trị của các biến ­ Tạo bảng ghi lại các giá trị cho các  i S biến ­ Vì có 2 biến cần điền giá trị nên ta  1 tạo 2 cột ­ S = 0  ­ i chưa có giá trị vì chưa thực hiện  lệnh lặp For Bắt đầu vào lệnh lặp For 2 ­ i = 1 (gán giá trị đầu là 1 cho i) i S 1 1 ­ Vì i ≤ 4 nên ta phải thực hiện:            S : = S + i  ;  S = 0 + 1 = 1 ­ Tính toán xong, ta điền các giá trị vào  bảng bên. 10
  11. ­ Sau khi thực hiện xong hai câu lệnh  trên, lệnh lặp For sẽ lặp lại lần thứ 2  i S 1 1 các thao tác như lần thứ nhất nhưng  2 3 trước khi lặp lại biến đếm i phải tăng  lên 1. 3 ­ i = 2 (i tự động tăng lên 1) ­ Vì i vẫn ≤ 4 nên ta phải thực hiện:            S : = S + i  ;  S = 1 + 2 = 3 ­ Tính toán xong, ta điền các giá trị vào  bảng bên. ­ Sau khi thực hiện xong hai câu lệnh  trên, lệnh lặp For sẽ lặp lại lần thứ 3  i S 1 1 các thao tác như lần thứ nhất nhưng  2 3 trước khi lặp lại biến đếm i phải tăng  3 6 lên 1. 4 ­ i = 3 (i tự động tăng lên 1) ­ Vì i vẫn ≤ 4 nên ta phải thực hiện:            S : = S + i  ;  S = 3 + 3 = 6 ­ Tính toán xong, ta điền các giá trị vào  bảng bên. 11
  12. ­ Sau khi thực hiện xong hai câu lệnh  trên, lệnh lặp For sẽ lặp lại lần thứ 4  i S 1 1 các thao tác như lần thứ nhất nhưng  2 3 trước khi lặp lại biến đếm i phải tăng  3 6 lên 1. 4 10 5 ­ i = 4 (i tự động tăng lên 1) ­ Vì i vẫn ≤ 4 nên ta phải thực hiện:            S : = S + i  ;  S = 6 + 4 = 10 ­ Tính toán xong, ta điền các giá trị vào  bảng bên. NHẬN XÉT: ­  Sau khi i = 4 và thực hiện xong câu lệnh trong vòng lặp For thì cũng  kết thúc lệnh lặp For. ­  Số lần lặp là 4 như ta xác định ban đầu. ­  Đoạn chương trình trên chạy xong, ta thu được kết quả là: S = 10 ­  Tạo đoạn chương trình trên thành một chương trình hoàn chỉnh trong  Pascal. Nhưng thêm vào hai lệnh Writeln(i,’    ’, S); và Readln; để kết quả  hiện lên trong mỗi lần lặp. Program Vidu2; Var S, i : integer; Begin           S : = 0; For i := 1 to 4 do      Begin S : = S + i  ;                      Writeln(i,’    ’, S);                      Readln;                 End; 12
  13. End. ­  Dùng Step over để chạy chương trình từng bước cho học sinh quan sát. ­  Kết quả chạy bằng Pascal cũng giống như  việc thực hiện trong bảng  trên. ­  Sửa lại chương trình cho đúng yêu cầu. Program Vidu2; Var S, i : integer; Begin          S : = 0; For i := 1 to 4 do S : = S + i  ;             Writeln(i,’    ’, S);            Readln; End. ­ Sau đó, ta thay số lần lặp trong chương trình lên nhiều lần hơn. ­ Chạy lại chương trình bằng máy cho học sinh quan sát. c.  VÍ DỤ 3: Sử dụng hai vòng lặp lồng nhau Đoạn chương trình sau chạy xong thì biến i, j, a, b sẽ có giá trị là bao nhiêu? a := 1; b := 1; FOR i := 0 TO 1 DO  Begin            FOR j := 1 TO 3 DO a := a + j ;             b := b + a ; End ; THỰC HIỆN: + Đoạn chương trình trên có hai câu lệnh lặp + Lệnh For (j) được lồng trong lệnh For (i) 13
  14. + Lệnh For (i): ­ Biến đếm: i  ­ Giá trị đầu: 0  ­ Giá trị cuối: 1 ­ Số lần lặp = Giá trị cuối – giá trị đầu + 1 = 1 ­ 0 +1 = 2 ­ Câu lệnh cần thực hiện trong lệnh lặp For gồm: Câu lệnh lặp For (j)   b := b + a ; ­ Câu lệnh trên chỉ được thực hiện khi i ≤ 2 + Lệnh For (j): ­ Biến đếm: j  ­ Giá trị đầu: 1 ­ Giá trị cuối: 3 ­ Số lần lặp = Giá trị cuối – giá trị đầu + 1 = 3 ­1 +1 = 3 ­ Câu lệnh cần thực hiện trong lệnh lặp For: a := a + j ; ­ Câu lệnh trên chỉ được thực hiện khi j ≤ 3 + Một lần lặp trong For (i) sẽ thực hiện 3 lần lặp trong For (j). Như vậy,  lệnh For (i) lặp 2 lần và lệnh For (j) lặp 3 lần sẽ thực hiện tất cả 6 lần ( 2 x  3 = 6). + Sau khi xác định xong, ta tiến hành thực hiện các bước theo bảng sau: Bướ Diễn giải và tính toán Ghi giá trị của các biến c 1 ­ Tạo bảng ghi lại các giá trị cho các biến i j a b 1 1 ­ Vì có 4 biến cần điền giá trị nên ta tạo 4  cột ­ a = 1  ­ b = 1 14
  15. ­ i  và j chưa có giá trị vì chưa thực hiện lệnh  lặp For Bắt đầu vào lệnh lặp For (i) ­ i = 0 (gán giá trị đầu là 0 cho i) i j a b 1 1 Bắt đầu vào lệnh lặp For (j) 0 1 2 1 ­ j = 1 (gán giá trị đầu là 1 cho j) ­ a := a + j;  a = 1 + 1 = 2 2 ­ b =1 vì chưa hết 3 lần lăp For (j) ­ Tính toán xong, ta điền các giá trị vào bảng  bên. ­ i = 0 (vì câu lệnh trong For (i) chưa thực  hiện xong) i j a b 1 1 ­ Sau khi thực hiện xong câu lệnh trên a:= a  0 1 2 1 + j, lệnh lặp For (j) sẽ lặp lại lần thứ 2 với  0 2 4 1 các thao tác như lần thứ nhất nhưng trước  3 khi lặp lại biến đếm j phải tăng lên 1. ­ j = 2 (j tự động tăng lên 1) ­ a := a + j;  a = 2 + 2 = 4 ­ b =1 vì chưa hết 3 lần lăp For (j) ­ Tính toán xong, ta điền các giá trị vào bảng  bên. 15
  16. ­ i = 0 (vì câu lệnh trong For (i) chưa thực  hiện xong) i j a b 1 1 ­ Sau khi thực hiện xong câu lệnh trên a:= a  0 1 2 1 + j, lệnh lặp For (j) sẽ lặp lại lần thứ 3 với  0 2 4 1 các thao tác như lần thứ nhất nhưng trước  0 3 7 8 khi lặp lại biến đếm j phải tăng lên 1. 4 ­ j = 3 (j tự động tăng lên 1) ­ a := a + j;  a = 4 + 3 = 7 ­ Vòng lặp For (j) kết thúc và lệnh b := b + a;  được thực hiện ­ b := b + a;  b = 1 + 7 = 8  ­ Tính toán xong, ta điền các giá trị vào bảng  bên. ­ Lệnh lặp For sẽ lặp lại lần thứ 2 các thao  tác như lần thứ nhất nhưng trước khi lặp lại  i j a b 1 1 biến đếm i phải tăng lên 1. 0 1 2 1 ­ i = 1 0 2 4 1 ­ Vòng lặp For (j) lại khởi động từ đầu. 0 3 7 8 5 ­ j = 1 (gán giá trị đầu là 1 cho j) 1 1 8 8 ­ a := a + j;  a = 7 + 1 = 8 ­ b = 8 vì chưa hết 3 lần lăp For (j) ­ Tính toán xong, ta điền các giá trị vào bảng  bên. 16
  17. ­ i = 1 (vì câu lệnh trong For (i) chưa thực  hiện xong) i j a b 0 1 2 1 ­ Sau khi thực hiện xong câu lệnh trên a:= a  0 2 4 1 + j, lệnh lặp For (j) sẽ lặp lại lần thứ 2 với  0 3 7 8 các thao tác như lần thứ nhất nhưng trước  1 1 8 8 6 khi lặp lại biến đếm j phải tăng lên 1. 1 2 10 8 ­ j = 2 (j tự động tăng lên 1) ­ a := a + j;  a = 8 + 2 = 10 ­ b =8 vì chưa hết 3 lần lăp For (j) ­ Tính toán xong, ta điền các giá trị vào bảng  bên. ­ i = 1 (vì câu lệnh trong For (i) chưa thực  hiện xong) i j a b 1 1 ­ Sau khi thực hiện xong câu lệnh trên a:= a  0 1 2 1 + j, lệnh lặp For (j) sẽ lặp lại lần thứ 3 với  0 2 4 1 các thao tác như lần thứ nhất nhưng trước  0 3 7 8 khi lặp lại biến đếm j phải tăng lên 1. 1 1 8 8 1 2 10 8 7 ­ j = 3 (j tự động tăng lên 1) 1 3 13 21 ­ a := a + j;  a = 10 + 3 = 13 ­ Vòng lặp For (j) kết thúc và lệnh b := b + a;  được thực hiện ­ b := b + a;  b = 13 + 8 = 21  ­ Tính toán xong, ta điền các giá trị vào bảng  bên.  NHẬN XÉT: ­ Sau khi i = 1 và thực hiện xong câu lệnh trong vòng lặp For (i) thì cũng  kết thúc cả hai lệnh lặp For. ­ Số lần lặp tất cả là 6 lần cho cả hai vòng lặp như ta xác định ban đầu. 17
  18. ­ Đoạn chương trình trên chạy xong, ta thu được kết quả là:  i = 1; j = 3; a = 13; b=21; ­ Tạo đoạn chương trình trên thành một chương trình hoàn chỉnh trong  Pascal.  Program Vidu3; Vari,j,a,b : integer; Begin            a : = 1; b := 1;            For i := 0 to 1 do     Begin           For j := 1 to 3 do                Begin                     a := a + j;                     If j 
  19. Var i, j, a, b : integer; Begin            a : = 1; b := 1;            For i := 0 to 1 do     Begin           For j := 1 to 3 do a := a + j; b : = b + a  ;             writeln(i, j, a, b);            Readln;    End; End. ­  Ta thay số lần lặp trong chương trình lên nhiều lần hơn hoặc cho học   sinh thực hiện bài các bảng cửu chương (vì có dạng hai vòng lặp lồng   nhau) ­  Chạy lại chương trình cho học sinh quan sát. 3. Mối quan hệ giữa các giải pháp, biện pháp: Pascal là một môn học rất trừu tượng, rất khó đòi hỏi về trí tuệ, tư duy  rất cao. Nhưng với trình độ  nhận thức của học sinh lớp 8, Bộ  Giáo dục đã  đưa ra một chương trình không cao lắm giống như là giới thiệu cho học sinh   biết một ngôn ngữ lập trình, biết thế nào là lập trình và qua đó khơi lên nguồn  sáng tạo cho những em học sinh thực sự yêu thích, say mê môn học này. Khi các em nắm rõ phần lý thuyết, ý nghĩa của những câu lệnh thì các  em sẽ  cố  gắng tư  duy và thực hiện một cách tự  tin. Có như  thế  khi các em   gặp một thắc mắc hoặc trở  ngại nào đó thì các em có thể  tìm gặp bạn bè,  thầy cô để  thảo luận, trao đổi để  giải quyết được những khó khăn khi làm  quen với Pascal. Các em cũng có thể tìm hiểu trong những sách viết về Pascal   hoặc một số  trang web, diễn đàn   trên mạng để  học hỏi them và sưu tầm   thêm một số bài tập phù hợp với chương trình mình đã học từ  đơn giản đến   nâng cao. 19
  20. Khi gặp một bài toán nào có câu lệnh For hơi khó hiểu, các em có thể  thực hiện bằng tay theo cách mà chúng ta vừa thực hiện  ở trên, sau đó kiểm  chứng lại bằng, một chương trình hoàn chỉnh. 4. Kết quả khảo nghiệm, giá trị khoa học của vấn đề nghiên cứu, phạm   vi và hiệu quả ứng dụng: Bản thân tôi đã trực tiếp vận dụng các giải pháp vào lớp dạy thì thấy  phương pháp này mang lại hiệu quả một cách thiết thực, chất lượng bộ môn  tăng dần. Các em học sinh yếu trước đây, đặc biệt một số  em học sinh dân tộc  thiểu số tự mình suy nghĩ làm bài và còn mạnh dạn phát biểu xây dựng bài.  Trước đây, môn Pascal này  các em rất ngại học vì độ  trừu tượng của   nó nên số lượng học sinh hiểu bài, trên trung bình chỉ khoảng 30% nhưng nay   con số  này đã thay đổi lên khoảng 70% đến 80%. Đó là điều đáng mừng cho   những giáo viên dạy môn Pascal lớp 8. Một điều cũng rất hay là khi đầu năm tôi giới thiệu môn Pascal cho các  em biết về độ khó, độ hay của nó thì các em cho biết đã được các anh chị lớp   trước “trấn an tư  tưởng” khi bắt  đầu làm quen với Pascal nên các em đã  chuẩn bị tinh thần để tiếp hội môn học này. Đây là điều mà tôi rất mừng khi  các em để tâm tới không chỉ câu lệnh lặp mà các em đã được phân tích kỹ mà   cả các phần khác trong chương trình Pascal lớp 8. C. KẾT LUẬN VÀ KIẾN NGHỊ I. Kết luận: Ngôn ngữ lập trình nói chung đóng vai trò rất quan trọng trong việc xây  dựng các chương trình  ứng dụng để  phục vụ  cho cuộc sống. Nhờ  sự  phát  triển của tin học ­ trong đó các nhà lập trình chuyên nghiệp đóng vai trò không  nhỏ  mà hiện nay hầu hết các lĩnh vực trong xã hội đã ứng dụng được tin học   để giải quyết công viêc nhanh, hiệu quả và chính xác hơn. 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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