Quan sát sách giáo khoa trang 47, chương trình cài đặt thuật toán “ Tìm ước số chung lớn nhất của hai số nguyên dương M và N?. .......[r]
Trang 2BÀI 10
CẤU TRÚC LẶP
Thời gian 3 tiết
Trang 31 1
a a
S
1
2
1 1
a a
a S
cho đến khi 1 0 0001
a
Bài toán 1:
Trang 4Mỗi lần thực hiện, giá trị tổng
tăng bao nhiêu?
i a
1
Sau mỗi lần thực hiện phép cộng, giá trị tổng S tăng ( Với i =1; 2; 3 ; ;N)
Trang 5TÌM SỰ KHÁC BIỆT
100
1
2
1 1
a a
2
1 1
a a
a S
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.
Chưa lần lặp chưa biết trước.
Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến
N a
1
Trang 61 LẶP VỚI SỐ LẦN BIẾT TRƯỚC
a Bài toán nêu vấn đề:
Dữ liệu ra (Output) : Tổng S
Lặp chương trình tính tổng sau:
N
1
4
1 3
1 2
1 1
Trang 7PHÂN TÍCH BÀI TOÁN VỚI N=100
S sau = S trước + 1/i,
Trang 8So sánh hai thuật toán sau
SƠ ĐỒ THUẬT TOÁN
Trang 9CẤU TRÚC DẠNG LẶP TIẾN
Hãy nêu cấu trúc dạng lặp tiến?
Biến đếm: biến kiểu nguyên, kí tự hoặc miền con Giá trị đầu, giá trị cuối là 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.
For <biến đếm>:= <giá trị đầu> to <giá trị cuối> do <câu lệnh>;
For < biến đếm >:= < giá trị đầu > to < giá trị cuối > do < câu lệnh >;
Ví dụ S:=1;
FOR i:=2 TO 100 DO S:=S+1/i;
Trang 10SƠ ĐỒ KHỐI Biến đếm:=giá trị đầu
Biến đếm<=giá trị cuối
• Bước 1: tính giá trị đầu, gán cho biến đếm.
• Bước 2: Nếu biến đếm <= giá trị cuối thì:
• thực hiện lệnh cần lặp.
• tăng biến đếm 1 đơn vị, quay lại bước 2
Trang 11CẤU TRÚC DẠNG LẶP LÙI
Hãy nêu cấu trúc dạng lặp lùi?
Biến đếm: biến kiểu nguyên, kí tự hoặc miền con Giá trị đầu, giá trị cuối là 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.
for <biến đếm>:= <giá trị cuối> downto <giá trị đầu> do <câu lệnh>;
for < biến đếm >:= < giá trị cuối > downto < giá trị đầu > do < câu lệnh >;
Ví dụ S:=1;
FOR i:=100 DOWNTO 2 DO S:=S+1/i;
Trang 12SƠ ĐỒ KHỐI Biến đếm:=giá trị đầu
Biến đếm>=giá trị cuối
• Bước 1: tính giá trị đầu, gán cho biến đếm.
• Bước 2: Nếu biến đếm >= giá trị cuối thì:
• thực hiện lệnh cần lặp.
• giảm biến đếm 1 đơn vị, quay lại bước 2
Trang 13Lưu ý:
+ Biến đếm là biến đơn, có kiểu nguyên hoặc kí tự
+ Giá trị đầu, giá trị cuối là các biểu thức có cùng kiểu với biến đếm Giá trị đầu phải nhỏ hơn giá trị cuối
+ Giá trị của biến đếm được điều chỉnh tự động, vì vậy câu lệnh viết sau DO không được thay đổi giá trị biến đếm
For i:=1 to 10 do write(i);
For i:=‘a’ to ‘z’ do write(i);
For i:= 100 to 200 do write(i);
Trang 14Quan 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 15* 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 16Quan 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 17* 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 18Quan sát sách giáo khoa trang
45, chương trình thực hiện việc
nhập từ bàn phím hai số
nguyên dương M và N (M<N) Tính và đưa ra màn hình tổng các số chia hết cho 3 hoặc 5 trong phạm vi từ M đến N?
Trang 22TÌM SỰ KHÁC BIỆT
100
1
2
1 1
a a
2
1 1
a a
a S
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.
Chưa lần lặp chưa biết trước.
Việc tăng giá trị cho tổng S được lặp đi lặp lại cho đến
N a
1
Trang 233 LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC
a Bài toán nêu vấn đề:
2
1 1
a a
a S
cho đến khi
0001
Trang 24THUẬT TOÁN
Nhận xét thuật toán.
* Bước 5: Đưa S ra màn hình, rồi kết thúc.
* Bước 1: S ← 1/a; N ← 0; {Khởi tạo S và N}
* Bước 3: N ← N + 1;
* Bước 2: Nếu 1/(a + N) < 0,0001 thì chuyển đến bước 5;
* Bước 4: S ← S + 1/(a + N) rồi quay lại bước 2;
Từ bước 2 đến bước 4 được lặp lại nhiều lần nếu điều kiện 1/(a + N) < 0.0001 chưa được thoả mãn
Trang 25CÂU LỆNH WHILE - DO
Hãy nêu cấu trúc lặp với câu lệnh while - do?
Điều kiện: biểu thức quan hệ hoặc biểu thức logic Câu lệnh: là môt câu lệnh trong Pascal
While <điều kiện> do <câu lệnh >;
While <điều kiện> do <câu lệnh >;
Trang 26• Bước 1: tính giá trị của <điều kiện>.
• Bước 2: Nếu <điều kiện> có giá trị đúng thì:
Trang 27BÀI TOÁN ĐẶT VẤN ĐỀ
Tính tổng S với a là số nguyên và a>2
1
2
1 1
a a
a
N a
+ Tăng giá trị của tổng S thêm 1/(a + N).
+ Tăng N thêm 1 đơn vị
Trang 28Quan sát sách giáo khoa trang
47, chương trình cài đặt thuật
toán Tong_2?
Trang 29• Tính giá trị của <điều kiện>.
•Nếu <điều kiện> có giá trị đúng thì:
• thực hiện lệnh cần lặp.
• quay lại bước 1.
Trang 30Quan sát sách giáo khoa trang
47, chương trình cài đặt thuật toán “ Tìm ước số chung lớn nhất của hai số nguyên dương
M và N?
Trang 31THUẬT TOÁN
* Bước 5: Đưa ra kết quả ƯCLN rồi kết thúc.
* Bước 1: Nhập M, N;
* Bước 3: Nếu M > N thì M ← M + N ngược lại N ← N - M
* Bước 2: Nếu M = N thì lấy giá trị chung này làm ƯCLN rồi chuyển đến bước 5;
* Bước 4: Quay lại bước 2;
Trang 32Trang 34
CÂU LỆNH REPEAT - UNTIL
Hãy nêu cấu trúc lặp với câu lệnh
repeat - until?
Repeat <câu lệnh> until <điều kiện >;
Repeat <câu lệnh> until <điều kiện >;
Trang 35Trang 36
Thực hiện tháng 8 năm 2007E_mail: dhhoang03@yahoo.co.uk