Trường THPT TRẦN THỊ TÂMBài 10 Cấu trúc lặp... 1 2 3 BÀI TOÁN MỞ ĐẦU LỆNH LẶP VỚI SỐ LẦN CHƯA ĐỊNH TRƯỚC VÍ DỤ ÁP DỤNG NỘI DUNG... BÀI TOÁN MỞ ĐẦU...
Trang 2Trường THPT TRẦN THỊ TÂM
Bài 10
Cấu trúc lặp
Trang 31 2 3
BÀI TOÁN MỞ ĐẦU
LỆNH LẶP VỚI SỐ LẦN CHƯA ĐỊNH TRƯỚC
VÍ DỤ ÁP DỤNG
NỘI DUNG
Trang 41 BÀI TOÁN MỞ ĐẦU
1
3
1 2
1 1
1
+ +
+ +
+
=
N S
0001
0
1
<
N
cho đến khi
1.Bài toán: Tính và đưa ra màn hình tổng S
Trang 5Xuất phát
=
+
N =1
3
1
+
N= 2
+ …
N
N
1
+
Xuất phát S = 0
N= 3
1 1
Ý TƯỞNG
Trong khi 1/N >= 0.0001 thì S = S+1/N
N = N+1
Trang 6
GIẢI THUẬT
B1 : S 0; N1;
B2 : Nếu 1/N<0.0001 thì B5
B3 : S S+1/N;
B4: N N+1;
Quay lại B2
B5: Đưa S ra măn hình
Kết thúc
Bắ t đầu
S:=0; N:=1
S:=S +1/N
1/N<
0.000 1
1/N<
0.000 1
Kết thúc
N := N+1
Đ
S
Xuất: S
Trang 72 CÂU LỆNH WHILE - DO
1 Cú pháp:
While <Điều kiện> Do < Câu lệnh > ;
2 Sơ đồ khối:
Đkiện
Câu lệnh
Â
S
3 Thực hiện lệnh:
B1: Kiểm tra <Điều kiện>
B2: Nếu Đúng thì 2.1 Thực hiện <Câu lệnh > 2.2 Biến đổi đk;
2.3 Quay về bước 1
B3: Kết thúc
Trang 8CHƯƠNG TRÌNH BĂI TOÂN
Program Tinh_tong;
Var s: Real ; n: integer ;
Begin
S := 0; n:=1
While (1/n >= 0.0001) Do
Begin
s:=s+1/n;
n:=n+1;
End;
Write (‘ Tong s=: ’, s:8:4);
Readln
End.
Bắt đầ u
S:= 0; N:=1
Xuất: S
S:=S+1/N
1/N>=
0.0001
1/N>=
0.0001
Kết thúc
N := N + 1
Đ
S
B1 : S 0; N1;
B2 : Nếu 1/N<0.0001 thì B5
B3 : S S+1/N;
B4: N N+1;
Quay lại B2
B5: Đưa S ra măn hình Kết thúc
Trang 93 VÍ DỤ
Bài toán 2: Tìm ước chung lớn nhất hai số nguyên dương M, N
Xác định bài toán
Tổ chức dữ liệu M, N: Số nguyên;
Ý tưởng giải thuật
- Nếu M=N thì giá trị chung là UCLN của M, N
- Nếu M > N thì UCLN(M,N)=UCLN(M,M-N)
Trang 10GIẢI THUẬT
B1: Nhập M, N
B2: Nếu M=N thì ước chung
lớn nhất bằng M;
B3: Nếu M>N thì M M– N
ngược lại N N- M;
B4: Quay lại B2;
Bắt đầu
Kết thúc Nhập M, N
M:=M-N
M=N
M=N
N := N- M
Đ S
Xuất: M
M >
N
M >
N
Trang 11CHƯƠNG TRÌNH
Program UCLN;
Begin
write (‘M, N=‘);
readln (M,N);
While (M<>N) do
If M > N then M:=M-N else N:=N-M;
Writeln (‘ UCLN= ’, M);
Readln
End
Bắt đầu
Nhập M, N
M:=M-N
M=N
Kết thúc
N := N- M
Đ S
Xuất: M
M >
N
M >
N
Bắt đầ u
Nhập M, N
M:=M-N
M=N
N := N- M
Đ S
Xuất: M
M >
N
M >
N
Đ S Kết thúc
Bắt đầu
Nhập M, N
M:=M-N
M=N
N := N- M
Đ S
Xuất: M
M >
N
M >
N
Đ S Kết thúc
Bắt đầu
Nhập M, N
M:=M-N
M=N
N := N- M
Đ S
Xuất: M
M >
N
M >
N
Trang 12CỦNG CỐ
Lặp số lần biết trước
Lặp số lần chưa biết trước
Áp dụng
Sử dụng câu lệnh While _ do viết chương trình tính tổng sau S= 1 + 2 + 3 + 4 + + 10 ?
Trang 13Program Tinh_tong;
Begin
s := 0; i:=1 While (i <= 10) Do
Begin
s:=s+ i;
i:=i+1;
End;
Write (‘ Tong s= ’, s:8:4);
Readln
CHƯƠNG TRÌNH