Bài 7. Câu lệnh lặp

Chia sẻ bởi Trần Nữ Vĩ Thức | Ngày 24/10/2018 | 45

Chia sẻ tài liệu: Bài 7. Câu lệnh lặp thuộc Tin học 8

Nội dung tài liệu:

- Viết đoạn lệnh xuất ra các số từ 1 đến 20 mỗi số nằm trên 1 hàng
ĐẶT VẤN ĐỀ
Ví dụ
writeln(1);
writeln(2);
writeln(3);
…………
writeln(19);
writeln(20);
Chương trình sử dụng 20 câu lệnh writeln
- Viết đoạn lệnh xuất ra các số từ 1 đến 100 mỗi số nằm trên 1 hàng → sử dụng 100 câu lệnh writeln
Cấu trúc lặp là cấu trúc có thể lặp đi lặp lại những hành động trong khi điều kiện còn thỏa mãn
Có 2 dạng cấu trúc lặp là
Lặp với số lần lặp xác định thể hiện bỡi câu lệnh For
Lặp với số lần lặp không xác định thể hiện bỡi 2 câu lệnh While và Repeat
Giải pháp
ĐẶT VẤN ĐỀ
CÁC LỆNH LẶP
FOR := TO DO ;
Biến_điều_khiển: là biến thuộc kiểu đếm được
Giá_trị_đầu, Giá_trị_cuối: là các biểu thức thuộc kiểu đếm được và giá trị của các biểu thức phải gán được cho biến_điều_khiển
1. Lệnh For…To…Do (dạng tiến)
I. LẶP VỚI SỐ LẦN LẶP XÁC ĐỊNH
Điều kiện: giá_trị_đầu phải <= giá_trị_cuối
FOR TO DO..
i :=
0
20
c :=
`A`
`Z`
F
T
i <= giá_trị_cuối ?
B1: Biến điều khiển nhận giá trị đầu
B2: Kiểm tra biến điều khiển, nếu i<= giá trị cuối thì chuyển đến B4
B3: Nếu i >giá trị cuối thì kết thúc dừng lặp;
B4 : Thực hiện câu lệnh S sau DO và tăng giá trị biến điều khiển lên 1 đơn vị rồi quay lại B2
i:= i+1
HOẠT ĐỘNG VÀ LƯU ĐỒ CỦA LỆNH LẶP FOR …TO…DO
Số lần thực hiện câu lệnh S là bao nhiêu?
Số lần thực hiện câu lệnh S: giá trị cuối - giá trị đầu +1 lần
VÍ DỤ 1: Hãy in các số từ 1 đến 20 mỗi số nằm trên 1 hàng

i := 1
i <= 20
i := i+1
writeln(i)
1 < 20
2 < 20
3 < 20
20 = 20
21 > 20
i := 2
i := 3
i := 4
i := 21
1
2
3
20
T
F
Dừng vòng lặp
For i:=1 to 20 do writeln(i);
FOR := DOWNTO Giá_trị_cuối DO ;
Sau mỗi lần thực hiện câu lệnh biến_điều_khiển sẽ giảm đi 1 đơn vị
Trong đó : giá_trị_đầu >= giá_trị_cuối
2. Lệnh For…Downto…Do (dạng lùi)
I. LẶP VỚI SỐ LẦN LẶP BIẾT TRƯỚC
VÍ DỤ 2 : Hãy in các số từ 20 đến 1 mỗi số nằm trên 1 hàng

For i:=20 downto 1 do writeln(i);
i:=20
Writeln(20);
i >= 1
i := i-1
Writeln(19);
T
END
F
i GIẢM XUỐNG 1 ĐƠN VỊ
20 >1
i:=19
19>1
i GIẢM XUỐNG 1 ĐƠN VỊ
i:=18
Writeln(18);
18>1
i GIẢM XUỐNG 1 ĐƠN VỊ
i:=17
Writeln(17);
17>1
i GIẢM XUỐNG 1 ĐƠN VỊ
i:=1
Writeln(1);
1=1
i GIẢM XUỐNG 1 ĐƠN VỊ
i:=0
0<1
F
T

i <= giá_trị_cuối ?
i:= i+1
HOẠT ĐỘNG VÀ LƯU ĐỒ CỦA LỆNH LẶP FOR …DOWNTO…DO

i >= giá_trị_cuối ?
i:= i -1
NHẬN XÉT:
S1 = 1
S2 = S1 + 2
S3 = S2 + 3
S4 = S3 + 4


