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

Chia sẻ bởi Thái Khắc Tài | Ngày 24/10/2018 | 31

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:


CHÀO MỪNG QUÝ THẦY CÔ VÀ CÁC EM
KIỂM TRA BÀI CŨ
Cú pháp:
For := to do ;
Khi sử dụng lệnh lặp For… to…do. Số lần lặp sẽ được tính như thế nào?
Số lần lặp = - +1
KIỂM TRA BÀI CŨ
Ví dụ:
For i:= 1 To 4 Do
Writeln(‘Day la so lan lap thu’ ,i);
Số lần lặp = 4- 1+1= 4
Day la so lan lap thu 1
Day la so lan lap thu 2
Day la so lan lap thu 3
Day la so lan lap thu 4

Các em hãy quan sát
VD1: Viết chương trình tính tổng các số tự nhiên từ 1 đến 100
S = 1 + 2 + 3 + . . .+100
Lặp với số lần biết trước, sử dụng câu lệnh lặp For…Do để viết chương trình
VD2: Viết chương trình tính tổng n số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000?
Lặp với số lần chưa biết trước, sử dụng câu lệnh gì để viết chương trình?
Theo em phép cộng trên có biết trước số lần lặp không? Có sử dụng lệnh lặp for…to…do được không?
Không thể biết trước số lần lặp và không sử dụng được lệnh for…to…do .
Theo em khi sử dụng lệnh lặp for…to…do để viết chương trình trên thì phép cộng được lặp lại mấy lần?
Lặp 100 lần
For i:=1 to 100 do s:=s+i;
Tiết 42 - BÀI 8:
LẶP VỚI SỐ LẦN CHƯA BiẾT TRƯỚC
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
 Nam học cho đến khi thuộc bài.
 Cô ấy phải đi bộ như vậy cho đến khi về tới nhà.
 Tôi phải nhập dữ liệu vào máy tính cho đến khi nhập xong.
Tiết 42- Bài 8
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
1. Các hoạt động lặp với số lần chưa biết trước:
Tiết 42- Bài 8
Ví dụ 1:
Một ngày, 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 thì thôi.
Hoạt động lặp là gì ?
Khi nào thì kết thúc vòng lặp?
Hoạt động lặp: Gọi điện
Kết thúc vòng lặp: Có người nhấc máy thì thôi.
Số lần lặp đã biết chưa?
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
1. Các hoạt động lặp với số lần chưa biết trước:
Tiết 42- Bài 8
Ví dụ 2:
Nếu cộng lần lượt n số tự nhiên đầu tiên (n=1,2,3,…). Ta sẽ được kết quả:
Đ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
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
1. Các hoạt động lặp với số lần chưa biết trước:
Tiết 42- Bài 8
Ví dụ 2:
Phân tích bài toán:
T0:=0; n:=0;
1
T1 = 1
Đúng
2
T2 = 1 + 2
Đúng
3
T3 = 1 + 2 + 3
Đúng



n
Tn = 1 + 2 + 3 + … +n (Sao cho Tn nhỏ nhất lớn hơn 1000)
Sai, kết thúc việc tính tổng
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
1. Các hoạt động lặp với số lần chưa biết trước:
Tiết 42- Bài 8
Ví dụ 2:
Ta có thuật toán như sau:
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, thì: n  n+1; S  S + n và quay lại bước 2.
Ngược lại, chuyển tới bước 3.
In kết quả: n là số tự nhiên để tổng S nhỏ nhất sao cho S>1000. Kết thúc thuật toán.
* Có thể diễn tả bài toán trên bằng sơ đồ như sau:
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?
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
Bước 3:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
1. Các hoạt động lặp với số lần chưa biết trước:
Tiết 42- Bài 8
TQ
Để 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
SƠ ĐỒ KHỐI
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Tiết 42- Bài 8
2. Ví dụ về lệnh lặp với số lần chưa biết trước
while
do
Cú pháp:
While <điều kiện> do ;
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: có thể là câu lệnh đơn giản hay câu lệnh ghép.
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Tiết 42- Bài 8
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Quan sát sơ đồ khối, hãy cho biết cách thực hiện câu lệnh lặp?
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.
Chừng nào điều kiện còn đúng thì câu lệnh còn thực hiện.
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Tiết 42- Bài 8
2. Ví dụ về lệnh lặp với số lần chưa biết trước
VD1: While a<=b do a:=a+1;
 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).
VD2: While a>b do
Begin
write(‘a>b’);
a:=a-1;
End;
 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à Write(‘a>b’) và a:=a-1 (câu lệnh ghép).
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Tiết 42- Bài 8
2. Ví dụ về lệnh lặp với số lần chưa biết trước
Viết câu lệnh in ra 5 số tự nhiên liên tiếp bắt đầu bằng số 1.
Sử dụng lệnh lặp với số lần lặp chưa biết trước while…do
n:=1
while n<=5 do
begin
writeln(n);
n:=n+1;
end;
Mô phỏng thuật toán:
Bắt đầu
n := 1
1 <= 5?
Viết 1 ra màn hình
n:= 1+1=2
1
2
3
4
5
2 <= 5?
Viết 2 ra màn hình
n:= 2+1=3
3 <= 5?
Viết 3 ra màn hình
n:= 3+1=4
4<= 5?
Viết 4 ra màn hình
n:= 4+1=5
Sai
Đúng
5<= 5?
Viết 5 ra màn hình
n:= 5+1=6
6 <= 5?
Kết thúc
Kết quả
n:=1
while n<=5 do
begin
writeln(n);
n:=n+1;
end;
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
1. Các hoạt động lặp với số lần chưa biết trước:
Tiết 42- Bài 8
Bước 1:
S  0, n  0.
Bước 2:
Nếu S≤1000, thì: n  n+1; S  S + n và quay lại bước 2.
Ngược lại, chuyển tới bước 3.
In kết quả: n là số tự nhiên để tổng S nhỏ nhất sao cho S>1000. Kết thúc thuật toán.
VD 3: 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)
Bước 3:
LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
Tiết 42- Bài 8
2. Ví dụ về lệnh lặp với số lần chưa biết trước
VD 3: 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(‘So tu nhien n de tong >1000 la ’, n);
write(‘Tong dau tien >1000 la’, S);
Readln;
End.
CỦNG 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à:
D. 6
A. 4
B. 8
C. 10
A. 4
Câu hỏi 1
Nhóm thảo luận 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 ;
Thiếu dấu :
Thiếu Begin
Thiếu End

Câu 2: Hãy chỉ ra lỗi trong các câu lệnh sau đây?
Thừa dấu:

In ra các số từ 1 đến 9

In ra các số từ 1 đến 10

In ra các số 1

Không phương án nào đúng.
Câu 3: Đoạn lệnh sau đây cho kết quả là gì?

S:=1; While s < 10 do
Begin writeln(s); s:=s+1; end;
VỀ NHÀ
Về nhà học thuộc bài.
Làm bài tập 1,2,3a SGK.
Đọc trước phần còn lại của bài.
* 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ẻ: Thái Khắc Tài
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)