Bài 8. Lặp với số lần chưa biết trước
Chia sẻ bởi Trần Thị Oanh |
Ngày 24/10/2018 |
48
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:
Kiểm tra bài cũ
Cú pháp:
For:= to do ;
đáp án
Ví d?
A:= i+1;
For
i
:=
1
to
10
do
Kiểm tra bài cũ
For:= to do ; (1)
? Em hãy cho biết số vòng lặp của câu lệnh lặp (1). Tính số vòng lặp và giá trị của biến A trong ví dụ trên
Số vòng lặp = giá trị cuối - giá trị đầu + 1
đáp án
Số vòng lặp = 10 - 1 + 1 = 10
Ví d?
Giá trị của biến A
-Vòng 1: i=1; A=1+1=2
-Vòng 2: i=2; A=2+1=3
-Vòng 3: i=3; A=3+1=4
-Vòng 4: i=4; A=4+1=5
-Vòng 5: i=1; A=5+1=6
-Vòng 6: i=1; A=6+1=7
-Vòng 7: i=7; A=7+1=8
-Vòng 8: i=8; A=8+1=9
-Vòng 9: i=9; A=9+1=10
-Vòng 10: i=10; A=10+1=11
Vậy giá trị của biến A là 11
Ví dụ 1: Điều kiện để kết thúc hoạt động lặp là có người nhấc máy.
Ví dụ 2: Điều kiện để kết thúc hoạt động lặp là Tổng Tn nhỏ nhất lớn hơn 1000.
Kí hiệu S là tổng Tn cần tìm. Ta có thuật toán sau:
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ả, kết thúc thuật toán
. Việc thực hiện phép cộng ở thuật toán trên được lặp lại với số lần chưa biết trước, phụ thuộc vào một điều kiện (S ? 1000) và chỉ dừng khi điều kiện đó sai.
Điều kiện?
Câu lệnh
Đúng
Sai
Kết thúc
While <điều kiện> do;
Trong đó
a. Cú pháp của câu lệnh lặp với số lần chưa biết trước:
-đ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 hay câu lệnh ghép;
b. Hoạt động của câu lệnh
-Bước 1: Máy tính kiểm tra điều kiện
+Nếu điều kiện sai, câu lệnh sẽ bỏ qua và việc thực hiện lặp
sẽ kết thúc
-Bước 2: +Nếu điều kiện đúng, câu lệnh thực hiện và quay lại bước 1
uses crt;
Var x:real;
n:integer;
Const sai_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.
So n nho nhat de 1/n < 0.003 la 334
Ctrl + F9
Sai_so=0.003 , n = 334
Ví dụ 3:
uses crt;
Var x:real;
n:integer;
Const sai_so=0.002;
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.
So n nho nhat de 1/n < 0.002 la 501
Ctrl + F9
Sai_so=0.002 , n = 501
Ví dụ 3:
uses crt;
Var x:real;
n:integer;
Const sai_so=0.001;
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.
So n nho nhat de 1/n < 0.001 la 1001
Ctrl + F9
Sai_so=0.001 , n = 1001
Ví dụ 3:
Var S, n: integer;
Begin
S:=0; n:=1;
While S<= 1000 do
begin n:=n+1; S:= S + n; end;
writeln(‘so n nho nhat de tong > 1000 la ‘, n);
writeln(‘Tong dau tien > 1000 la ‘, S);
readln
End.
So n nho nhat de tong > 1000 la 45
Tong dau tien > 1000 la 1034
Ctrl + F9
n = 45 , S = 1034
Ví dụ 4:
Var i: integer;
T: real;
Begin
T:=0;
While i<= 100 do
begin i:=i+1; T:= T + 1/i; end;
writeln(‘Tong T la ‘, T:4:2);
readln
End.
Ví dụ 5:
Var i: integer;
T: real;
Begin
T:=0;
For i:=1 to 100 do T:= T + 1/i;
writeln(‘Tong T la ‘, T:4:2);
readln
End.
Tong T la 5.19
Var a: integer;
Begin
a:=5;
while a<6 do writeln(‘a’);
End.
Trong chương trình trên, giá trị của biến a luôn luôn bằng 5, điều kiện a<6 luôn đúng nên lệnh writeln(`a`) thực hiện. (lặp vô hạn lần)
Cú pháp:
For
đáp án
Ví d?
A:= i+1;
For
i
:=
1
to
10
do
Kiểm tra bài cũ
For
? Em hãy cho biết số vòng lặp của câu lệnh lặp (1). Tính số vòng lặp và giá trị của biến A trong ví dụ trên
Số vòng lặp = giá trị cuối - giá trị đầu + 1
đáp án
Số vòng lặp = 10 - 1 + 1 = 10
Ví d?
Giá trị của biến A
-Vòng 1: i=1; A=1+1=2
-Vòng 2: i=2; A=2+1=3
-Vòng 3: i=3; A=3+1=4
-Vòng 4: i=4; A=4+1=5
-Vòng 5: i=1; A=5+1=6
-Vòng 6: i=1; A=6+1=7
-Vòng 7: i=7; A=7+1=8
-Vòng 8: i=8; A=8+1=9
-Vòng 9: i=9; A=9+1=10
-Vòng 10: i=10; A=10+1=11
Vậy giá trị của biến A là 11
Ví dụ 1: Điều kiện để kết thúc hoạt động lặp là có người nhấc máy.
Ví dụ 2: Điều kiện để kết thúc hoạt động lặp là Tổng Tn nhỏ nhất lớn hơn 1000.
Kí hiệu S là tổng Tn cần tìm. Ta có thuật toán sau:
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ả, kết thúc thuật toán
. Việc thực hiện phép cộng ở thuật toán trên được lặp lại với số lần chưa biết trước, phụ thuộc vào một điều kiện (S ? 1000) và chỉ dừng khi điều kiện đó sai.
Điều kiện?
Câu lệnh
Đúng
Sai
Kết thúc
While <điều kiện> do
Trong đó
a. Cú pháp của câu lệnh lặp với số lần chưa biết trước:
-đ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 hay câu lệnh ghép;
b. Hoạt động của câu lệnh
-Bước 1: Máy tính kiểm tra điều kiện
+Nếu điều kiện sai, câu lệnh sẽ bỏ qua và việc thực hiện lặp
sẽ kết thúc
-Bước 2: +Nếu điều kiện đúng, câu lệnh thực hiện và quay lại bước 1
uses crt;
Var x:real;
n:integer;
Const sai_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.
So n nho nhat de 1/n < 0.003 la 334
Ctrl + F9
Sai_so=0.003 , n = 334
Ví dụ 3:
uses crt;
Var x:real;
n:integer;
Const sai_so=0.002;
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.
So n nho nhat de 1/n < 0.002 la 501
Ctrl + F9
Sai_so=0.002 , n = 501
Ví dụ 3:
uses crt;
Var x:real;
n:integer;
Const sai_so=0.001;
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.
So n nho nhat de 1/n < 0.001 la 1001
Ctrl + F9
Sai_so=0.001 , n = 1001
Ví dụ 3:
Var S, n: integer;
Begin
S:=0; n:=1;
While S<= 1000 do
begin n:=n+1; S:= S + n; end;
writeln(‘so n nho nhat de tong > 1000 la ‘, n);
writeln(‘Tong dau tien > 1000 la ‘, S);
readln
End.
So n nho nhat de tong > 1000 la 45
Tong dau tien > 1000 la 1034
Ctrl + F9
n = 45 , S = 1034
Ví dụ 4:
Var i: integer;
T: real;
Begin
T:=0;
While i<= 100 do
begin i:=i+1; T:= T + 1/i; end;
writeln(‘Tong T la ‘, T:4:2);
readln
End.
Ví dụ 5:
Var i: integer;
T: real;
Begin
T:=0;
For i:=1 to 100 do T:= T + 1/i;
writeln(‘Tong T la ‘, T:4:2);
readln
End.
Tong T la 5.19
Var a: integer;
Begin
a:=5;
while a<6 do writeln(‘a’);
End.
Trong chương trình trên, giá trị của biến a luôn luôn bằng 5, điều kiện a<6 luôn đúng nên lệnh writeln(`a`) thực hiện. (lặp vô hạn lần)
* 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ẻ: Trần Thị Oanh
Dung lượng: |
Lượt tài: 2
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)