Giáo án Tin học 8 - Tiết 41 đến 48, Chủ đề: Câu lệnh lặp - Năm học 2015-2016 - Ngô Thị Thùy

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.

 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

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

 

doc17 trang | Chia sẻ: xuannguyen98 | Lượt xem: 549 | Lượt tải: 0download
Bạn đang xem nội dung tài liệu Giáo án Tin học 8 - Tiết 41 đến 48, Chủ đề: Câu lệnh lặp - Năm học 2015-2016 - Ngô Thị Thùy, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trê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 phai la so 

File đính kèm:

  • docBai_7_Cau_lenh_lap.doc