Bài 8. Lặp với số lần chưa biết trước

Chia sẻ bởi Trương Thị Thanh Nhàn | Ngày 24/10/2018 | 42

Chia sẻ tài liệu: Bài 8. Lặp với số lần chưa biết trước thuộc Tin học 8

Nội dung tài liệu:

5/12/2010
KÍNH CHÀO QUÍ THẦY CÔ
CÙNG CÁC EM HỌC SINH
Môn: Tin học - Lớp 8
5/12/2010
Program Btap;
Var sum, i:= integer;
sum:=0;
For i = 1.5 to 10 do Begin sum:= sum + i; writeln(sum);
Readln;
End.
KIỂM TRA BÀI CŨ
Câu hỏi : Hãy liệt kê các lỗi trong chương trình dưới đây:
Program Btap;
Var sum, i: integer;
Begin
sum:=0;
For i := 1 to 10 do Begin sum:= sum + i; writeln(sum);
End;
Readln;
End.
5/12/2010
? Em hãy nêu những công việc hằng ngày em thực hiện được lặp đi lặp lại nhiều lần, với số lần lặp chưa biết trước:
5/12/2010
Bài 8 :
1. Các hoạt động lặp với số lần chưa biết trước
Ví dụ 1: Những hoạt động lặp với số lần lặp chưa biết trước như : học cho đến khi thuộc bài, gọi điện nghe chuông reo cho đến khi có người nhấc máy,...
LẶP VỚI SỐ LẦN
CHƯA BIẾT TRƯỚC
5/12/2010
Ví dụ 2 : Tìm số tự nhiên n để tổng Sn = 1+ 2 + 3 + … + n, nhỏ nhất lớn hơn 1000.
1. Các hoạt động lặp với số lần chưa biết trước.
1
S1 = 1
Đúng
2
S2 = 1 + 2
Đúng
Đúng



n
Sn = 1 + 2 + 3 + … + n
Sai, kết thúc việc tính tổng
3
S3 = 1 + 2 + 3
Phân tích:
5/12/2010
Thuật toán :
Bước 1. S  0, n  0.
Bước 2. S ≤ 1000, n  n + 1; Ngược lại, chuyển tới bước 4.
Bước 3. S  S + n và quay lại bước 2.
Bước 4. In kết quả: S và số tự nhiên n để tổng S nhỏ nhất lớn hơn 1000. Kết thúc thuật toán.
1. Các hoạt động lặp với số lần chưa biết trước.
Ví dụ 2 : Tìm số tự nhiên n để tổng Sn = 1+ 2 + 3 + … + n, nhỏ nhất lớn hơn 1000.
5/12/2010
Chú ý : Trong trường hợp câu lệnh ghép:
While <điều kiện> do
Begin
câu lệnh 1;
câu lệnh 2; …
End;
2. Ví dụ về lệnh lặp với số lần chưa biết trước
WHILE <điều kiện> DO ;
Cú pháp:
Ví dụ 1:
a) While x = 0.5 do x:= x + 1;
b) While (n mod i<>0) do i:= i + 1;
5/12/2010
Ngoài cấu trúc lặp với số lần lặp biết trước, các ngôn ngữ lập trình còn có các câu lệnh lặp với số lần chưa biết trước.
Tóm lại :
 Lưu đồ hoạt động :
S<= 1000
Kết thúc thuật toán
n:= n + 1;
S:= S + n;
Đúng
Sai
1. Các hoạt động lặp với số lần chưa biết trước.
5/12/2010
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Xét lưu đồ hoạt động của thuật toán sau:
do
S<= 1000
Kết thúc thuật toán
n:= n + 1;
S:= S + n;
Đúng
Sai
While
<Điều kiện>

5/12/2010
;
 Trong đó :
While, do là các từ khóa.
Điều kiện thường là một phép so sánh.
Câu lệnh là câu lệnh đơn giản hay câu lệnh ghép.
2. Ví dụ về lệnh lặp với số lần chưa biết trước
a) Cú pháp:
WHILE
<điều kiện>
DO
5/12/2010
Điều kiện
Thoát ra khỏi
vòng lặp While
Thực hiện
câu lệnh
Sai
b) Lưu đồ hoạt động :
 Bước 1: Kiểm tra điều kiện.
 Bước 2: Nếu điều kiện SAI, câu lệnh bị bỏ qua và kết thúc lệnh lặp. Nếu điều kiện ĐÚNG, thực hiện câu lệnh và quay lại bước 1.
