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

Chia sẻ bởi Nguyễn Mã Lực | Ngày 24/10/2018 | 24

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:

Bài 8:
Lặp với số lần chưa biết trước
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. C�c ho?t d?ng l?p v?i s? l?n chua bi?t tru?c
Một ngày khác, Long quyết định cứ 10 phút gọi điện một lần cho Trang cho đến khi nào có người nhấc máy.
Hoạt động lặp: G?i di?n
K?t th�c vịng l?p: Có người nhấc máy.
Ví dụ 1(Sgk):
Hoạt động lặp ?
Kết thúc vòng lặp ?
Số lần lặp đã biết chưa?
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. C�c ho?t d?ng l?p v?i s? l?n chua bi?t tru?c
Ví dụ 2(Sgk):
T2 = 1 + 2
T1 = 1
T3 = 1 + 2 + 3
… tăng dần
Điều kiện như thế nào thì kết thúc hoạt động lặp?
Điều kiện: Khi tổng Tn nhỏ nhất lớn hơn 1000 thì kết thúc hoạt động lặp
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. C�c ho?t d?ng l?p v?i s? l?n chua bi?t tru?c
Thảo luận nhóm 2 phút và tìm ra thuật toán cho bài toán trên
Ví dụ 2(Sgk):
Ví dụ 1(Sgk):
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. C�c ho?t d?ng l?p v?i s? l?n chua bi?t tru?c
Kí hiệu S là tổng cần tìm
Bước 1:
S  0, n  0.
Bước 2:
Nếu 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à n là số tự nhiên nhỏ nhất sao cho S>1000. Kết thúc thuật toán.
Các hoạt động lặp với số lần chưa biết trước phụ thuộc vào cái gì và chỉ dừng lại khi nào?
* Có thể diễn tả bài toán trên bằng sơ đồ như sau:
Việc lặp lại một nhóm hoạt động 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ể được thỏa mãn và chỉ dừng lại khi điều kiện không thỏa mãn
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
1. Các hoạt động lặp với số lần chưa biết trước:
Quan sát sơ đồ khối sau:
Để chỉ dẫn máy tính thực hiện các hoạt động lặp trên, ta có thể sử dụng câu lệnh có dạng: Lặp với số lần chưa biết trước
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
Hãy nêu cú pháp với câu lệnh lặp while - do?
Cú pháp:
While <điều kiện> do ;
Đ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 giản hay câu lệnh ghép.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
Quan sát sơ đồ khối, hãy cho biết cách thực hiện câu lệnh lặp?
Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện.

Bước 1 : Kiểm tra điều kiện.
Bước 2 : Nếu điều kiện sai, câu lệnh sẽ bị bỏ qua và việc thực hiện lệnh lặp kết thúc. Nếu điều kiện đúng, thực hiện câu lệnh và quay lại bước 1.
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
VD1: While a<=b do a:=a+1;
Trong đó :  While, do là các từ khóa.
 Điều kiện là a<=b (chứa phép so sánh).
 Câu lệnh là a:=a+1 (câu lệnh đơn).
While <điều kiện> do ;
Cú pháp:
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
VD 2: Dùng câu lệnh lặp While … Do để viết chương trình thể hiện thuật toán trong Ví dụ 2 (Sgk)
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do
begin
n:=n+1;
S:=S+n ;
end;
write(‘Tong S= ’,S,‘ va ’,n,’ la so tu nhien nho nhat sao cho S>1000’);
Readln;
End.
Tong S= 1035 va 45 la so tu nhien nho nhat sao cho S>1000
Câu lệnh ghép
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
Ví dụ 3
Sử dụng lệnh lặp với số lần lặp biết trước for…do
Sử dụng lệnh lặp với số lần lặp chưa biết trước
begin
for i:=1 to 5 do
writeln(‘ ‘,i);
end.
begin
i:=1;
while i<=5 do
begin
write(‘ ‘,i);
i:=i+1;
end;
Readln;
End.
Viết chương in ra 5 số tự nhiên đầu tiên
BT
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
2. Ví d? v? l?nh l?p v?i s? l?n chua bi?t tru?c
While <điều kiện> do ;
Cú pháp:
Ví dụ 3
Viết chương in ra 5 số tự nhiên đầu tiên
Nhận xét : Qua ví dụ này cho thấy rằng chúng ta có thể sử dụng câu lệnh while…do thay cho câu lệnh for…do.
Mô phỏng thuật toán: In 5 số tự nhiên đầu tiên ra màn hình
Bắt đầu
n := 1
1 <= 5?
Viết 1 ra màn hình
n:= 2
1
2
3
4
5
2 <= 5?
Viết 2 ra màn hình
n:= 3
3 <= 5?
Viết 3 ra màn hình
n:= 4
4<= 5?
Viết 4 ra màn hình
n:= 5
Sai
Đúng
5<= 5?
Viết 5 ra màn hình
n:= 6
6 <= 5?
Kết thúc
Kết quả
Baøi 8:
LAËP VÔÙI SOÁ LAÀN CHÖA BIEÁT TRÖÔÙC
Bài tập vận dụng
Nếu S=10, x=2 Sau khi thực hiện câu lệnh
While S>5 do
S:=S-x;
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. 8
C. 10
A. 4
BẠN SAI RỒI!
BẠN SAI RỒI!
BẠN SAI RỒI!
Câu hỏi 1
Nhóm thảo luận và chạy tay 2 phút sau đó chọn giá trị S
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 ;

Câu hỏi 5/sgk tr71: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
BĐTD
Dặn dò
Về nhà học thuộc bài
Làm bài tập 1,2,3a SGK trang 71
Đọc và soạn trước phần 3_Bài 8.
* 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ẻ: Nguyễn Mã Lực
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)