Đang tải... (xem toàn văn)
LỆNH LẶP VỚI SỐ LẦN CHƯA ĐỊNH TRƯỚC. VÍ DỤ ÁP DỤNG[r]
(1)(2)Câu lệnh WHILE DO
Câu lệnh WHILE DO
Trường THPT TRẦN THỊ TÂM
Trường THPT TRẦN THỊ TÂM
Bài 10
Bài 10
Cấu trúc lặp
(3)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
(4)1 BÀI TOÁN MỞ ĐẦU
1
3
1 2
1 1
1
N S
0001 .
0 1
N
cho đến
(5)Xuất phát
S 12
N =1
3 1 N= 2
+ …
N
N
1
Xuất phát S =
N= 3
1 1
Ý TƯỞNG
(6)GIẢI THUẬT
B1: S 0; N1;
B2: Nếu 1/N<0.0001 B5 B3: S S+1/N;
B4: N N+1;
Quay lại B2
B5: Đưa S hình Kết thúc
Bắt đầu Bắt đầu
S:=0; N:=1 S:=0;
N:=1
S:=S+1/N S:=S+1/N
1/N< 0.000
1 1/N< 0.000
1
Kết thúc Kết thúc
N := N+1 N := N+1
Â
S
Xuất: S
(7)2 CÂU LỆNH WHILE - DO Cú pháp:
While <Điều kiện> Do < Câu lệnh > ;
2 Sơ đồ khối:
Đkiện
Đkiện
Câu lệnh
Câu lệnh
Â
S
3 Thực lệnh:
B1: Kiểm tra <Điều kiện>
B2: Nếu Đúng
2.1 Thực <Câu lệnh > 2.2 Biến đổi đk;
2.3 Quay bước
(8)CHƯƠNG TRÌNH BÀI TỐ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 Bắt đầu S:= 0; N:=1 S:= 0; N:=1
Xuất: S
Xuất: S
S:=S+1/N S:=S+1/N 1/N>= 0.0001 1/N>= 0.0001 Kết thúc Kết thúc N := N +
1
N := N + 1
Â
S
B1: S 0; N1;
B2: Nếu 1/N<0.0001 B5 B3: S S+1/N;
B4: N N+1;
Quay lại B2
(9)3 VÍ DỤ Bài tốn 2: Tìm ước chung lớn hai số nguyên dương M, N
Xác định toán
Input: Số nguyên dương M, N
Output: UCLN(M,N)
Tổ chức liệu M, N: Số nguyên; Ý tưởng giải thuật
(10)GIẢI THUẬT
B1: Nhập M, N
B2: Nếu M=N ước
chung lớn M;
B3: Nếu M>N M M– N ngược lại N N- M;
B4: Quay lại B2;
Bắt đầu Bắt đầu
Kết thúc Kết thúc Nhập M, N
Nhập M, N
M:=M-N M:=M-N
M=N M=N
N := N- M N := N- M
 S
Xuất: M
Xuất: M
M > N M >
N
(11)CHƯƠNG TRÌNH Program UCLN;
Var M, N: interger ;
Begin
write (‘M, N=‘);
readln(M,N);
While (M<>N)
If M > N then M:=M-N
else N:=N-M;
Writeln (‘ UCLN= ’, M);
Readln
End
Bắt đầu Bắt đầu
Nhập M, N
Nhập M, N
M:=M-N M:=M-N M=N M=N Kết thúc Kết thúc
N := N- M N := N- M
 S
Xuất: M
Xuất: M
M > N M > N Đ S Bắt đầu Bắt đầu
Nhập M, N
Nhập M, N
M:=M-N M:=M-N
M=N M=N
N := N- M N := N- M
 S
Xuất: M
Xuất: M
M > N M >
N
Đ S Kết thúcKết thúc
Bắt đầu Bắt đầu
Nhập M, N
Nhập M, N
M:=M-N M:=M-N
M=N M=N
N := N- M N := N- M
 S
Xuất: M
Xuất: M
M > N M >
N
Đ S Kết thúcKết thúc
Bắt đầu Bắt đầu
Nhập M, N
Nhập M, N
M:=M-N M:=M-N
M=N M=N
N := N- M N := N- M
 S
Xuất: M
Xuất: M
M > N M >
N
(12)CỦNG CỐ
Lặp số lần biết trước
Lặp tiến: For <bđ>:= <gtđầu> to < gtcuối> <cl>;
Lặp lùi: For <bđ>:= <gtcuối> downto <gtđầu> <cl>;
Lặp số lần chưa biết trước
Cú pháp: While <điều kiện> <câu lệnh>;
Áp dụng
(13)Program Tinh_tong; Var s: Real ; i: integer ;
Begin
s := 0; i:=1
While (i <= 10) Do Begin
s:=s+ i;
i:=i+1;
End;
Write (‘ Tong s= ’, s:8:4);
Readln
End
(14)