2. Ví dụ về lệnh lặp với số lần chưa biết trước
WHILE <điều kiện> DO ;
Cú pháp:
Đúng
5/12/2010
2. Ví dụ về lệnh lặp với số lần chưa biết trước
WHILE <điều kiện> DO ;
Cú pháp:
Ví dụ 2: Viết câu lệnh While … do thể hiện bước 2 và bước 3 của thuật toán sau:
Bước 1. S 0, n  0.
Bước 2. S≤ 1000, n n + 1; Ngược lại, chuyển tới bước 4.
Bước 3. S S + n và quay lại bước 2.
Bước 4. Thông báo kết quả S và n. Kết thúc thuật toán.
While s > 1000 do
begin
n:= n + 1;
S:= S + n;
end;
5/12/2010
Câu hỏi: Em hãy nêu những điểm khác nhau giữa câu lệnh lặp For … do và câu lệnh lặp While … do. (số lần lặp, giá trị so sánh của biến trong vòng lặp, điều kiện)
1) Số lần lặp được biết trước.
2) Giá trị so sánh của biến đếm là một số nguyên.
1) Số lần lặp chưa biết trước.
2) Giá trị so sánh của biến có thể là một số nguyên hoặc một số thực.
3) Điều kiện là so sánh giá trị của biến đếm với giá trị cuối.
3) Điều kiện thường là một phép so sánh.
5/12/2010
a) X:= 10; while X:= 10 do X:= X + 5;
b) X:= 10; while X = 10 do X = X + 5;
c) S:= 0; n:=0; while S <= 10 do n:= n + 1; S:= S + n;
BÀI TẬP
a) X:= 10; while X = 10 do X:= X + 5;
b) X:= 10; while X = 10 do X := X + 5;
c) S:= 0; n:=0; while S <= 10 do
begin
n:= n + 1;
S:= S + n;
end;
Bài 5/tr 71 (SGK). Hãy chỉ ra lỗi trong các câu lệnh sau đây và sửa lại cho đúng:
Sửa lại đúng:
5/12/2010
Nếu S=10, i=0 Sau khi thực hiện câu lệnh
While S>5 do
begin i:=i+1; S:=S-i end;
writeln(S);
Thì giá trị của S là:
10
09
08
07
06
05
04
03
02
01
00
0
:
D. 6
A. 4
B. 5
C. 10
A. 4
B?n sai r?i!
B?n sai r?i!
B?n sai r?i!
Câu hỏi củng cố
5/12/2010
Nếu S=0,i=1 Sau khi thực hiện câu lệnh
While i<=5 Do
Begin i:=i+1; S:=S+i; End;
Writeln(`Ket qua la :`,S);
Thì giá trị của S là:
10
09
08
07
06
05
04
03
02
01
00
0
:
D. 15
B. 14
A. 10
C.0
B. 14
B?n sai r?i!
B?n sai r?i!
B?n sai r?i!
5/12/2010
Học sinh thảo luận theo nhóm
(2 bàn 1 nhóm)
-Thời gian thảo luận trong 3 phút
Các nhóm thảo luận và viết kết quả vào giấy sau đó lên bảng trình bày.
BÀI TẬP NHÓM
Sư dụng vòng lặp While…do
để tính tổng các số chẵn
từ 1 đến 10?
HẾT GIỜ
Var S, i:Integer;
Begin
S:=0; I:=1;
While i<=10 do
If (I mod 2)=0 then
begin
S:=S+I; I:=I+1;
End;
writeln(‘ Tổng các so chan = ’, S
End.
5/12/2010
*) Tóm tắt nội dung bài học :
1) Ngoài cấu trúc lặp với số lần biết trước, các ngôn ngữ lập trình còn có các câu lệnh lặp với số lần chưa biết trước.
2) Câu lệnh lặp với số lần lặp chưa biết trước :
a) Trường hợp câu lênh đơn:
WHILE <điều kiện> DO ;
b) Trường hợp câu lệnh ghép:
WHILE <điều kiện> DO
Begin
câu lệnh 1;
câu lệnh 2; …
End;
5/12/2010
- Nắm vững cú pháp và các bước hoạt động của câu lệnh lặp While … do.
Câu hỏi và bài tập về nhà : Bài tập 3 trang 71 SGK
Thực hành các ví dụ 3, 4, 5 trang 69 SGK.
CHÚC CÁC EM HỌC GIỎI MÔN TIN HỌC.
THE END.
HƯỚNG DẪN VỀ NHÀ
5/12/2010
CHÀO TẠM BIỆT
5/12/2010
1
2
3
4
5
6
7
8
9
10
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Trương Thị Thanh Nhàn
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)