• 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. Ghi nhớ.[r]
(1)1 BÀI 8:
(2)• Học thuộc bài
• Nhặt cọng rau hết rau • Bài tốn: Viết chương trình nhập vào
dãy số gặp dừng lại, tính tổng các số vừa nhập
Hãy kể tên hoạt động thực lặp lặp lại với số lần lặp không thể xác định trước?
(3)Bài toán 1:
Bài toán 2:
N S 1 2 3 4
N S 1 2 3 4 Tính tổng
Tính tổng S>1000 Cho biết số N nhỏ nhất
2 Ví dụ lệnh lặp với số lần chưa xác định
Để tính tổng máy tính thực cộng n số từ đến N vào tổng S
Lặp với số lần biết trước n lần
Để tính tổng máy tính thực cộng số từ đến N vào tổng S đến S>1000 dừng
(4)WHILE <Điều kiện> DO <Câu lệnh>;
Điều kiện
S<1000 Đúng
Câu lệnh
S:=S+1 Điều kiện: thường phép so sánh
Sai Trong đó:
Câu lệnh lặp với số lần lặp chưa xác định Pascal:
Câu lệnh: câu lệnh đơn hay câu lệnh ghép
Ví dụ: While S<1000 S:= S+1; 3 Lệnh lặp với số lần chưa xác định
(5)B1: S:=0; N:=0;
B2: Nếu S<= 1000 thực hiện tăng N thêm đơn vị, ngược lại chuyển tới B4 B3: Cộng N vào S => sang B2 B4: In kết quả: N số tự
nhiên nhỏ cho S>1000, Tổng S kết thúc
S:=0; N:=0;
WHILE S<=1000 DO
Begin N:=N+1;
S:=S+N;
END;
Writeln(‘Số N nhỏ để S>1000’, N) Writeln(‘Tổng >1000 l : , S);à ’
N S 1 2 3 4
Thu t toánậ Chương trình
chính
Ví d : ụ
(6)Program Bai_toan;
Uses Crt;
Var N:Integer; S:Real;
BEGIN Clrscr;
S:=0;N:=0;
WHILE s< = 1000 DO BEGIN
N:=N+1; S:=S+N; END;
Writeln(‘So N nho nhat de tong S>1000 la: ’, N); Writeln(‘Gia tri cua tong S = ', S);
Readln;
END.
(7)100 1 4 1 3 1 2 1
1
S
S:=0;
For i:=1 to 100 do S:=S + 1/i; Writeln(‘ S = ’, S:7:2);
DÙNG LỆNH FOR DO DÙNG LỆNH WHIE DO
S:=0; i:=1;
While i<=100 do
Begin S:=S + 1/i; i:=i+1;
End;
Writeln(‘ S = ’, S:7:2);
(8)Lưu ý: Khi viết chương trình với câu lệnh lặp While do, sau Do phải có lệnh tác động làm thay đổi Điều kiện để Điều kiện đến lúc từ Sai chuyển sang Đúng nhằm kết thúc vịng lặp
Ví dụ:
Var a:integer; Begin
a:=2;
While a<6 Write(' Chuong trinh chay mai khong thoat duoc'); End
4 Lặp vơ hạn -Lỗi lập trình cần tránh
Var a:integer; Begin
a:=2;
While a<6 Begin
Write(' Chuong trinh chay được'); a:=a+1;
(9)• While do là câu lệnh lặp với số lần
chưa biết trước Pascal
• Ngồi cấu trúc lặp với số lần biết trước, ngơn ngữ lập trình cịn có câu lệnh lặp với số lần chưa biết trước.