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

SKKN: Kích thích hứng thú học tập bộ môn Tin học thông qua dạy học chương trình con Tin học 11

Chia sẻ: Trần Thị Ta | Ngày: | Loại File: DOCX | Số trang:32

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

Mục tiêu của đề tài là Góp phần đổi mới phương pháp dạy học sinh đại trà và học sinh tham dự kì thi học sinh giỏi môn Tin học theo hướng phát huy tính tích cực, chủ động và sáng tạo của học sinh giúp học sinh tiếp thu tri thức một cách có hiệu quả. Góp phần gây hứng thú học tập môn Tin học cho học sinh lớp 11 và học sinh tham gia thi chọn học sinh giỏi, tránh việc học thụ động, học vẹt. Giúp học sinh lĩnh hội tri thức một cách khoa học, củng cố và khắc sâu kiến thức.

Chủ đề:
Lưu

Nội dung Text: SKKN: Kích thích hứng thú học tập bộ môn Tin học thông qua dạy học chương trình con Tin học 11

  1. SỞ GIÁO DỤC ĐÀO TẠO VĨNH PHÚC TRƯỜNG THPT YÊN LẠC 2 =====***===== BÁO CÁO KẾT QUẢ  NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN Tên sáng kiến: KÍCH THÍCH HỨNG THÚ HỌC TẬP BỘ MÔN TIN HỌC THÔNG QUA DẠY HỌC CHƯƠNG TRÌNH CON  TIN HỌC 11 Tác giả sáng kiến: CHU THỊ THU Mã sáng kiến: 28.62.01
  2. Yên Lạc, năm 2020 Trang 2   
  3. DANH MỤC CÁC CHỮ VIẾT TẮT 1.   THPT: Trung học phổ thông  2.   HSG: Học sinh giỏi  3.   HS: Học sinh  4.   SKKN: Sáng kiến kinh nghiệm  5.   NXB: Nhà xuất bản  6.   NH: Năm học  7.   KK: Khuyến khích  8.   HSDT: Học sinh dự thi 9.   CTC: Chương trình con
  4. MỤC LỤC  Trang 4   
  5. BÁO CÁO KẾT QUẢ   NGHIÊN CỨU, ỨNG DỤNG SÁNG KIẾN  1. LỜI GIỚI THIỆU  Để rèn luyện kỹ năng lập trình cho học sinh khá, giỏi trước khi chọn đội tuyển  đi thi học sinh giỏi môn Tin học có rất nhiều cách mà giáo viên có thể áp dụng đối với   các đối tượng học sinh khác nhau. Các trường có điểm thi đầu vào cao thì việc rèn  luyện kỹ năng sẽ có nhiều thuận lợi nhưng với các trường có điểm thi đầu vào trung   bình và thấp thì việc rèn luyện kỹ năng lập trình cho các em gặp rất nhiều khó khăn.  Tuy nhiên trong cùng một trường với các đối tượng học sinh khác nhau giáo viên có  thể  áp dụng nhiều biện pháp khác nhau để  rèn luyện kỹ  năng lập trình cho học sinh   với hiệu quả khác nhau. Các giáo viên đều hướng dẫn cho học sinh biết một bài toán   có thể được giải với nhiều thuật toán khác nhau và mỗi thuật toán chỉ giải được một   bài toán hoặc một lớp bài toán, nhưng thực tế  cho thấy, đứng trước một bài toán tin   học đặc biệt là bài toán về xâu kí tự học sinh thường lúng túng khi lập trình việc này  cũng có thể do nhiều nguyên nhân, chẳng hạn không biết xử lý dữ  liệu như  thế  nào,  không biết đọc, ghi dữ liệu ra sao… , mặt khác học sinh không có máy để  thực hành  thêm  ở  nhà. Tuy nhiên, khi học sinh được rèn luyện từ  những bài cơ  bản cho đến   những bài toán có dạng tương tự  hoặc dạng mở  rộng từ một bài toán cơ  bản nào đó  trong sách giáo khoa, hoặc một bài toán cơ  bản nào đó mà các em biết thì các em có   thể  xây dựng và có hứng thú để  xây dựng thuật toán cho bài toán đặt ra. Vì vậy giáo   viên có thể  chọn các bài tập cơ  bản liên quan đến mảng một chiều, mảng hai chiều,   xâu kí tự từ đó mở rộng và phát triển đến các bài toán có sử dụng chương trình con để  để rèn luyện kỹ năng lập trình và kích thích hứng thú học tập bộ môn Tin học cho học   sinh.  Dĩ nhiên cách làm này không mới với giáo viên nhưng cách chọn các bài toán cơ  bản như  thế  nào để  học sinh có thể  vận dụng và kích thích được húng thú học tập  môn Tin học cho học sinh đó lại là điều đáng quan tâm.    Chương trình con là một trong những vấn đề hay gặp trong lập trình nói chung  và lập trình pascal nói riêng. Chương trình tin học lớp 11 đã giới thiệu và có một số ví   dụ  về  chương trình con nhưng trong quá trình học lập trình khô khan, để  học sinh   không nhàm chán và tránh mắc phải những sai lầm khi lập trình lại kích thích hứng thú   học tập cho học sinh không phải là việc đơn giản. Vì những lý do trên tôi chọn đề tài   “Kích thích hứng thú học tập bộ môn Tin học thông qua dạy học chương trình con   tin học 11” nhằm cung cấp cho học sinh những kiến thức khái quát hơn về  chương  trình con, rèn luyện kỹ năng lập trình và kích thích hứng thú học tập bộ  môn này cho  học sinh  thông qua một số bài toán cụ thể.  Trang 5
  6. 2. TÊN SÁNG KIẾN  “Kích thích hứng thú học tập bộ môn Tin học thông qua dạy học chương  trình con tin học 11” 3. TÁC GIẢ SÁNG KIẾN  ­  Họ và tên: Chu Thị Thu  ­  Địa chỉ: Trường THPT Yên Lạc 2 – Huyện Yên Lạc – Tỉnh Vĩnh Phúc  ­  Số điện thoại: 037467972   E_mail:chuthu.yl2@gmail.com  4. CHỦ ĐẦU TƯ TẠO RA SÁNG KIẾN  ­ Họ tên: Chu Thị Thu  ­ Trình độ chuyên môn: Đại học sư phạm Tin học  ­ Đơn vị công tác: Trường THPT Yên Lạc 2– Huyện Yên Lạc – Tỉnh Vĩnh Phúc 5. LĨNH VỰC ÁP DỤNG SÁNG KIẾN  Ứng dụng chương trình con trong lập trình giảng dạy học sinh lớp 11 môn Tin   học và bồi dưỡng học sinh tham gia kì thi chọn học sinh giỏi các cấp môn Tin học.  6. NGÀY SÁNG KIẾN ĐƯỢC ÁP DỤNG   Từ ngày 01/08/2018  7. MÔ TẢ BẢN CHẤT CỦA SÁNG KIẾN  7.1. Tổng quan các vấn đề nghiên cứu  7.1.1. Mục đích nghiên cứu  Góp phần đổi mới phương pháp dạy học sinh đại trà và học sinh tham dự kì thi   học sinh giỏi môn Tin học theo hướng phát huy tính tích cực, chủ  động và sáng tạo   của học sinh giúp học sinh tiếp thu tri thức một cách có hiệu quả.  Góp phần gây hứng thú học tập môn Tin học cho học sinh lớp 11 và học sinh   tham gia thi chọn học sinh giỏi, tránh việc học thụ  động, học vẹt. Giúp học sinh lĩnh  hội tri thức một cách khoa học, củng cố và khắc sâu kiến thức.  Qua đề tài này tôi mong muốn cung cấp cho học sinh một trong những vấn đề mà   các em đang gặp phải trong khi lập trình thông qua việc sử dụng chương trình con giúp   các em chủ động hơn trong học tập, tích luỹ kiến thức, kỹ năng lập trình.  7.1.2. Bản chất đối tượng nghiên cứu  Đưa ra hệ  thống lý thuyết về  chương trình con và  ứng dụng chương trình con  giải các bài tập trong ngôn ngữ lập trình Pascal giúp học sinh lĩnh hội tri thức, giúp các  Trang 6
  7. em tích cực, chủ động tích lũy kiến thức, kích thích hứng thú học tập bộ môn Tin học.  Qua đó, học sinh phát triển được tư duy logic thông qua hệ thống bài tập giúp các em  rèn luyện được tính tự  giác, tính kỉ  luật, thói quen tự  học đó là những đức tính rèn   luyện tốt của học sinh.  7.1.3. Đối tượng, phạm vi nghiên cứu   Đối tượng: Chương trình con trong lập trình    Phạm vi: Các vấn đề về chương trình con trên ngôn ngữ lập trình Pascal.  7.1.4. Phương pháp nghiên cứu  Phương pháp    Nghiên cứu lí luận chung.    Khảo sát điều tra thực tế dạy học.    Tổng hợp đúc rút kinh nghiệm.  Cách thực hiện   Trao đổi với đồng nghiệp, tham khảo ý kiến giáo viên cùng bộ  môn. Liên hệ  thực tế  trong nhà trường, áp dụng và đúc rút kinh nghiệm qua quá trình giảng dạy.   Thông qua việc giảng dạy trực tiếp học sinh khối 11 và học sinh tham gia thi chọn học   sinh giỏi môn Tin học lớp 11.  7.1.5. Giới hạn về không gian của phương pháp nghiên cứu  Đề  tài được đề  cập với đồng nghiệp và thực nghiệm sư  phạm qua các em học   sinh lớp 11A1, 11A2 và các em học sinh tham gia dự kì thi chọn học sinh giỏi môn Tin   học lớp 11 năm học 2017­2018, năm học 2018­2019 7.1.6. Phạm vi nghiên cứu  Tôi đã nghiên cứu đề tài này trong suốt quá trình giảng dạy và thực nghiệm đề tài   này trong năm học 2018­2019. 7.2. Phần nội dung  7.2.1. Cơ sở lý luận    Đứng trước một bài toán lập trình tin học học sinh thường lúng túng và không  biết tìm thuật toán của bài toán từ đâu và tìm như thế nào? Một số học sinh khá, giỏi  trong đội thì có thói quen là mò mẫm và thử  nghiệm để  tìm lời giải, điều đó có thể  dẫn tới kết quả đúng hoặc sai hoặc chệch hướng giải quyết bài toán, hiệu suất để tìm  thuật toán như  thế  là không cao, một số  học sinh kém hơn thì không biết cách tìm   thuật toán từ đâu và điều đó gây tâm lý chán nản cho các em. Với tình hình ấy để giúp  học sinh định hướng tốt hơn trong quá trình tìm thuật toán, trước khi có thể  tự  tìm  được thuật toán tốt hơn thì người giáo viên cần tạo cho học sinh thói quen tìm thuật   Trang 7
  8. toán từ các các bài toán cơ bản quen thuộc mà các em đã biết, khai thác các yếu tố đặc   trưng của một số bài toán cơ bản sử dụng chương trình con để giải quyết cho các bài  toán mới. Việc áp dụng thuật toán của các bài toán cơ  bản về  chương trình con xây  dựng thuật toán cho các bài toán tương tự hoặc các bài toán mở rộng từ các bài toán cơ  bản đó là một quá trình giúp học sinh kích thích hứng thú học tập và rèn luyện kỹ năng  lập trình.  7.2.2. Cơ sở thực tiễn  Trường tôi nằm dưới chân đê dải sông Hồng nên đa số  học sinh  ở  nông thôn nên   chưa có cơ hội, điều kiện tiếp xúc với công nghệ và máy tính. Vì vậy, tin học là một môn   học tương đối lạ lẫm và khó đối với học sinh trường tôi. Học sinh học trên lớp đã không  có hứng thú học tin học đặc biệt là các bài lập trình vì các em không học thêm hay tin học  không phải là môn mà các em thi đại học. Điều này dẫn đến ý thức tự giác của học sinh   chưa cao, đặc biệt là đối với môn học lập trình Tin học lớp 11. Những thao tác thực hành   thì đa phần học sinh chưa nhớ vì ở nhà các em cũng không có máy tính để học sinh rèn  luyện các kỹ năng thực hành cho học sinh. Phần chương trình con là phần các em học rất   ít trên tiết lý thuyết. Cơ sở trên đã giúp tôi áp dụng đề tài kích thích hứng thú học tập bộ  môn Tin học thông qua chương trình con trong lập trình Pascal giảng dạy cho học sinh  khối 11 và áp dụng cho học sinh tham dự kì thi chọn học sinh giỏi cấp tỉnh và cấp quốc   gia.  7.2.3. Nội dung cụ thể  Tất cả  các nội dung, các ví dụ, bài tập trong đề  tài này được xây dựng trên ngôn  ngữ lập trình Pascal  I. Khái niệm chương trình con A. Khái niệm  Để  viết chương trình giải các bài toán lớn, phức tạp người lập trình có thể  chia  thành nhiều bài toán nhỏ, mỗi bài toán là một dãy lệnh mô tả một số thao tác nhất định  (gọi là chương trình con). Sau đó ghép nối các chương trình con thành chương trình  chính. Chương trình con là dãy các lệnh mô tả  một số thao tác nhất định và có thể  được   thực hiện (được gọi) từ nhiều vị trí khác nhau trong chương trình.  B. Lợi ích của việc sử dụng chương trình con Tránh được việc phải lặp đi lặp lại cùng một dãy lệnh. Hỗ trợ việc thực hiện các chương trình lớn Phục vụ cho quá trình trừu tượng hóa Mở rộng khả năng ngôn ngữ Trang 8
  9. Thuận tiện cho việc phát triển nâng cấp chương trình II. Phân loại và cấu trúc chương trình con A. Phân loại Trong nhiều ngôn ngữ lập trình, chương trình con thường gồm hai loại:  Hàm (Function): Là chương trình con thực hiện một số thao tác nào đó và trả về  một giá trị qua tên của nó. Ví dụ:  Sin(x) nhận vào giá trị thực x và trả về giá trị sin x Sqrt(x) nhận vào gía trị x trả về giá trị căn bậc hai của x Length(x) nhận vào xâu x và trả về độ dài của xâu x  Thủ tục (Procedure): Là chương trình con thực hiện một số thao tác nào đó, và   không trả về giá trị nào qua tên của nó. Ví dụ: Các thủ tục vào/ra chuẩn hay thủ tục xử lí xâu: writeln, readln, delete B. Cấu trúc chương trình con [] Phần đầu:  Cấu trúc chương trình con tương tự  chương trình chính, chương trình  chính, nhưng nhất thiết phải có phần đầu để  khai báo tên, nếu là  Hàm  thì phải có  khai báo kiểu dữ liệu trả về. Phần khai báo: Có thể  khai báo cho dữ liệu vào ra, các hằng được sử dụng trong  chương trình con Phần thân: Là dãy các lệnh được thực hiện trong chương trình con từ dữ liệu vào và  được  kết quả như mong muốn. Phần này luôn nằm giữa hai từ khóa là Begin và End.  Ở giữa là các thao tác cần thực hiện. Sau từ khóa End là dấu chấm phẩy (;). o  Một số lưu ý:    Một chương trình con có thể  có hoặc không có tham số  hình thức, có thể  có   hoặc không có biến cục bộ. Tham số hình thức: Là tham số được đưa vào khi định nghĩa chương trình con Tham số thực sự: Là tham số được viết trong lời gọi chương trình con Biến cục bộ: Là các biến được khai báo trong chương trình con Trang 9
  10. Biến toàn phần: Là các biến được khai báo trong chương trình chính  Trong thân hàm cần có lệnh:  :=;  Kết thúc chương trình con là dấu chấm phẩy (;) C. Thực hiện chương trình con  Để thực hiện (gọi) một chương trình con, ta cần phải có lệnh gọi nó tưởng tự  lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình con với tham số (nếu   có) là các hằng và biến chứa dữ  liệu vào và ra tương  ứng với các tham số  hình   thức đặt trong cặp ngoặc ( và ). Các hằng và biến này được gọi là các tham số  thực số thực sự.  Lệnh gọi chương trình con sẽ thực hiện từ trên xuống dưới trong chương trình   chính.  Khi thực hiện gọi chương trình con, các tham số  hình thức dùng để  nhập dữ  liệu vào của tham số thực sự tương  ứng. Khi xuất dữ liệu thì tham số  hình thức   lưu trữ dữ liệu ra sẽ trả giá trị cho tham số thực sự tương ứng D. Khai báo CTC – Nhắc lại cấu trúc của một chương trình PROGRAM Tên_chương_trình; { Tên chương trình} USES ...; {Khai báo thư viện} CONST ...;{Khai báo hằng} TYPE ...;{Khai báo kiểu} VAR ...;{Khai báo biến} Khai báo CTC BEGIN {Chương trình chính}     ; END. Như vậy phần khai báo CTC nằm ở phần cuối của phần khai báo a. Khai báo và lời gọi hàm – Khai báo: FUNCTION (Danh sách ác tham số):; [Khai báo Const, Type, Var] BEGIN     ;     :=; Trang 10
  11. END; Chú ý luôn có phép gán tên hàm cho giá trị để hàm trả về giá trị khi được gọi Ví dụ: tính tổng của 2 số x và y Function tong(x,y:integer):integer; {Do có giá trị trả về} var s:integer; begin     s:=x+y;     tong:=s; end; – Lời gọi hàm (danh sách các tham số thực); Ví dụ:   tong(4,5); b. Khai báo và lời gọi thủ tục – Khai báo: PROCEDURE (Danh sách các tham số);{không có giá trị trả về} [Khai báo Const, Type, Var] BEGIN     ; END; Ví dụ: Procedure inso(n:integer); var i:inteher; Begin     for i:=1 to n do         write(i:5); end; – Lời gọi thủ tục (danh sách các tham số thực); Ví dụ: inso(6); Trang 11
  12. E. Biến toàn cục và biến cục bộ  Biến toàn cục là biến được khai báo trong chương trình chính. Các biến này co   thẻ được dùng ở mọi nơi trong chương trình và tồn tại trong suốt thời gian làm việc  của chương trình.  Biến cục bộ (biến địa phương) là các biến được khai báo trong CTC. Các biến   này chỉ được sử dụng trong phạm vi ctc mà nó được khai báo. Sau khi kết thức ctc  các biến này sẽ không còn tồn tại. Ví dụ: PROGRAM vidu; Var a,b,c:integer; {3 biến toàn cục} PROCEDURE thutuc(n:integer);{n là biến cục bộ} var i:integer; {i là biến cục bộ} begin     for i:=1 to 10 do writeln(i); end; BEGIN     a:=5;b:=6;c:=8;     thutuc( a);     thutuc( b);     thutuc( c);     readln; END. Trong trường họp biến cục bộ trùng tên với biến toàn cục thì máy không bị nhầm lẫn  mà sẽ thực hiện trên biến cục bộ. Biến toàn cục không bị ảnh hưởng. F. Cách truyền tham số trong chương trình con  CTC không cần có tham số (sau tên ctc) nếu không dùng đến chúng hoặc dùng trực  tiếp biến toàn cục  Khi truyền tham số các tham số  trong lời gọi ctc phải đúng thứ  tự  và kiểu tương  ứng với khi khai báo ctc. Ví dụ: Procedure inso(a:integer; ch:char); begin     {các lệnh của CTC} end; {gọi} inso(13,'a'); {lời gọi đúng} inso('a',13); {loi goi sai} inso(13);{lời gọi sai} Trang 12
  13.  Tham số hình thức (đối) là các tham số sau tên hàm và thủ tục trong khai báo.  Tham số thực sự là các tham số sau tên hàm và thủ tục trong lời gọi.  Tham biến: là các tham số được khai báo sau từ khóa var. Các tham số thực phải là   các biến chứ không được là giá trị. Tham biến có thể được thay đổi trong CTC và sau  khi ra khỏi CTC nó vẫn giữ giá trị thay đổi đó.  Tham trị: là các tham số được khia báo mà không đứng sau từ khóa var. Các tham số  thực có thể là các giá trị, hằng, biến. Tham trị có thể thay đổi trong ctc nhưng sau khi   kết thúc ctc giá trị của nó trở về như ban đầu.  Các tham số trong hàm luôn là các tham trị, các tham số trong thủ tục có thể là tham   trị hoặc tham biến.  Phân biệt cách sử dụng hàm và thủ tục Hàm khác thủ tục ở chỗ hàm trả về một giá trị cho lệnh gọi thông qua tên hàm còn thủ  tục thì không. * Hàm (Function)  Kết quả của bài toán trả về 1 giá trị duy nhất (kiểu vô hướng, kiểu string hoặc   kiểu con trỏ).   Lời gọi CTC cần nằm trong các biểu thức tính toán. * Thủ tục (Procedure)  Kết quả của bài toán không trả về giá trị nào hoặc trả về nhiều giá trị hoặc trả  về kiểu dữ liệu có cấu trúc (Array, Record, File)  Lời gọi CTC không nằm trong các biểu thức tính toán.  Chú ý: Nếu một công việc có thể  làm bằng hàm thì chắc chắn sẽ  làm được   bằng thủ  tục {tuy nhiên sẽ  phức tạp hơn khi dùng hàm} nhưng một chương trình  làm bằng thủ tục thì chưa chắc ta đã làm được bằng hàm. Đối với Borland Pascal 7.0 ta có thể gọi hàm như gọi một thủ tục. Không nhất thiết   phải lấy giá trị  trả  về. Để  thực hiện được điều này trong menu Options >Compiler  cần khai báo cú pháp mở rộng (Extended syntax), hoặc trong chương trình cần có dẫn   hướng biên dịch {$ X+}. Nếu không, khi biên dịch (gõ F9) Pascal sẽ  thông báo lỗi   “Error 122: Invalid variable reference”. G. Tính đệ quy của chương trình con Một CTC trong Pascal có thể  gọi về chính nó. Một lời gọi như  thế gọi là một  lời gọi đệ quy. Ta xét ví dụ sau: Nhập vào 1 số ngun và tính n!. Ta đã biết n! = 1 nếu n =0  Trong trường hợp n>=1 ta có n!=n.(n­1)! Hàm tính n! Trang 13
  14. function giai_thua(n:integer):longint; begin     if n=0 then giai_thua:=1     else giai_thua:=n*giai_thua(n­1); end; Lưu ý:  Khi sử dụng đệ quy phải có điều kiện kết thúc đệ quy (TH suy biến). Trong ví   dụ ta xét điều kiện kết thúc đệ  quy chính là n=0. Nếu không có điều kiện kết   thúc này chương trình của ta sẽ lặp vô hạn.  Luôn có lời gọi đệ quy, trong TH trên là lời gọi giai_thua(n­1); H. Một số ví dụ Ví dụ  1: Cho số  nguyên dương N (N 0 SoDu = số dư của N chia cho 2. N = N chia cho 2. Bổ sung chữ số SoDu vào số S thành một chữ số Trả về kết quả cuối cùng của S. ­  Viết thân chương trình chính với nội dung dùng để  kiểm tra kết quả thực hiện của   hàm. Khai báo biến N, M Thông báo nhập và nhập giá trị cho biến N Gán giá trị M bằng kết quả trả về của hàm Dec2Bin( N ) In thông báo về kết quả số nhị phân chuyển đổi được (giá trị của M) Gọi hàm readln trước khi kết thúc chương trình Chương trình: Program Doi_Co_So; Uses crt; Var N:integer; { 1. Thu tuc chuyen so tu nhien n cho truoc sang ket qua tra ve he co so 2 } Function Dec2Bin (  n:integer ):integer; Var S,So,Du:integer; Begin Trang 14
  15.       S := 0; So := n ;       While ( So > 0) do       Begin            Du := So mod 2 ;            So := So div 2 ;            S := S * 10 + Du;       End;       Dec2Bin:= S ; End; { 2. Than chuong trinh chinh dap ung yeu cau bai toan } BEGIN       clrscr;       write( 'Nhap so N =' ); readln(N );       writeln(' Dang nhi phan cua N la ', Dec2Bin(N) );       readln; END. Ví dụ 2: Cho hai số nguyên dương a, b (a,b
  16. Begin      For  k := a  to  a*b do                    { Lap voi moi i co gia tri tu a den 1}          If ((k mod a = 0) and ( k mod b = 0)) then  { Kiem tra a, b cung chia het cho k? }                   Break;                                { break de thoat, luu giu lai gia tri cua k.}      BSCNN:= k; End; * Mở rộng bài toán: Từ  ví dụ 2, viết chương trình tối giản phân số  n/m. Với n, m là hai số  nguyên   dương không lớn hơn 105. Ví dụ  3: Cho số  nguyên dương N (N
  17. Break; End      { Neu dung thi khong la so nguyen to va thoat khoi vong lap }             Else                     Writeln('N la SNT');        { N la SNT} End; Ví dụ 4: Viết chương trình thực hiện lần lượt các công việc sau: 1. Lập thủ tục nhập ba số thực dương a , b , c (a,b,c c) and (b+c>a) and (a+c>b)) then          Writeln(' Ba canh tren tao thanh tam giac.dien tich', Dientich(a,b,c) )      Else          Writeln('Ba canh tren khongtao thanh tam giac'); End; Trang 17
  18. { 4. Than chuong trinh chinh } BEGIN      NhapABC(a,b,c);      KiemTra_InDienTich (a,b,c); END. Ví dụ. 5: Viết chương trình hoàn chỉnh thực hiện phân tích ra N ra thành các thừa số  nguyên tố.             Ví dụ: N = 1260 = 2 . 2 . 3 . 3 . 5 . 7 Hướng dẫn:  Viết hàm nhập số  N. Lưu ý, hàm nhập cần truyền tham số  N theo dạng tham   biến để lưu lại giá trị đã nhập vào.  Viết hàm phân tích số  N ra các thừa số  nguyên tố  và in các thừa số  đó ra màn  hình với ý tưởng thuật toán: Chia N cho số nguyên tố u (nhỏ nhất là 2). Trong khi N còn chia hết cho u thì tiến hành phân tích N với u là thừa số. Giảm N đi u   lần. Nếu N không chia hết cho u, thi tăng u lên 1. Quá trình lặp lại với u từng bước tăng lên 1 nếu N không chia hết cho u. N từng bước   giảm xuống u lần nếu N chia hết cho u. Quá trình lặp lại đến một mức u tăng lên và N giảm xuống để N = u, khi đó giá trị mới   của N sẽ là 1. Chương trình mẫu Program Phan_Tich_Thua_So; Uses crt; Var  N : integer; { 1. Thu tuc nhap so N. }  Procedure NhapSoN( var NN : Integer );  Begin          NN := 0; {Gan khoi dau bang 0 de vao vong lap, vong lap dung khi nhap khac 0}          While ( N = 0 ) do          Begin                Write( 'Nhap N=' ); Readln(NN );          End;  End;  {  2. Thu tuc phan tich N ra thanh cac thua so nguyen to }  Procedure PhantichSoN ( Var  N1 : Integer );  Var u,dem:Integer;  Begin Trang 18
  19.       If ( N1 > 1 ) Then       Begin                u := 2; dem := 0;               While ( N1 > 1  ) do                  If ( N1 mod u = 0 ) Then                  Begin                           dem:=dem+1;                           Writeln( u);                           N1 := N1 div u;                  End                  Else                        u:=u+1;      End      Else           Writeln(' Khong the phan tich duoc' );  End; { 3. Than chuong trinh chinh  }  BEGIN        Clrscr;        Writeln('Phan tich so N thanh tich cua cac so nguyen to :' );        NhapSoN( N );        PhantichSoN( N );        Writeln ('Nhan Enter de ket thuc ...' );        Readln; END. J. Bài tập áp dụng Bài tập 1:             Viết chương trình giải phương trình bậc hai với yêu cầu sử dụng các chương  trình con để giải quyết các trường hợp xãy ra của delta. Mã chương trình: Program Giai_PT_bac_hai; uses crt; var a,b,c,delta:real; Procedure delta_duong; begin write('Phuong trinh co hai nghiem x1=',(­b+sqrt(delta))/(2*a),'x2=',(­ Trang 19
  20. b+sqrt(delta))/(2*a)); end; Procedure delta_khong; begin write('Phuong trinh co nghiem kep x=',­b/(2*a):3:1); end; Procedure delta_am; begin writeln('Phuong trinh vo nghiem'); end; {Chuong trinh chinh} Begin clrscr; write('Nhap a: ');readln(a); write('Nhap b: ');readln(b); write('Nhap c: ');readln(c); delta:=b*b­4*a*c; if delta>0 then delta_duong else if delta = 0 then delta_khong else delta_am; readln end. Nhận xét: Chương trình con cho phép chia nhỏ công việc nhằm đơn giản hoá. Ngoài  ra một công việc nào đó lặp lại nhiều lần trong chương trình nên dùng CTC vì khi đó  mã chương trình sẽ gọn, dễ theo dõi, gỡ rối hơn.   Bài tập 2:              Viết chương trình cho phép nhập hai số vào hai biến, thực hiện đổi giá trị của  hai biến cho nhau. Yêu cầu dùng chương trình con để thực hiện chức năng đổi giá trị. Mã chương trình: Program CTC_1; uses crt; var a,b: real; {­­­­CTC doi gia tri­­­­} Trang 20
ADSENSE

CÓ THỂ BẠN MUỐN DOWNLOAD

 

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