Chào quý thầy cô và các bạn!
Trường THPT Lê Hữu Trác
Tổ Tin Học
Bài 10
cấu trúc lặp
Tiết 2
Hãy viết cú pháp câu lệnh For - do dạng tiến, dạng lùi?
?
Dạng 2 (dạng lùi)
Dạng 1 (dạng tiến)
FOR := TO DO < câu lệnh>;
FOR := DOWNTO DO ;
a. Bài toán:
Dữ liệu ra (Output) : Tổng S v� giỏ tr? I ?
Dữ liệu vào (Input) : khụng cú
Cho đến khi S V?a d? l?n hon 100
Tính giá trị tổng S, v� tỡm giỏ tr? I d?
3. Lặp với số lần lặp CHƯA biết trước - lệnh While _Do
S= 1 + 2 + 3 +4 +..+ I
Hãy xác định INPUT, OUTPUT của bài toán trên?

S=
1
2
S =1
+
S =3
3
+
S =6
4
+
S =10
5
+
S =15
6
+
S =21
7
+
8
+
S =28
9
+
S =36
10
+
S =45
11
+
S =55
12
+
S =66
13
+
S =78
14
+
S =91
S =105
15
16
17
….. I
S = 1 + 2 + 3 + 4 + 5 +………+ I ,
S vừa đủ lớn hơn 100 S= ?, I = ?
Mô phong Sơ đồ
S := 0 ; i := 1;
S<=100
S := S + I ;
I := I +1;
S := 0 ; I := 1;
S<=100
Đ
Đ
S := 0 +1 ;
I := 1 +1;
S =1
Đ
Đ
Đ
I =2
In Tổng S
Tổng S=105
s
S
S<=100
S := 1 +2 ;
I := 2 +1;
S =3
I =3
S<=100
S := 3 +3 ;
I := 3 +1;
S =6
I =4
S<=100
S := 6 + 4 ;
I := 4 +1;
S =10
I =5
S<=100
S := 10 +5 ;
I := 5 +1;
S =15
I =6
S<=100
S := 78 +13 ;
I := 13 +1;
S =91
I =13
S<=100
S := 91 +14 ;
I := 13 +1;
S =105
I =14
S=105=<100
I =14
KT
S=1+2+3+4+5 +………..I , S vừa đủ lớn hơn 100 S= ?, I = ?
KT
Cấu trúc lệnh While-do
WHILE <Điều kiện> DO ;

While,Do L� t? khoỏ
Điều kiện: Là biểu thức lôgic.

Câu lệnh: Là một câu lệnh của Pascal.
b. Lặp với số lần lặp chưa biết trước
Trong đó:
Chừng nào điều kiện còn đúng thì câu lệnh còn được thực hiện.
Câu lệnh
Điều kiện
Đúng
Sai
* Một số chú ý
Trong vòng lặp while-do
+ Nếu ngay sau lần kiểm tra đầu tiên mà kết quả là sai thì các câu lệnh trong vòng lặp sẽ không được thực hiện lần nào.
+ Số lần kiểm tra chính là số lần lặp.
+ Tùy theo điều kiện mà viết các câu lệnh trong vòng lặp cho phù hợp.
- Các câu lệnh trong vòng lặp thường lặp đi lặp lại rất nhiều lần, vì vậy để nâng cao hiệu quả chương trình thì những thao tác không cần lặp nên đưa ra ngoài vòng lặp.
?:
+ Công việc lặp lại là gì?
+ Điều kiện gì để lặp lại ?
c. Một số ví dụ
Bài toán 1:
Nhận xét:
Chừng nào S<=100 thì còn thực hiện:
+ Cộng vào tổng S thêm giá I.
+ Tăng I thêm 1 đơn vị.
Tính giá trị tổng S, và tìm giá tri i để
Cho đến khi S vừa đủ lớn hơn 100
Mophong
Bước 1:
S:=0; I:=1;
{Khởi tạo S và I}
Bước 2:
Nếu S >100 thỡ chuy?n sang Bước 4
Bước 3:
S:=S+I;
I:=I+1;
=> quay lại bước 3
thuật toán
Đưa ra S,I
=> Kết thúc
? Vòng lặp chỉ dừng khi S v?a d? l?n hon 100
S
Đ
Bước 4: Dua ra S v� I
=> Kết thúc.
Chương trình
Program Bai_toan;
Uses Crt;
Var S, I : Integer;

BEGIN
Clrscr;
S:=0;I:=1;
WHILE S<= 100 DO
BEGIN
S:=S+ I;
I:=I+1;
END;
Writeln(`Gia tri cua tong S = `,S:6,` Den gia tri`,I:4);
Readln;
END.
Lập chương trình nhập vào hai số nguyên dương M,N. Tìm ƯCLN của hai số đó.
Bài toán 2
Hãy xác định INPUT và OUTPUT của bài toán trên!
Input: (Dữ liệu vào) Nhập 2 số M,N
Output: (Dữ liệu ra) UCLN(M,N)
B1: Nhập M,N;
B2 : Chừng nào M?N
nếu M>N thì M:=M-N,
ngược lại thì N:=N-M;
B3: Đến khi M=N thì
=> Đưa ra ƯCLN(M,N)=M;
=> Kết thúc.
B1: Nhập M,N
B2 : While M<>N DO
Begin
IF M>N then M:=M-N
else N:=N-M; end;
B3: In ƯCLN(M,N)
Thuật toán
các bước viết chương trình
?:
+ Công việc lặp lại là gì?
+ Điều kiện gì để lặp lại ?
Nhận xét
- Chừng nào M<>N thì còn thực hiện:
Nếu M>N thì M:= M - N, ngược lại thì N:= N - M
d. So sánh câu lệnh While-do và if-then dạng thiếu
Hãy so sánh sự giống và khác nhau hoạt động của câu lệnh
While-do và If-then dạng khuyết?
Điều Kiện
Công Việc
True
False
Điều Kiện
Công Việc
True
False
While-do
If-then
If-then dạng thiếu while-do
1. Kiểm tra điều kiện 1 lần

2. Nếu Đk đúng thực hiện Công việc 1 lần rồi kết thúc câu lệnh

3. Nếu Đk sai thì Kết thúc câu lệnh
- Kiểm tra điều kiện hơn 1 lần
- Nếu điều kiện đúng thực hiện Công việc 1 lần rồi quay lại kiểm tra Đk, câu lệnh vẫn chưa kết thúc

- Nếu Đk sai thì Kết thúc câu lệnh
Củng cố
1. Một số câu hỏi trắc nghiệm
TRẮC NGHIỆM
2. Bài tập về nhà
Làm bài tập 3, 7, 8 SGK trang 51
Bài tập
Chọn đáp án đúng?
Khi chạy chương trình trên, kết quả sẽ hiển thị là bao nhiêu?
Đáp án: a. 3 b. 4 c. 5 d. 6
Bài tập
Chọn đáp án đúng?
Khi chạy chương trình trên, kết quả sẽ hiển thị là bao nhiêu?
Đáp án: a. 9 b. 10 c. 12 d. Kết quả khác
nguon VI OLET