GI ỚI THIỆU I THI U ỆUNỘI DUNG Có Những hoạt động mà chúng ta lặp với số lần nhất định và biết tr ớc, chẳng hạn : -Đánh răng mỗi ngày hai lần.. Chúng ta còn lặp lại những công việc với s
Trang 1GI ỚI THIỆU I THI U ỆU
NỘI DUNG
Có Những hoạt động mà chúng ta lặp với số lần nhất định và biết tr ớc, chẳng hạn :
-Đánh răng mỗi ngày hai lần
-Mỗi ngày tắm 1 lần
Chúng ta còn lặp lại những công việc với số lần không thể xác định tr ớc, chẳng hạn
-Học cho đến khi thuộc bài
-Nhặt từng cọng rau cho đến khi xong…
Khi viết ch ơng trình máy tính cũng vậy Để chỉ dẫn cho máy tính thực hiện đúng công việc, trong nhiều
tr ờng hợp ta cũng cần phảI viết nhiều câu lệnh thực hiện 1 phép tính nhất định
Ổn định lớp
NỘI DUNG
Củng cố
1-Lặp
2.Lặp với số lần xác định
3-Ch ơng trình
Trang 2Bµi 10
Ngµy 28 th¸ng 9 n¨m 2013
Trang 42 s¸ch gi¸o khoa
Trang 3NỘI DUNG
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 mụ tả thao tỏc lặp và được phõn 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
1/ LẶP
Ổn định lớp
NỘI DUNG
Củng cố
1-Lặp
2.Lặp với số lần xác định
3-Ch ơng trình
Trang 4Ngµy 24 th¸ng 11 n¨m 2008
Trang 5XuÊt ph¸t
a
1
1
a
LÇn 1
2
1
a
100
1
a
Sau mçi lÇn thùc hiÖn céng vµo tæng S mét gi¸ trÞ b»ng bao nhiªu?
1
Sau mçi lÇn thùc hiÖn gi¸ trÞ tæng S t¨ng thªm ( víi N=1, 2,3
, ,100)
a + N
bµi to¸n 1
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
1
1
a a
a a
S
+…
• ViÖc t¨ng gi¸ trÞ cho tæng S ® îc lÆp ®i lÆp l¹i 100 lÇn
Sè lÇn lÆp biÕt tr íc.
Trang 6Ph©n tÝch bµi to¸n 1
NhËn xÐt:
S 0 = 1/a
S 1 = S 0 + 1/(a+1)
S 2 = S 1 + 1/(a+2)
S 100 = S 99 + 1/(a+100)
B¾t ®Çu tõ S 1 viÖc tÝnh S ® îc lÆp ®i lÆp l¹i 100 lÇn theo quy luËt
S sau = S tr íc + 1/(a+N) (víi N =1,2, ,100 )
1
1
a
a
100
1
a
+…
2
1
a
Trang 7Bước 1 S1/a ; N0;
Bước 2 NN+1;
Bước 3 Nếu N>100 thì chuyển đến bước 5;
Bước 4 SS+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_1 a
Bước 1 S1/a ; N101;
Bước 2 NN-1;
Bước 3 Nếu N<1 thì chuyển đến bước 5;
Bước 4 SS+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_1 b
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
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 8FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>;
b Dạng 2 (dạng lặp lùi)
FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh >;
a Dạng 1 (dạng lặp tiến)
Câu lệnh Lặp For do trong ngôn ngữ lập trình Pascal– do trong ngôn ngữ lập trình Pascal
Trong đó
Biến đếm là biến đơn, th ờng có kiểu số nguyên.
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 9Câ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
a Dạng 1 (dạng tiến)
Hoạt động của lệnh for - do
Trang 10Program Tong-1a;
Var S:real; a,n:Integer;
Begin Write (‘Nhap vao a>2’); Readln(a);
s:=1/a; (* Buoc 1 *) For n:=1 to 100 do (* Buoc 2, buoc 3 *) S:=S+1/(a+n); (* Buoc 4 *)
write(‘Tong S la’,S:5:1); (* Buoc 5 *) Readln;
End.
Trang 11Ch ¬ng tr×nh sau cho ra kÕt qu¶ g×? Program MAU;
Var a,n:Integer;
Begin a:=0;
For n:= a+1 to a+3 do
a:=a+n;
write(‘Ket qua la’, a);
Readln;
End.
Ket qua la 6
Trang 12Ví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
4
1 2
1
1
a a
a a
S
C¸ch 1: C¸ch 2:
S:=1/a;
For n:=2 to 100 do Begin
s:=s+1/(a+n); n:=n+2;
End;
S:=1/a;
For n:=2 to 100 do
If n mod 2=0 then s:=s+1/(a+n);
§óng
¸p dông
Trang 13C¸c c©u lƯnh Pascal sau cã hỵp lƯ kh«ng? v× sao ? NHÓM 1:
NHÓM 2:
NHÓM 3:
NHÓM 4:
ĐS:kh«ng hỵp lƯ, v× gi¸ trÞ ®Çu lín h¬n gi¸ trÞ cuèi
60
30
15
25
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
Trang 14Bµi tËp vÒ nhµ
ViÕt ch ¬ng tr×nh nhËp vµo n nguyªn d ¬ng TÝnh vµ ® a ra mµn h×nh tæng sau:
n
S
3 2 1
1
3 2 1
1 2
1
1 1
1
Trang 15• Xin ch©n thµnh c¶m ¬n
• Chóc søc kháe quý thÇy
• chóc c¸c em häc giái