Câu lệnh lặp thường gặp trong Pascal có dạng:.. a.[r]
(1)(2)02/05/21
1 Các công việc phải thực nhiều lần
Em liệt kê hoạt động mà ngày em phảI thực lặp đI lặp li
nhiều lần?
Khi viết ch ơng
Khi viết ch ơng trỡnh trỡnh cho máy tính, cho máy tính, ta phải viết lặp lại nhiều câu
ta phải viết lặp lại nhiỊu c©u
lệnh để thực phép tính
lệnh để thực phép tính
nhất định.
nhất định.
Lặp với số lần biết trước: đánh ngày hai lần, tắm lần, ăn ba bữa…
(3)B1:
B1: k k ( số đoạn thẳng vẽ được). ( số đoạn thẳng vẽ được).
B2:
B2: k k kk +1 (Vẽ đoạn thẳng đơn vị độ dài quay thước 90. +1 (Vẽ đoạn thẳng đơn vị độ dài quay thước 90. B3:
B3: Nếu K <4 quay lại B2 Ngược lại, kết thúc thuật toán. Nếu K <4 quay lại B2 Ngược lại, kết thúc thuật tốn.
Vd1: Vẽ hình vng
0
(4)02/05/21
B1: S:=0; i:=0;
B2: i:=i+1; S:=s+i;
B3: i<=100, quay lại B2
B4: Thông báo kết kết thúc thuật tốn
Vd 2: Tính tổng 100 số tự nhiên đầu tiên S=1+2+3+4+ +100
Ta xét toán này 5: từ
tốn đến chương trình
(5)3 Ví dụ câu lệnh lặp
Câu lệnh lặp thường gặp Pascal có dạng:
a Cú pháp :
FOR
FOR biến đếm : = giá trị đầu TOTO giá trị cuối DO DO Câu lệnh vòng lặp ;
Từ khoá
Phải
biến kiểu nguyên Giá trị đầu < Giá trị cuối Và phải giá trị nguyên
- Sẽ thực nhiều lần, lần vòng lặp
(6)02/05/21
3 Ví dụ câu lệnh lặp a Cú pháp :
FOR biến đếm : = giá trị đầu TO giá trị cuối DO
Câu lệnh vòng lặp ;
Chú ý :
- Sau DO khơng có dấu chấm phẩy
- Có thể dùng vịng lặp FOR lồng nhau b Công dụng:
(7)Biến:=<GT đầu >
Biến <= GT cuối
Câu lệnh
Biến tự động tăng ĐVị
True
False
Lưu đồ thuật toán cho cấu trúc lặp
(8)02/05/21
VD: Chương trình in hình số lần lặp
Program Lap;
Uses crt;
Var i: integer;
Begin
for i:=1 to 10
writeln( Day la so lan lap thu ‘ ,i);
‘
Readln;
End
Biến:=<GT đầu >
Biến <= GT cuối
Câu lệnh
Biến tự động tăng ĐVị
True False i:=1 i:=2 i:=3 i:=4 i:=5i:=7 i:=8 i:=10i:=9
2 <= 10 1 <= 103 <= 10 4 <= 10
i:=6
5 <= 10 6 <= 108 <= 107 <= 109 <= 10 10 <= 10
i:=11
11 <= 10
(9)Uses crt;
Var i: integer; Begin
clrscr;
for i:=1 to 20 do Begin
writeln( o );‘ ‘ delay(100); end; Readln; O o O O O O O O O O O O O O O O O O
Em dự đoán kết xuất hình
Sau khi
dịch chạy chương trình?
(10)02/05/21 10
4 Tính tổng tích câu lệnh lặp
Ví dụ 1: Viết chương trình tính tổng S=1+2+3+4+5
Trả lời:
Program Tinh_tong; Var i: integer;
S: longint; Begin
S:=0;
For i:= to S:= S + 1; Writeln (‘Tong cua S = ’,S); Readln;
(11)4 Tính tổng tích câu lệnh lặp
Ví dụ 2: Ta kí hiệu N! tích N số tự nhiên đầu tiên: N! = 1.2.3…N
- Viết chương trình tính N! với N số tự nhiên nhập vào từ bàn
phím. Trả lời:
Program Tính_Giai_thua;
Var i, N: integer; P: longint; Begin
write (‘Nhap N = ‘); readln (N); P:= 1;
For i:= to N P:= P*i; Writeln (N,’! = ’,P);
(12)02/05/21 12
Bài tập
Em viết chương trình tính tổng số ngun liên tiếp từ n đến m với n,m số nguyên dương nhập vào từ bàn phím
Gợi ý :
-Tìm input,output ?
- Khai báo biến ? Kiểu liệu ?
- Nhập vào từ bàn phím giá trị cho biến ?
-Tìm thuật tốn chương trình ?
(13)- Input: n, m ; Output : Tổng S
- Khai báo biến : n, m, S, i kiểu Integer
- Nhập giá trị vào từ bàn phím cho biến n m - Thuật toán : Cho biến đếm i chạy từ n đến m
Nếu I <= m tổng S:= S +i - Sử dụng câu lệnh Write, Readln, For to do
*Chương trình
Trả lời:
Program tinh_tong; Var m, n, i: integer; S: longint; Begin
write (‘Nhap n = ‘); readln ( n); write (‘Nhap m=‘); readln ( m); S:=0;
For i:= n to m S:= S + n;