Bài 8Lặp với số lần chưa biết trước... Hãy nêu cấu trúc câu 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 đó: - Điều kiện thường là các phép so sánh
Trang 1Bài 8
Lặp với số lần chưa
biết trước
Trang 2Câu 2: Hãy viết chương tình tính tổng của 5 số đầu tiên ?
For < biến đếm >:= <giá trị đầu> to <giá trị cuối> do < câu lệnh >;
Var i, Tong: integer;
Begin
Tong:=0;
For i: = 1 to 5 do
Tong:= Tong + i;
Write(‘Tong= ’,Tong);
Readln;
End.
Trang 31 Các hoạt động lặp với số lần chưa biết trước:
Ví dụ 1:
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ả tăng dần T1=1, T2=1+2,…tăng dần Cần cộng bao nhiêu số tự nhiên đầu tiên để ta nhận được tổng Tn nhỏ nhất lớn hơn 1000 ?
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
Trang 4Hãy nêu cấu trúc câu 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 đó:
- Điều kiện thường là các 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
Câu lệnh lặp được thực hiện như thế nào ?
Câu lệnh
Điều kiện
?
Đúng
Sai
Kết thúc
Trang 52 Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví dụ 3: Với giá trị nào của n để 1/n < 0.003 ? Viết chương Trình tính số n nhỏ nhất để 1/n nhỏ hơn một sai số cho trước
Uses crt;
Var x:Real;
n:Integer;
Const Si_So=0.003;
Begin
Clrscr;
x:=1; n:=1;
While x >= Sai_So do Begin
n:=n+1; x:=1/n;
End;
Writeln(‘So n nho nhat de 1/n < ‘,Sai_So:6:4, ‘ la ‘,n);
Readln;
End.
Trang 6Ví dụ 4: Viết chương tình tính tổng n số trong ví dụ 2
Var S,n:Integer;
Begin
S:=0; n:=1;
While S<=1000 do Begin
S:=S+n; n:=n+1;
End;
Writeln(‘So n nho nhat de tong > 1000 la ‘,n);
Writeln(‘Tong dau tien lon hon n la ‘,S);
Readln;
End.
Trang 72 Ví dụ về lệnh lặp với số lần chưa biết trước:
Ví dụ 5: Viết chương tình tính tổng T=1+1/2+1/3+…+1/n
T:=0;
For i:=1 to 100 do
T:=T+1/i;
Writeln(T);
T:=0;
i:=1;
While i<= 100 do
Begin T:=T+1/i;
i:=i+1;
End;
Writeln(T);
For…do
While…do
Trang 8Var a:Integer;
Begin
a:=5;
While a < 6 do
Writeln(‘A’);
End.
Var a:Integer;
Begin
a:=5;
While a < 6 do Begin
Writeln(‘A’);
a:=a+1;
End;
End.
Trang 9GHI NHỚ:
1 Ngoài cấu trúc lặp với số lần lặp 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.
2 While…do là câu lệnh lặp với số lần chưa biết trước trong pascal.
Trang 10trước ? Cho ví dụ minh họa ?
Câu 2: Câu lệnh nào sau đây đúng ?
A While x:=10 do x:=x+1;
B While x=10 do x=x+1;
C While x<=10 do x:=x+1;
D Tất cả đều sai.
Trang 11- Tập trả lời các câu hỏi và bài tập trang 71 SGK.
- Xem trước Bài 9 Làm việc với dãy số