Giáo án Tin học 8 - Chủ đề: Câu lệnh lặp trong ngôn ngữ lập trình Pascal (Tiết 41 đến 48) - Năm học 2016-2017 - Ngô Thị Thùy
- Viết lại cú pháp của câu lệnh for . do
? Số lần lặp trong câu lệnh được tính như thế nào
Cho các nhóm thực hành, gõ chương trình và chạy trên máy
GV đưa ra chương trình
GV gọi bàn trưởng trình bày kết quả
HĐ6: Thực hành bài 1
GV gọi 1 học sinh đọc đầu bài 1 và nêu yêu cầu bài toán.
GV cho hiện màn hình hình vẽ 35 SGK
Yêu cầu học sinh quan sát và tìm hiểu ý nghĩa chương trình SGK.
? Em hãy giải thích câu lệnh:
For i:=1 to 10 do
Writeln(N,x,i:2,=,N*i:3);
GV nhấn mạnh sự thay đổi của biến i và các tham số của câu lệnh để viết bản nhân. Theo em các tham số :2; :3 có ý nghĩa gì?. Đặc biệt quan tâm đến sự thay đổi của biến i và thông tin được lệnh writeln(.) viết ra màn hình.
Nhận xét kết quả
tình huống gợi ván đề, từ đó học sinh biết cách phát hiện vấn đề và tìm hướng giải quyết vấn đề. -Biết áp dụng thành thạo các câu lệnh lặp For... to...do, While...do vào các chương trình trong ngôn ngữ lập trình Pascal. II- Chuẩn bị: 2.1 Chuẩn bị của GV: -Máy tính, máy chiếu. SGK, SGV, tài liệu, Giáo án 2.2 Chuẩn bị của HS: - Đọc trước bài, SGK, Đồ dùng học tập, bảng phụ III- Phân bố tiết dạy trong chủ đề Tổng số tiết của chủ đề: 8 tiết . Trong đó: - Hoạt động 1:HS hiểu các công việc phải thực hiện nhiều lần( tiết 41-Bài 7) - Hoạt động 2:HS hiểu dùng một câu lệnh lặp có thể thay cho nhiều câu lệnh(tiết 41- Bài 7) - Hoạt động 3: Biết một số ví dụ về câu lệnh lặp (tiết 42- Bài 7) - Hoạt động 4: HS hiểu cách tỉnh tổng và tích bằng câu lệnh lặp (tiết 42- Bài 7) -Hoạt động 5: Ôn lại lý thuyết( tiết 43- Bài thực hành số 5) - Hoạt động 6:Thực hành bài 1( tiết 43- Bài thực hành số 5) - Hoạt động 7:Thực hành bài 2( tiết 44- Bài thực hành số 5) - Hoạt động 8: Thực hành bài 3( tiết 44- Bài thực hành số 5) - Hoạt động 9: HS hiểu các hoạt động lặp lại với số lần chưa biết trước( tiết 45- Bài 8) -Hoạt động 10: HS biết một số ví dụ về lệnh lặp với số lần chưa xác định (tiết 45- Bài 8) - Hoạt động 11: Biết một số ví dụ về câu lệnh lặp( tiết 46- Bài 8) - Hoạt động 12 :áp dụng một số bài tập sử dụng câu lệnh lặp ( tiết 46- Bài 8) - Hoạt động 13:Ôn lại lý thuyết( tiết 47- Bài thực hành số 6) - Hoạt động 14:Thực hành bài 1( tiết 47- Bài thực hành số 6) - Hoạt động 15:Thực hành bài 2( tiết 48- Bài thực hành số 6) IV- Tổ chức các hoạt động dạy học Tiết 41 Bài 7: câu lệnh lặp 4.1- ổn định lớp: 4.2- Kiểm tra bài cũ: - Viết cú pháp câu lệnh điều kiện dạng thiếu và dạng đủ 4.3- Tiến trình dạy học: HĐ1: HS hiểu các công việc phải thực hiện nhiều lần( Bài 7) HĐ của thầy HĐ của trò Nội dung GV đưa ra một số ví dụ về công việc phải thực hiện lặp lại hàng ngày. ? Em hãy cho ví dụ về công việc phải thực hiện lặp đi lặp lại ? Trong các ví dụ trên, công việc nào được lặp với số lần biết trước, công việc nào được lặp với số lần không xác định. GV chốt lại kiến thức Nghe Trả lời Trả lời 1- CáC CÔNG VIệC PHảI ThựC HIệN NHIềU LầN Trong cuộc sống, có nhiều hoạt động được thực hiện lặp lại nhiều lần. Khi viết chương trình cho máy tính, để chỉ dẫn cho máy tính thực hiện đúng công việc nhiều khi ta cũng cần phải viết lặp lại nhiều câu lệnh để thực hiện một phép tính nhất định. HĐ2: HS hiểu dùng một câu lệnh lặp có thể thay cho nhiều câu lệnh HĐ của thầy HĐ của trò Nội dung GV: Trong khi viết chương trình, để chỉ dẫn cho máy tính thực hiện đúng công việc phải lặp lại nhiều cần, người lập trình phải làm gì để giảm nhẹ công việc viết chương trình? GV giới thiệu câu lệnh lặp Đưa ra hình vẽ 3 hình vuông SGK, yêu cầu học sinh nhận xét 3 hình vuông đó. ? Thao tác gì được lặp lại trong VD1. GV cho học sinh đọc thuật toán của phép vẽ 3 hình vuông trên và phân tích thuật toán. GV gọi 1 học sinh nêu cách vẽ một hình vuông. ? Tìm thao tác lặp lại trong việc vẽ một hình vuông GV yêu cầu HS thảo luận để nêu thuật toán mô tả các bước vẽ hình vuông. GV lưu ý: biến k được sử dụng như biến đếm để ghi lại số cạnh đã vẽ ược. GV đưa ví dụ 2 SGK, làm thế nào để tính được S? GV nêu thuật toán tỉnh tổng của một trăm số tự nhiên đầu tiên SGK. ? Các hoạt động của vịêc tính tổng này có gì đặc biệt GV nhận xét và đưa ra kết luận để giới thiệu câu lệnh lặp Trả lời Nghe Đọc ví dụ SGK HS: 3 hìnhvuông bằng nhau và mỗi hình là ảnh dịch chuyển sang trái 2 đơn vị của hình kia HS: thao tác vẽ h.vuông lặp lại 3 lần HS trả lời 4 lần thao tác vẽ 1 đoạn thẳng = nhau Đại diện nhóm trả lời Có thể có nhiều cách giống nhau là cùng thực hiện phép +, k.quả của HĐ trước là d.liệu vào của HĐ tiếp theo 2- Câu lệnh lặp - một lệnh thay cho nhiều lệnh Mọi ngôn ngữ lập trình đều có các “cách” để chỉ thị cho máy tính thực hiện phần lặp lại của các thuật toán như trên với một câu lệnh. Đó là các câu lệnh lặp (hay cấu trúc lặp). 4.4- Củng cố: - Khái quát: Cấu trúc lặp với số lần biết trước có ở mọi ngôn ngữ lập trình, mỗi ngôn ngữ lập trình có câu lệnh riêng để mô tả cấu trúc này. 4.5- HDVN: - Đọc và tìm hiểu một số chương trình trong Pascal có dùng câu lệnh lặp và hiểu được ý nghĩa tác dụng của chúng. - Tập viết một số câu lệnh lặp theo cấu trúc đã học. - Làm bài tập 1, 2 SGK/Tr60 Tiết 42 Bài 7: câu lệnh lặp (Tiếp) 4.1. ổn định lớp: 4.2- Kiểm tra bài cũ: - Viết cú pháp câu lệnh điều kiện dạng thiếu và dạng đủ 4.3. Tiến trình bài dạy HĐ3: Biết một số ví dụ về câu lệnh lặp HĐ của thầy HĐ của trò Nội dung Các ngôn ngữ lập trình có nhiều dạng câu lệnh lặp. Đưa ra câu lệnh lặp for ... do và giới thiệu cách viết. GV giải thích ý nghĩa của các thành phần trong câu lệnh: là biến có kiểu nguyên và là các biểu thức có cùng kiểu với phải lớn hơn giá trị đầu GV đưa lên màn hình VD 3 SGK ?Em hãy quan sát chương trình và giải thích ý nghĩa các lệnh trong chương trình GV nêu ví dụ chương trình mô phỏng quả trứng rơi Cho chạy ch.trình trên màn hình ? Trong chương trình trên câu lệnh writeln(‘O’); delay(300); được viết lặp lại bao nhiêu lần ? Em thấy thể nào nếu viết lại lệnh lặp đó tới vài trăm lần hoặc vài nhìn lần GV đưa ví dụ 4 lên màn hình, giải thích yêu cầu của chương trình. Yêu cầu học sinh so sánh 2 chương trình trên, nêu ý nghĩa câu lệnh trong chương trình ở ví dụ 4. GV giới thiệu câu lệnh: begin writeln(‘O’); delay(300); end; Các câu lệnh đơn giản được nằm trong 2 từ khoá begin và end được gọi là câu lệnh ghép trong Pascal. Vậy câu lệnh có thể có mấy loại ? Qua ví dụ 5 em thấy câu lệnh lặp có tác dụng gì HS nghe Quan sát HS: 20 lần Quá vất vả, có thể không thực hiện được 2 loại: câu lệnh đơn và câu lệnh ghép Giảm nhẹ công sức viết ch.trình 3- Ví dụ về câu lệnh lặp Cú pháp câu lệnh lặp trong Pascal có dạng: For := to do ; Trong đó: - là biến đơn có kiểu nguyên - phải lớn hơn HĐ4: HS hiểu cách tỉnh tổng và tích bằng câu lệnh lặp HĐ của thầy HĐ của trò Nội dung GV đưa VD5 lên màn hình gọi 1 học sinh đọc. Đưa chương trình của VD5 lên màn hình, yêu cầu học sinh nhận xét về việc khai báo biến. GV longint cũng là kiểu số nguyên nhưng có thể lưu các số nguyên trong phạm vi -231 đến 231-1. Ta thường khai báo kiểu biến này trong trường hợp các số đó có giá trị lớn. ? Em hãy nêu ý nghĩa câu lệnh lặp trong chương trình GV giải thích lệnh gán giá trị 0 cho S để đảm bảo tính chính xác của kết quả, để phòng trong các chương trình dài, rất có thể trước đó nó đã được gán một gái trị nào đó khác 0. Lưu ý nhắc học sinh nên áp dụng theo cách này. GV đưa VD 6 SGK và giới thiệu công thức tính N! N! = 1.2.3...N GV gọi 2 học sinh tính thử 5!=? 6!=? Việc tính N! với N từ 10 trở lên không phải đơn giản tuy nhiên máy tính có thể làm được việc này đơn giản. Học sinh thảo luận theo nhóm để tìm hiểu phần chương trình trong ví dụ 6 theo yêu cầu: + Nhận xét khai báo biến + ý nghĩa câu lệnh GV: lưu ý việ cgán giá trị cho p và tác dụng của câu lệnh lặp. Nhắc học sinh khai báo biến chứa giá trị cho đủ lớn do N! là số rất lớn. Có thêm kiểu biến mới longint Trả lời 2 HS tính và đọc kết quả Đại diện nhóm trả lời 4- tính tổng và tích bằng câu lệnh lặp Ví dụ 5 - SGK Program tinh_tong; Var n,i:integer; S:longint; Begin Writeln(‘nhap so n=’); readln(n); S:=0; For i:=1 to n do s:=s+i; Writeln(‘tong cua ‘,n,’ so tu nhien dau tien s= ‘,s); Readln; End. Ví dụ 6 - SGK Program tinh_giai_thua; Var n,i:integer; S:longint; Begin Writeln(‘nhap so n=’); readln(n); p:=1; For i:=1 to n do p:=p*i; Writeln(n,’!= ‘,s); Readln; End. 4.4. Củng cố: - HS đọc ghi nhớ SGK. - Trả lời câu hỏi 1, 2, 5 SGK 4.5. HDVN: - Đọc bài đọc thêm ở cuối bài - Làm các câu hỏi và bài tập 3-6 SGK/Tr61 Tiết 43 ,44 Bài thực hành 5 Sử dụng lệnh lặp for ... do 4.1- ổn định lớp: 4.2- Kiểm tra bài cũ: Không kiểm tra 4.3- Tiến trình bài dạy HĐ5: Ôn lại lý thuyết HĐ của thầy HĐ của trò Nội dung - Viết lại cú pháp của câu lệnh for ... do ? Số lần lặp trong câu lệnh được tính như thế nào Cho các nhóm thực hành, gõ chương trình và chạy trên máy GV đưa ra chương trình GV gọi bàn trưởng trình bày kết quả HS trả lời Thực hành Program chao_hoi; Uses crt; Var ten:string; Begin For i:=1 to 3 do Begin Write(‘Nhap ten cua ban: ‘); Readln(ten); Write(‘Chao ban: ‘,ten); End; Readln; end. HĐ6: Thực hành bài 1 GV gọi 1 học sinh đọc đầu bài 1 và nêu yêu cầu bài toán. GV cho hiện màn hình hình vẽ 35 SGK Yêu cầu học sinh quan sát và tìm hiểu ý nghĩa chương trình SGK. ? Em hãy giải thích câu lệnh: For i:=1 to 10 do Writeln(N,’x’,i:2,’=’,N*i:3); GV nhấn mạnh sự thay đổi của biến i và các tham số của câu lệnh để viết bản nhân. Theo em các tham số :2; :3 có ý nghĩa gì?. Đặc biệt quan tâm đến sự thay đổi của biến i và thông tin được lệnh writeln(...) viết ra màn hình. Nhận xét kết quả HS trả lời ý nghĩa: quy định cách trình bày HS thực hành bài 1 Program bai1; Uses crt; Var n, i:integer; Begin Clrscr; Write(‘Nhap so n= ‘); Readln(n); Writeln; Writeln(‘Bang nhan ‘,n); Writeln; For i:=1 to 10 do Writeln(N,’x’,i:2,’=’,N*i:3); Readln End. HĐ7: Thực hành bài 2 Đưa ra màn hình phóng to hình 36 Gọi 1 học sinh nhậ xét cách trình bày kết quả trên hình vẽ về các hàng, cột và tiêu đề. ? Them em làm thế nào để có kết quả đẹp GV làm thế nào để được sự chỉnh sửa như vậy? Đưa ra đoạn chương trình được chỉnh sửa GSK ? Trong đoạn chương trình trên có lệnh gì mới Gotoxy: có tác dụng đưa con trỏ về cột a, dòng b Lệnh wherex: cho biết số thứ tự cột đang có con trỏ Lệnh wherey: cho biết số thứ tự hàng đang có con trỏ Đưa ra ví dụ: gotoxy(5,wherey) và giải thích Cho HS đọc lưu ý SGK Các nhóm thực hành sửa chương trình vào máy Chèn thêm 1 hàng trống giữa các hàng, đẩy các hàng này sang phải một khoảng HS trả lời HS nghe, ghi HS thực hành Chỉnh sửa câu lệnh lặp của chương trình: For i:=1 to 10 do Begin Gotoxy(5,whereY); Writeln(n,’x’,i:2,’=’,N*i:3); Writeln; End; HĐ8: Thực hành bài 3 GV đưa ra hình 37 phóng to ? Màn hình có nội dung gì ? Em hãy nêu yêu cầu của bài GV đưa ra chương trình bài 3 SGK yêu cầu nhóm thảoluận và tìm ý nghĩa các câu lệnh trong chương trình. GV giới thiệu dữ liệu kiểu byte Các nhóm thực hành bài 3, quan sát kết quả, sử dụng thêm lệnh gotoxy để trình bày kết quả ở màn hình. GV đưa thêm một số bài toán như tính tổng 100 số tự nhiên đầu tiên, vừa gà, vừa chó bó lại cho tròn 36 con, 100 chân chẵn. Hỏi có bao nhiêu con mỗi loại để HS tự nghiên cứu và tìm ra cách giải. HS trả lời HS nghe, ghi HS thực hành HS nghe Program bai3; Uses crt; Var i:byte; j:byte; Begin Clrscr; For i:=1 to 9 do Begin For j:=1 to 9 di Write(10*i+j:4); Writeln; End; Readln End. 4.4- Củng cố: - Nhận xét, đánh giá giờ thực hành 4.5- HDVN: - Ôn lại một số câu lệnh có điều kiện, câu lệnh lặp - Đọc phần ghi nhớ, tổng kết cuối bài Tiết 45:Bài 8: lặp với số lần chưa biết trước 4.1- ổn định lớp: 4.2- Kiểm tra bài cũ: ? Nêu tác dụng của câu lệnh lặp ? Viết cú pháp câu lệnh lặp dạng for ... do 4.3- Tiến trình bài dạy HĐ9: HS hiểu các hoạt động lặp lại với số lần chưa biết trước HĐ của thầy HĐ của trò Nội dung ? Để tính tổng các số nguyên từ 1 đến 100, em cần viết câu lệnh để máy tính thực hiện bao nhiêu lần. Trong thực tế có nhiều hoạt động được lặp với số lần chưa thể biết trước. Đưa ra các ví dụ thực tế về công việc phải thực hiện lặp lại với số lần chưa xác định như ví dụ 1 SGK. Trong VD1 (SGK) điều kiện để kết thúc hoạt động lặp của Long là gì? ? Em hãy cho một vài ví dụ về hoạt động được lặp với số lần chưa xác định GV đưa ra VD2 trong SGK, giới thiệu thuật toán Việc thực hiện phép cộng trong thuật toán trên lặp với số lần chưa xác định, hoạt động đó phụ thuộc vào điều kiện gì? phép cộng chỉ dừng khi nào? GV tóm tắt các hoạt động lặp chỉ được dừng lại khi được thoả mãn một điều kiện nào đó. GV Đưa lên sơ đồ mô tả qua hình vẽ 38 SGK và phân tích. ? Em hãy nhắc lại cấu trúc của câu lệnh lặp với số lần biết trước For := to do ; 99 lần Đọc VD1 và trả lời câu hỏi HS trả lời HS trả lời HS nghe, quan sát HS trả lời 1- các hoạt động lặp với số lần chưa biết trước - Trong cuộc sống, có nhiều hoạt động được thực hiện lặp đi lặp lại với số lần chưa xác định. - Các hoạt động lặp với số lần chưa xác định trước phụ thuộc vào một điều kiện cụ thể. * Sơ đồ cấu trúc: - Mọi ngôn ngữ lập trình đều có câu lệnh giúp cho việc thực hiện các hoạt động lặp với số lần chưa xác định. HĐ10: HS biết một số ví dụ về lệnh lặp với số lần chưa xác định HĐ của thầy HĐ của trò Nội dung GV giới thiệu câu lệnh while .. do Hướng dẫn học sinh cách viết câu lệnh và giải thích ý nghĩa của các thành phần. ? Em có nhận xét gì vế cấu trúc câu lệnh GV nhấn mạnh hoạt động của câu lệnh: + Trước tiên hoạt động nào xảy ra? (kiểm tra điều kiện) + Nừu điều kiện sai thì thực hiện gì? (câu lệnh bỏ qua và chuyển sang câu lệnh tiếp theo trong chương tình) + Nếu điều kiện đúng thì thực hiện gì? (thực hiện câu lệnh và quay lại bước 1). Cho HS thảo luận nhóm qua ví dụ 3 để phân tích ý nghĩa câu lệnh trong chương trình. Đưa ví dụ 4 lên màn hình Cho HS quan sát chương trình và chạy thử. Yêu cầu học sinh đọc kết quả. Đưa VD5 lên màn hình Yêu cầu HS so sánh đoạn chương trình dùng lệnh for ... do, đoạn chương trình dùng lệnh while...do và nhận xét kết quả. GV: qua đó ta thấy có thể sử dụng câu lệnh while...do thay cho lệnh for...do HS trả lời Nhóm trưởng nêu ý nghĩa Số phép cộng phải thực hiện là 45, tổng đầu tiên lớn hơn 100 là 1034 Đều cho một kết quả 2- ví dụ về lệnh lặp với số lần chưa xác định Trong Pascal câu lệnh lặp với số lần chưa xác định trước có dạng: While do ; Trong đó: + Điều kiện thường là một phép so sánh + Câu lệnh có thể là câu lệnh đơn hay câu lệnh ghép. Câu lệnh được thực hiện như sau: - Kiểm tra điều kiện - Nếu điều kiện sai, câulệnh sẽ bỏ qua và chuyển sang câu lệnh tiếp theo trong chương trình. Nếu điều kiện đúng thực hiện câu lệnh và quay lại bước 1. Tiết 46:Bài 8: lặp với số lần chưa biết trước( tiếp) 4.1- ổn định lớp: 4.2- Kiểm tra bài cũ: ? Nêu tác dụng của câu lệnh lặp ? Viết cú pháp câu lệnh lặp dạng for ... do 4.3- Tiến trình bài dạy HĐ11: Biết một số ví dụ về câu lệnh lặp HĐ của thầy HĐ của trò Nội dung GV: Nhờ câu lệnh lặp, ta có thể tính toán với con số rất lớn trong một thời gian ngắn với độ chính xác cao từ đó càng thấy tác dụng của câu lệnh lặp với số lần chưa xác định trong chương trình. ? Qua thực tế em hãy nêu tác dụng của máy tính trong đời sống. ? Hãy nêu khả năng làm việc của máy tính so với con người. GV đưa ra chương trình qua ví dụ trong SGK, gọi HS phân tích chương trình Đối với vòng lặp while ... do trong các câu lệnh của vòng lặp này cần có câu lệnh làm thay đổi biển thức điều kiện, có nghĩa là phải có câu lệnh để đến lúc nào đó điều kiện không được thoả mãn, khi đó vòng lặp kết thúc. ? Khi viết câu lệnh lặp có nên để máy tính thực hiện những vòng lặp vô hạn không. HS gnhe HS trả lời HS trả lời HS trả lời: Không 3- Ví dụ về câu lệnh lặp - Tính toán nhanh, làm việc bền bỉ và không biết “mệt mỏi”. - Máy tính có thể thực hiện số lần lặp không hạn chế. - Khi thực hiện vòng lặp, điều kiện trong câu lệnh phải được thay đổi để đến một lúc nào đó giá trị của điều kiện được chuyển từ đúng sang sai. - Chú ý khi viết câu lệnh lặp cần để máy tính không thực hiện những “vòng lặp vô tận”. HĐ12: áp dụng một số bài tập sử dụng câu lệnh lặp HĐ của thầy HĐ của trò Nội dung Bài 1: Viết chương trình tính tổng S=1+1/2+1/3+...+1/100 Sử dụng câu lệnh while ... do ? Trong bài tập trên ta cần khai báo những biến gì ? Cú pháp câu lệnh lặp while ... do trong bài tập trên là gì GV gọi 1 hoc sinh lên viết chương trình hoàn chỉnh HS trả lời HS lên bảng 4- bài tập Program baitap; Uses crt; Var i,s:ineger; Begin Clrscr; S:=0; i:=1; while i<=100 do Begin s:=s+1/i; i:=i+1;End; Writeln(s); Readln End. 4.4- Củng cố: ? Viết lại cú pháp câu lệnh lặp trong ngôn ngữ lập trình Pascal 4.5- HDVN: - Tìm hiểu thêm một số bài tập sử dụng câu lệnh lặp, lặp vô hạn để hiểu rõ thêm - Làm bài tập 4, 5 SGK/Tr71 Tiết 47- 48:Bài thực hành 6 Sử dụng lệnh while ... do 4.1 ổn định lớp: 4.2- Kiểm tra bài cũ: Không kiểm tra 4.3- Tiến trình bài dạy HĐ13: Ôn lại lý thuyết HĐ của thầy HĐ của trò Nội dung - Viết lại cú pháp của câu lệnh lặp while ... do và for ... do - GV kiểm tra sự chuẩn bị về thuật toán bài 1, 2 SGK của HS HS lên bảng While do ; For := to do ; HĐ14: Thực hành bài 1 HĐ của thầy HĐ của trò Nội dung GV gọi HS đọc đề bài 1 và nêu yêu cầu bài toán ? Làm thế nào để tính trung bình n số thực x1, x2, ..., xn ? Dữ liệu vào của bài toán là gì (INPUT) ? Dữ liệu vào của bài toán là gì (OUPUT) GV gọi 2 học sinh nêu thuật toán đã được chuẩn bị trước. GV nhận xét và đưa ra thuật toán B1: Nhập N là số lượng số thực sẽ được nhập từ bàn phím - Gán biến đếm bằng 0 demơ0 - Gán tổng Sumơ0 B2: Trong khi Dem<N thì - Nhập giá trị số thực x từ bàn phím - Cộng thêm x vào tổng Sum: SumơSum+x; - Tăng biến dem thêm 1 đơn vị: demơdem+1; B3: Týnh trung bình dãy số vừa nhập TBơSum/N; B4: Đưa TB ra màn hình, kết thúc thuật toán. ? Với thuật toán ở trên em cần khai báo những biến gì? Biến có kiểu dữ liệu gì? GV hướng dẫn HS thực hành bài 1 GV nhận xét các nhóm GV lưu ý: Có một số chương trình không thể sử dụng lệnh for...do thay thế cho câu lệnh while ... do được. Về cơ bản tình huống sử dụng câu lệnh while...do và for...do là khác nhau. While...do thích hợp hơn với trường hợp lặp với số lần chưa biết trước. For...do thích hợp hơn với trường hợp lặp với số lần biết trước. HS đọc bài HS trả lời Dãy số thực x1, x2, ..., xn Giá trị trung bình (x1, x2, ..., xn)/n HS trả lời HS nghe, ghi HS trả lời HS thực hành, báo cáo kết quả HS nghe Program Tinh_trung_binh; Uses crt; Var n, dem:ineger; x, tb:real; Begin Clrscr; dem:=0; tb:=0; write(‘Nhap so cac so can tinh n=’); readln(n); while dem<n do Begin dem:=dem+1; write(‘Nhap so thu ‘,dem,’=’); readln(x); tb:=tb+x; End; Tb:=tb/n; Writeln(‘Trung binh của ‘,n,’ so là = ‘.tb:10:3); Writeln(‘Nhan Enter de thoat...’); Readln End. HĐ15: Thực hành bài 2 HĐ của thầy HĐ của trò Nội dung GV gọi 1 HS đọc đề bài 2. ? Em hãy cho biết số nguyên tố có những tính chất gì? Hãy nêu INPUT và OUTPUT của bài? ? Làm thế nào để kiểm tra N có là số nguyên tố hay không GV: để kiểm tra xem N có là số nguyên tố hay không ta đi kiểm tra xem N có chia hết các số từ 2 đến N-1 hay không. Nếu N không chia hết cho số nào trong khoảng từ 2 đến N-1 thì N là sốnguyên tố, ngược lại N chia hết cho bất kì một số nào trong khoảng từ 2 đến N-1 thì N không phải sốnguyên tố. ? Làm thế nào để kiểm tra tính chia hết? GV hướng dẫn HS kiểm tra tính chia hết qua việc sử dụng phép chia lấy phần dư mod. Nêu thuật toán kiểm tra số tự nhiên n nhập từ bàn phím có phải là số nguyên tố hay không B1: Nhập số tự nhiên N từ bàn phím B2: Nếu NÊ0 thì thông báo N không phải số tự nhiên, rồi chuyển đến B4. B3: Nếu N>0 - iơ2; - Trong khi N mod i0, iơi+1; - Nếu i=N thì thông báo N là số nguyên tố, rồi chuyển đến B4, không thì thông báo N không phải là số nguyên tố. B4: Kết thúc GV yêu cầu HS đọc và tìm hiểu ý nghĩa của từng câu lệnh trong chương trình. HS thực hành bài 2 Quan sát kết quả, báo cáo Gv nhận xét các nhóm HS đọc bài Số nguyên tố là số tự nhiên chỉ chia hết cho 1 và chính nó. INPUT: số tự nhiên. OUTPUT trả lời N là số nguyên tố hoặc N không là số nguyên tố VD: Kiểm tra số 7 có phải là số nguyên tố hay không ta làm như sau Xét các số từ 2 đến 6 7 mod 2 = 1 7 mod 3 = 1 7 mod 4 = 1 7 mod 5 = 1 7 mod 6 = 1 Ta thấy 7 không chia hết cho số nào từ 2 đến 6 nên 7 là số nguyên tố Program bai2; Uses crt; Var i,n:integer; Begin Clrscr; Writeln(‘Nhap vao mot so nguyen: ‘); Readln(n); If n<=1 then writeln(n,’khong la so nguyen to’) Else Begin I:=2; While (n mod i) do i:=i+1; If i=n then writeln(n,’la so nguyen to’) Else writeln(n,’khong
File đính kèm:
- Bai_6_Dinh_dang_trang_tinh.doc