bgt3
TRANSCRIPT
Tr ng: ĐH S Ph m TP.HCMườ ư ạKhoa: Công Ngh Thông Tinệ
Môn: Ph ng Pháp D y H c 3ươ ạ ọ
TIN H C 11- CH NG 3: Ọ ƯƠC U TRÚC RẼ NHÁNH VÀ L PẤ Ặ-BÀI 10: C U TRÚC L P.Ấ Ặ
GVHD: Cô Nguy n Th Ng c Hoaễ ị ọSVTH: Nguy n Th Thanh Xuân–K36.103.090ễ ịL P: Tin4Ớ
N i dung bài h cộ ọ
L p v i s l n không bi t tr cặ ớ ố ầ ế ướ1
Ví d m r ngụ ở ộ2
C ng c và bài t p v nhàủ ố ậ ề3
Bài toán Tong_2
V i c u trúc for-do ớ ấđã h c thì áp d ng ọ ụ
vào bài toán này nh ưth nào?ế
Không th xác đ nh đ c
ểị ượ
giá tr cu i c a bài toán
ị ố ủtrên =>Không th dung ểfor-do
)(
1...
)2(
1
)1(
1
a
1
NaaaS
Cho đ n khi: ế 0001.0)(
1
Na
Tính t ng S v i a là s nguyên và a>2ổ ớ ố
)(
1...
)2(
1
)1(
1
a
1
NaaaS
Cho đ n khi: ế 0001.0)(
1
Na
Tính t ng S v i a là s nguyên và a>2ổ ớ ố
)(
1...
)2(
1
)1(
1
a
1
NaaaS
Tính t ng S v i a là s nguyên và a>2ổ ớ ố
V i N=100ớ
Bài toán
Tong_1
Bài toán
Tong_2
Bài toán Tong_1 và Tong_2
SO SÁNH SS= S+
)(
1
Na Y t ng ươ
thu t âtoan
Xuât S
=>Kêt thuc
Nh p aâ
S:=1/a; N:=1;
S:= S+1/(a+N);
N:= N+1;
Nh p aậB1
Kh i t o ở ạ S:=1/a; N:=1;B2
S:=S+1/(a+N); N:=N+1;quay l i b c 3ạ ướ
4B4
Xu t giá tr c a S ra màn hình và ấ ị ủk t thúcế
B5
3B3 Ki m traể : N u ế 1/(a+N)>=0,0001 thì th c ự hi n b c ệ ướ 4
Thuât toan chi dưng lai khi 1/(a+N)<0.0001
)(
1...
)2(
1
)1(
1
a
1
NaaaS
Cho đ n khi: ế 0001.0)(
1
Na
Tính t ng S v i a là s nguyên và a>2ổ ớ ố
1/(a+N)>= 0,0001
1/(a+N)>= 0,0001
Đ
S
-Input:-Output:
S nguyên a>2ốS th c S th a ố ự o 0001.0
)(
1
Na
WHILE <điều kiện> DO <câu lệnh>;
Điều kiện
đúngCâu lệnh
Điều kiênh: là biểu thức quan hệ hoặc logicCâu lệnh: là một câu lệnh
của Pascal.
sai
Trong đó:
Trong khi điều kiện còn đúng thì thực hiện câu lệnh
1. L p v i s l n không bi t tr cặ ớ ố ầ ế ướ
Cài đ t thu t toánặ ậ Tong_2
Ch ng trinhươPh n đ u ch ng trìnhầ ầ ươ BEGIN
Clrscr;
Write(‘Nhap a= ‘);
Readln(a);
S:=0;
N:=0;
WHILE 1/(a+N)>=0.0001 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(‘Gia tri cua tong S =
‘,S:8:3);
Readln;
END.
Ph n thân ch ng trìnhầ ươ
khai bao biên
B1: Băt đâu chương trinh
B2: Nhâp a
B3: Gan gia tri cho S va N
B4: Tinh S băng WHILE-DO
B5: Kêt thuc chương trinh
Program Tong_2;
Uses Crt;
Var a,N:Integer;
S:Real;
Demo
Ch ng trìnhươ
Chu y
Ngoài ra còn có l nh do-while, và repeat…until ệ
Có khi nào máy se ch y m t vòng l p mà không ạ ộ ặbao gi ng ng cho đ n khi t t máy không?ờ ư ế ă
N u bi u th c đi u ki n luôn nh n giá tr ế ể ứ ề ệ ậ ịtrue thì câu l nh đ c th c hi n mãi, ta g i ệ ượ ự ệ ọlà vòng l p vô h nặ ạ S=0;
i=0;While (i=0)Begin
S=s+i;End
T i sao bài toán này l i ạ ạl p vô h n?ặ ạ
Cách gi i quy t?ả ế
WHILE-DO VA FOR-DO
Xét bài toán Tong_1:
L p ch ng trình tính t ng sau:ậ ươ ổ
Có th vi t bài toán trên b ng ể ế ằcách s d ng while-do không?ử ụ
)(
1...
)2(
1
)1(
1
a
1
NaaaS
S:=1/a; N:=1;Chưng nao N<101 thi con thưc hiên:+ Tăng gia tri cua tông S thêm 1/(a+N)+ Tăng N lên 1 đơn vi
Ch ng trinhươ
BEGIN
Clrscr;
Write(‘Nhap gia tri cua a= ‘);
Readln(a);
S:=1/a;
N:=1;
WHILE N<101 DO
BEGIN
S:=S+1/(a+N);
N:=N+1;
END;
Writeln(‘Gia tri cua tong S = ‘,S:8:3);
Readln;
END.
Program Tong_1;
Uses Crt;
Var a,N:Integer;
S:Real;
Y t ng chungưở
Input?
Ouput?
)(
1...
)2(
1
)1(
1
a
1
NaaaS
L p ch ng trinh tính Tong_1â ươ
K t lu nế â
• Với viêc biết trước số lần lặp thi viêc lưa chọn cấu trúc nao để ap dụng vao bai toan la tùy thuộc vao người lâp trinh
• For-do có thể chuyển thanh while-do
• Vong for trong pascal ta không thể thay đôi biến điều khiển(mỗi lần tăng lên 1), nhưng trong while thi biến điều khiển có thể điều chinh được
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ố đó.
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
BeginIF M>N then M:=M-N
else N:=N-M;end;
B3: In CLN(M,N)Ư
Thu t toánậ Các b cướ c a chủ nươ g trình
Suy nghĩ thuât toan va viêt cac bước
thực hiện chương trinh cho bai toan
trên????
2. Ví d ụ
Chú ý:Các câu l nh trong vòng lệ ặp th nườ g lặp l i ạ
nhi u l n, vì v y ề ầ ậ để tăng hi u qu c a chệ ả ủ nươ g trình thì những thao tác không c n lầ ặp l i ạ đ aư ra ngoài vòng lặp
Chu y
Câu lệnh rẽ nhanh
Câu lệnh lặp
IF <đk> THEN <câu lệnh>;
FOR ... TO ... DO ...…
IF <đk> THEN <câu lệnh 1>
ESLE <câu lệnh 2>;
FOR ... DOWNTO ... DO
While <đk> Do <câu lệnh>;
+Dạng khuyêt
+Dạng đây đủ
+Lặp với số lân biêt trước
+Lặp với số lân không biêt trước
Ki n th c c n nhế ứ ầ ớ
- Viết thuât toan,vẽ sơ đồ khối, viết chương trinh hoan thanh ví dụ trên.
- HS xem nội dung lai kiến thức bai học va bai tâp về nha tai: http://nttxk36.wordpress.com/
-Tim hiểu về vong lặp repeat…until, chuyển đôi lênh
for..do sang while..do trong cac ví dụ ở bai cấu trúc lặp
tiết 2.
- Chuẩn bi cho bai thưc hanh số 2.
Bài t p v nhàâ ề
Trắc nghiệm củng cố
Tr c nghi m c ng că ệ ủ ố
Chúc các em h c t tọ ố