LẶP Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng Cấu trúc lặp dùng để mô tả thao tác lặp và được phân làm hai
Trang 2Nªu cÊu tróc c©u lÖnh rÏ nh¸nh trong
Trang 3Để in ra màn hình 10 dòng chữ
“ lop 11 A2 hoc tot” thì ta phải dùng
lệnh nào và phải dùng bao nhiêu
Trang 4Câu hỏi đặt ra:
Vậy theo các em, lặp là gì? Và
có mấy dạng lặp ?
1 LẶP
BÀI 10: CẤU TRÚC LẶP
Trang 51 1
+ +
+
=
a a
a a
S
1
2
1 1
1
1
+ +
+
+ +
+ +
+
=
N a
a a
a S
cho đến khi 1 < 0 0001
+ N a
Bài toán 1:
Trang 6S sau = S trước + 1/(a+N) (với N =1,2, ,100 )
a
Trang 7Bµi to¸n 2: TÝnh tæng S, víi a lµ sè nguyªn vµ a>2
1
2
1 1
+ +
+
=
N a
a a
a S
0001
0
1
<
+ N a
a
Trang 8TÌM SỰ KHÁC BIỆT
100
1
2
11
++
+
=
a a
a a
2
11
11
++
+
++
++
+
=
N a
a a
a S
Cho đến khi 1 < 0.0001
+ N a
S l n l p bi t tr ố ầ ặ ế ướ c
Việc tăng giá trị cho tổng S
được lặp đi lặp lại 100 lần
a
1
<
+
Trang 91 LẶP
Lặp là điều khiển thực hiện công việc lặp đi lặp lại khi chưa đủ số lần lặp hoặc khi có một điều kiện nào đó còn đúng
Cấu trúc lặp dùng để mô tả thao tác lặp và được phân làm hai loại
- Lặp với số lần biết trước
- Lặp với số lần chưa biết trước
BÀI 10: CẤU TRÚC LẶP
Trang 10Ví dụ 1: Học sinh A bị phạt trực nhật trong 7 ngày.
Ví dụ 2: Học sinh B bị phạt trực nhật cho đến khi nào cô
giáo thấy bạn có ý thức tốt thì mới không phải trực nhật nữa.
Không biết trước phải trực nhật bao nhiêu ngày
=> Lặp với số lần không biết trước
Phải trực nhật 7 ngày => Lặp với số lần biết trước
Trang 111 LẶP
BÀI 10: CẤU TRÚC LẶP
2 LẶP VỚI SỐ LẦN BIẾT TRƯỚC
VÀ CÂU LỆNH FOR - DO
Trang 12Bước 1 S←1/a ; N←0;
Bước 2 N←N+1;
Bước 3 Nếu N>100 thỡ chuyển đến bước 5;
Bước 4 S←S+1/(a+N) rồi quay lại bước 2;
Bước 5 Đưa S ra màn hỡnh rồi kết thỳc.
Thuật toán
Tong_1a Bước 1 S←1/a ; N←101;
Bước 2 N←N-1;
Bước 3 Nếu N<1 thỡ chuyển đến bước 5;
Bước 4 S←S+1/(a+N) rồi quay lại bước 2; Bước 5 Đưa S ra màn hỡnh rồi kết thỳc.
Giỏ trị N khi bắt đầu tham gia vũng
lặp là 1 và sau mỗi lần lặp N tăng lờn
1 cho đến khi N>100(N=101) thỡ kết
thỳc.
Giỏ trị N khi bắt đầu tham gia vũng lặp
là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (N=0) thỡ kết thỳc.
Thuật toán tong_1b
2/ Lặp với số lần biết trước và câu lệnh For - do
Với a là số nguyên và a>2 Tính và đưa kết quả ra màn hình tổng
100
1
2
1 1
+ +
+
=
a a
a a
S
Số lần lặp của cả hai thuật toán trên là biết trước và
như nhau ( 100 lần)
Trang 13Bước 1 S←1/a ; N←0;
Bước 2 N←N+1;
Bước 3 Nếu N>100 thỡ chuyển đến bước 5;
Bước 4 S←S+1/(a+N) rồi quay lại bước 2;
Bước 5 Đưa S ra màn hỡnh rồi kết thỳc.
Thuật toán
Tong_1a Bước 1 S←1/a ; N←101;
Bước 2 N←N-1;
Bước 3 Nếu N<1 thỡ chuyển đến bước 5;
Bước 4 S←S+1/(a+N) rồi quay lại bước 2; Bước 5 Đưa S ra màn hỡnh rồi kết thỳc.
Giỏ trị N khi bắt đầu tham gia vũng
lặp là 1 và sau mỗi lần lặp N tăng lờn
1 cho đến khi N>100(N=101) thỡ kết
thỳc.
Giỏ trị N khi bắt đầu tham gia vũng lặp
là 100 và sau mỗi lần lặp N giảm đi 1 cho đến khi N<1 (N=0) thỡ kết thỳc.
Thuật toán tong_1b
2/ Lặp với số lần biết trước và câu lệnh For - do
Với a là số nguyên và a>2 Tính và đưa kết quả ra màn hình tổng
100
1
2
1 1
+ +
+
=
a a
a a
S
D ng l p ti n: ạ ặ ế
D ng l p ti n: ạ ặ ế Dạng lặp lùi
Trang 14FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>;
Giá trị đầu, giá trị cuối là các biểu thức cùng kiểu với biến đếm, giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
Giá trị biến đếm được điều chỉnh tự động, vì vậy câu
lệnh sau DO không được thay đổi giá trị biến đếm.
Trang 15Dạng lặp tiến:
For <biến đếm> := <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
Dạng lặp lùi:
For <biến đếm> := <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;
Trang 16Dạng Tiến :
For i:=1 to 1000 do Writeln (‘lop 11A2 hoc tot’);
Trang 17Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến
đếm lần lượt nhận các giá trị liên tiếp tăng từ giá trị đầu đến giá trị cuối
b Dạng 2 (dạng lùi)
Câu lệnh viết sau từ khoá do được thực hiện tuần tự, với biến
đếm lần lượt nhận các giá trị liên tiếp giảm từ giá trị cuối đến giá trị đầu
Trang 18Quan sát sách giáo khoa trang 44, chương trình cài
đặt các thuật toán
Tong_1A?
Trang 19* Bước 1: S ← 1/a; N ← 0;
* Bước 2: N ← N + 1;
* Bước 3: Nếu N > 100 thì chuyển đến bước 5;
* Bước 4: S ← S + 1/(a + N) rồi quay lại bước 2;
* Bước 5: Đưa S ra màn hình, rồi kết thúc.
Trang 20Quan sát sách giáo khoa trang 44, chương trình cài
đặt các thuật toán
Tong_1B?
Trang 21* Bước 1: S ← 1/a; N ← 101;
* Bước 2: N ← N - 1;
* Bước 3: Nếu N < 1 thì chuyển đến bước 5;
* Bước 4: S ← S + 1/(a + N) rồi quay lại bước 2;
* Bước 5: Đưa S ra màn hình, rồi kết thúc.
Trang 22GHI NHỚ
CẤU TRÚC
LẶP
Số lần biết trước
Số lần chưa biết trước
For <biến đếm> := <giá trị đầu>
to <giá trị cuối> do <câu lệnh>;
For <biến đếm> := <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;
Lặp tiến
Lặp lùi
Trang 23D Không đưa ra kết quả gì
Câu 2: Trong ngôn ngữ lập trình Pascal, đoạn chương trình sau
Trang 24CỦNG CỐ BÀI HỌC
Câu 3: Cú pháp lệnh lặp nào sau đây là sai?
A For i:=10 downto 1 do writeln(‘Lop 11A1’);
B For i:=1 downto 10 do writeln(‘Lop 11A1’);
C For i:=0 to 100 do writeln(‘Lop 11A1’);
D For i:=1 to 1 do writeln(‘Lop 11A1’);
Trang 25C¸c c©u lÖnh Pascal sau cã hîp lÖ kh«ng? V× sao ?
20 35
40 45 50
10
HẾT GIỜ
For i:=100 to 1 do Write(‘A’);
For i:=1.5 to 10.5 do Write(‘A’);
ÑS:kh«ng hîp lÖ, v× gi¸ trÞ ®Çu, gi¸ trÞ cuèi lµ d÷ liÖu
kiÓu sè thùc
For i:=1 to 10 do Write(‘A’);
ÑS:Hîp lÖ, AAAAAAAAAA
For i:=10 Downto 1 do Write(‘A’);
ÑS:Hîp lÖ, AAAAAAAAAA