.....
Sn= Sn-1 + n
Bắt đầu từ S2 việc tính S được lặp đi lặp lại n -1 lần theo quy luật
Ssau = Strước+ i
với i chạy từ 2  n
. . . . . . . . . . . . . . . . . . . .
S = 1
+ 2
+ 3
+ 4
+ . . .
+ N
VÍ DỤ3 ÁP DỤNG LỆNH LẶP VỚI SỐ LẦN BIẾT TRƯỚC
Viết chương trình tính
Var i,N : Integer; S :Longint;
BEGIN
Readln;
END.
S:=1;
FOR i:=2 to N do S := S+i;
Writeln(‘ Tong S =’,S:8);
Write(‘ Nhap vao gia tri cua N :’);readln(N);
Program Tinh_tong;
Chương trình tính tổng sau:
FOR i:=N downto 2 do S := S+i;
S = 1
+ 2
+ 3
+ 4
+ . . .
+ N
S:=0;
FOR i:=1 to N do S := S+i;
WHILE <Điều kiện lặp> DO < S>;
Điều kiện lặp
T
S
<Điều kiện lặp>: Là biểu thức logic và được kiểm tra đầu tiên
nếu nhận giá trị True thì lệnh sẽ thực hiện
nếu nhận giá trị False thì lệnh While bị bỏ qua
F
Dùng để lặp đi lặp lại lệnh < S> trong khi <điều kiện lặp> còn thỏa
II. LẶP VỚI SỐ LẦN LẶP KHÔNG XÁC ĐỊNH
a. Câu lệnh WHILE
Nếu <điều kiện lặp> luôn nhận giá trị True thì ta sẽ có vòng lặp vô hạn, khi đó muốn dừng ta phải ấn Ctrl-Pause
VÍ DỤ 4 Tính tổng các số nhập vào từ bàn phím, cho đến khi nào số 10 được nhập vào thì xuất tổng không cộng 10.
Nhập số x
Nếu x <> 10
- Cộng x vào tổng S
- Nhập vào x khác
3) Ngược lại: Dừng
Công việc lặp
Điều kiện lặp
Các bước thực hiện:
PROGRGAM Tinh_tong;
VAR
x, S: Real;
BEGIN
S := 0;
Write(‘Nhap x: ’);
readln(x);
while x <> 10 do {trong khi x còn khác 10 }
begin
S := S + x; {cộng dồn x vào S}
Write(‘Nhap x: ’);
readln(x); {đọc một x khác}
end;
writeln(‘Ket qua: ’, S:5:2);
END.
Nhap x:
Nhap x:
Nhap x:
Ket qua:
1.5
3.6
10
5.10
Vòng lặp
VÍ DỤ 4 Tính tổng các số nhập vào từ bàn phím, cho đến khi nào số 10 được nhập vào thì xuất tổng không cộng 10.
REPEAT
< Si > {Với i=1,2,…,n}
UNTIL <Điều kiện dừng>;
Điều kiện dừng
F

Si
T
II. LẶP VỚI SỐ LẦN LẶP KHÔNG BIẾT TRƯỚC
Dùng để lặp đi lặp lại công việc < Si> cho đến khi <điều kiện dừng> thỏa mãn.
b. Câu lệnh REPEAT
Chu kỳ lặp như sau : Thực hiện công việc xong rồi xét <điều kiện dừng>.
Nếu <điều kiện dừng> cho giá trị False thì lặp lại thực hiện công việc rồi kiểm tra lại <điều kiện dừng>.
cho đến khi <điều kiện dừng>. nhận giá trị True thì vòng lặp kết thúc
VÍ DỤ 5 Tính tổng các số nhập vào từ bàn phím, cho đến khi nào số 10 được nhập vào thì xuất tổng có cộng với 10.
Nhap x:
Nhap x:
Nhap x:
Ket qua:
1.5
3.6
10
15.10
Vòng lặp
PROGRGAM Tinh_tong;
VAR
x, S: Real;
BEGIN
S := 0;
Repeat
write(‘Nhap x: ’);
readln(x); {đọc vào biến x}
S := S + x; {cộng dồn x vào S}
Until x = 10; {cho đến khi x=10 thì dừng}
writeln(‘Kết quả: ’, S:5:2);
END.
III. ĐẶC ĐIỂM CỦA TỪNG CẤU TRÚC LẶP
Giống nhau : Đều là cấu trúc lặp
Khác nhau :
III. ĐẶC ĐIỂM CỦA TỪNG CẤU TRÚC LẶP (tt)
Khác nhau : So sánh cấu trúc While và Repeat
.
S := 0;
Repeat
readln(x);
S := S + x;
Until x = 10 ;
.
S = 1.5 + 3.6 = 5.10
S = 1.5 + 3.6 + 10 = 15.10
.
S := 0;
readln(x);
While x <> 10 do
Begin
S := S + x;
readln(x);
End;
.
While .. do ..
Repeat .. until ..
While .. do Repeat .. until
1. Bài toán
S= 12+22+32+42+…+N2
Viết đoạn chương trình tính giá trị tổng S
CỦNG CỐ BÀI
Dùng cấu trúc For:
.
readln(n); {Đọc vào n}
S := 0; {Gán tổng ban đầu = 0}
for i:=1 to n do {Vòng lặp i chạy từ 1 đến n}
S := S + (i*i); {Cộng dồn i2 vào S}
.
Viết chương trình tính:
SN = 12 + 22 + 32 + .. + N2
Viết chương trình tính:
SN = 12 + 22 + 32 + .. + N2
Dùng cấu trúc while:
.
readln (n); {Đọc vào n}
S := 0; {Gán tổng ban đầu = 0}
i := 1; {Gán giá trị i = 0}
while i <= n do {Trong khi i còn < n}
begin
S := S + (i*i); {Cộng dồn i2 vào S}
i := i + 1; {Tăng i lên 1 đơn vị}
end;
Dùng cấu trúc repeat:
.
readln (n); {Đọc vào n}
S := 0; {Gán tổng ban đầu = 0}
i := 1; {Gán giá trị i = 1}
Repeat
S := S + (i*i); {Cộng dồn i2 vào S}
i := i + 1; {Tăng i lên 1 đơn vị}
Until i > n; {Thực hiện cho đến khi i > n}

Viết chương trình tính:
SN = 12 + 22 + 32 + .. + N2
* 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 Nữ Vĩ Thức
Dung lượng: | Lượt tài: 1
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)