Tải bản đầy đủ (.ppt) (20 trang)

Bai 8 : lap voi so lan chua biet truoc

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.76 MB, 20 trang )



KIM TRA BI C
KIM TRA BI C


Cõu hi
Hóy nờu cỳ phỏp cõu lnh lp ForDo.


1
1
Em hãy dùng lệnh For do để viết đoạn câu
lệnh nhập tên và hiển thị ra màn hình lời chào
cho các bạn trong lớp. Giả sử lớp có 40 bạn.


2
2



§¸p ¸n
1. Cú pháp:
For <biến đếm>:=<giá trị đầu> to <giá trị cuối> do <câu lệnh>;
2. Đoạn chương trình

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
Laëp 100 laàn
VD2: Viết chương trình
nhập vào các số cho đến
khi gặp 0 thì dừng lại.
Tính tổng các số vừa
nhập.
Ch a bi t l p m y l nư ế ặ ấ ầ
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
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?
30292827262524
23
222120191817161514131211109876543210


 Nam làm bài tập cho đến khi làm xong.
 Cơ ấy phải đi bộ như vậy cho đến khi về tới nhà.
Các em hãy cho thêm những
ví dụ về hoạ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:
 Tơi phải nhập dữ liệu vào máy tính cho
đến khi nhập xong.


VD1

VD1(Sgk):
Long sẽ lặp lại hoạt động gọi
điện mấy lần, ®iỊu kiƯn ®Ĩ kÕt
thóc ho¹t ®éng lỈp?
1. Các hoạt động lặp với số lần chưa biết trước:
Chưa thể biết trước được. Điều
kiện để kết thúc hoạt động lặp
đó là có người nhấc máy.
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.

VD2
VD2(Sgk)
:
:
1. Các hoạt động lặp với số lần chưa biết trước:
Đ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 T
n
nhỏ
nhất lớn hơn 1000 thì kết
thúc hoạt động lặp
tăng dần

1. Các hoạt động lặp với số lần chưa biết trước:
n Tổng T
n

Điều kiện T
n
≤ 1000
1
T
1
= 1 Đúng
2 T
2
= 1 + 2 Đúng
Đúng
… … …
?
T
n
= 1 + 2 + 3 + … +?
(Sao cho T
n

nhỏ nhất
lớn hơn 1000)
Sai, kết thúc việc tính
tổng
3 T
3
= 1 + 2 + 3
Phân tích bài tốn:

S ← 0, n ← 0.
Nếu S≤1000, n ← n+1; Ngược lại, chuyển tới bước 4.

S ← S + n và quay lại bước 2.
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 tốn.
1. Các hoạt động lặp với số lần chưa biết trước:
Kí hiệu S là tổng cần tìm và ta có thuật tốn 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?
* Có thể diễn tả bài tốn
trên bằng sơ đồ như sau:
S≤1000?
Sai
n ← n+1;
S ← S+n;
Đúng
Điều kiện
Sai
Câu lệnh
Đúng
Các hoạt động lặp với số lần chưa biết
trước phụ thuộc vào mét ®iỊu kiƯn
và chỉ dừng lại khi ®iỊu kiƯn ®ã sai

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âu lệnh>;
Trong pascal câu lệnh lặp với số lần chưa biết trước có dạng:
Từ khoá
Thường là một
phép so sánh

Có thể là câu lệnh đơn hay câu lệnh ghép
Câu lệnh lặp này được thực hiện như sau:
1./ Kiểm tra: điều kiện
2./ Nếu điều kiện sai, câu lệnh sẽ bò bỏ qua và kết
thúc vòng lặp. Nếu điều kiện đúng, thì thực hiện câu
lệnh và quay về bước kiểm tra điều kiện
Điều kiện
Sai
Câu lệnh
Đúng

VD: 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)
2. Ví d v l nh l p vôùi soá laàn chöa bieát tröôùc:ụ ề ệ ặ
var S,n: integer;
Begin
S:=0; n:=0;
while S<=1000 do
begin
n:=n+1; S:=S+n ;
end;
writeln(‘Tong S nho nhat > 1000 la: ’,S);
Writeln(‘So n nho nhat sao cho tong >1000 la: ’n);
Readln;
End.
S ← 0, n ← 0.
Nếu S≤1000, n ← n+1; Ngược lại,
chuyển tới bước 4.
S ← S + n và quay lại bước 2.
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.

Học sinh thảo luận theo nhóm (3 bàn 1 nhóm)
Học sinh thảo luận theo nhóm (3 bàn 1 nhóm)
Caâu 1
Caâu 2
Caâu 3
Caâu 4

A
A
Tính tổng các số tự nhiên từ 1 đến 20.
B
B
Nhập các số ngun từ bàn phím cho đến khi đủ 50 số.
D
D
Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng.
C
C
Mỗi ngày học bài 2 lần.
30292827262524
23
222120191817161514131211109876543210
Câu 1: Trong các hoạt động dưới
đây, hoạt động nào là hoạt động lặp
với số lần chưa biết trước?

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 ;
Thừa dấu :
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?
30292827262524
23
222120191817161514131211109876543210

In ra các số từ 1 đến 9
In ra các số từ 1 đến 9
In ra các số từ 1 đến 10
In ra các số từ 1 đến 10
In ra các số 1
In ra các số 1
Không phương án nào đúng.
Không phương án nào đúng.
A
A
B
B
C
C
D
D
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;
30292827262524
23
222120191817161514131211109876543210

B. 10 vòng lặp, S=5
D. 12 vòng lặp, S=4
B. 10 vòng lặp, S=5
A. 9 vòng lặp, S=5.5 C. 11 vòng lặp, S=4.5
SAI RỒI!
SAI RỒI!
SAI RỒI!
Câu 4: Thuật toán sau thực hiện bao nhiêu vòng lặp?
Khi kết thúc, giá trò của S bằng bao nhiêu?
- Bước 1: S ← 10, x ← 0.5.
- Bước 2: Nếu S ≤ 5.2 chuy n t i b c 4.ể ớ ướ
- B c 3: S ướ ← S –x và quay lại bước 2.
- Bước 4: Thông báo S và kết thúc thuật toán.
30292827262524
23
222120191817161514131211109876543210
Hoan h«
b¹n ®· TRẢ lêi ®óng råi

- Các hoạt động lặp với số lần chưa biết trước
phụ thuộc vào một điều kiện cụ thể và chỉ
dừng lại khi điều kiện đó sai.
- Trong Pascal câu lệnh lặp với số lần chưa
biết trước có dạng:
While <điều kiện> do <câu lệnh>;


- Xem trước VD3, VD4, VD5, Lặp vô hạn
lần–Lỗi lập trình cần tránh.
- Tìm thêm một vài ví dụ về hoạt động lặp với
số lần chưa biết trước.
- Về nhà học bài. Làm bài tập 2 Sgk trang 71.

×