IF ngay=20 and thang=11 THEN Begin Writeln chao mung ngay nha giao viet nam ;’chao mung ngay nha giao viet nam’; ’chao mung ngay nha giao viet nam’; Writeln chao mung ngay nha giao vie
Trang 1ViÕt c©u lÖnh If Then (trong – Then (trong
Pascal) thÓ hiÖn cÊu tróc rÏ nh¸nh sau:
NÕu ngµy b»ng 20 vµ th¸ng b»ng 11 th× ® a ra mµn h×nh 5 dßng th«ng b¸o “Chµo mõng ngµy nhµ gi¸o viÖt nam”
Trang 2IF (ngay=20) and (thang=11) THEN
Begin
Writeln( chao mung ngay nha giao viet nam );’chao mung ngay nha giao viet nam’); ’chao mung ngay nha giao viet nam’);
Writeln( chao mung ngay nha giao viet nam );’chao mung ngay nha giao viet nam’); ’chao mung ngay nha giao viet nam’);
Writeln( chao mung ngay nha giao viet nam );’chao mung ngay nha giao viet nam’); ’chao mung ngay nha giao viet nam’);
Writeln( chao mung ngay nha giao viet nam );’chao mung ngay nha giao viet nam’); ’chao mung ngay nha giao viet nam’);
Writeln( chao mung ngay nha giao viet nam );’chao mung ngay nha giao viet nam’); ’chao mung ngay nha giao viet nam’);
End;
Trang 3Bµi 10
Gi¸o ¸n ®iÖn tö tin häc líp 11
(PhÇn 1 vµ phÇn 2 (lý thuyÕt))
TiÕt 11
Trang 4Bài toán 1:
Bài toán 2:
100
1
2
1 1
1
1
a a
a a
S
1
2
1 1
1
1
N a
a a
a S
cho đến khi 1 0 0001
N a
Trang 5XuÊt ph¸t
a
1
1
a
LÇn 1
2
1
a
LÇn 2
+…
LÇn N
N
a
1 Sau mçi lÇn thùc hiÖn gi¸ trÞ tæng S t¨ng thªm ( víi i =1; 2; 3 ; ;N))
a + i
Cïng t×m thuËt to¸n
Mçi lÇn thùc hiÖn gi¸ trÞ tæng S t¨ng thªm bao nhiªu?
Trang 6Bài toán 1: Bài toán 2:
100
1
2
1 1
1
1
a a
a a
N a
a a
a S
Cho đến khi 1 0.0001
N a
Số lần lặp biết tr ớc.
đến khi
0.0001 N
a
1
• Việc tăng giá trị cho
tổng S đ ợc lặp đi lặp
lại 100 lần
tìm sự khác biệt
Số lần lặp ch a biết tr ớc.
các em hãy cho biết
sự khác biệt giữa hai
bài toán?
Trang 7CÊu tróc lÆp
Trang 81 Bài toán đặt vấn đề
- Dữ liệu ra (Output) : Tổng S
Lập ch ơng trình tính tổng sau:
- Dữ liệu vào (Input) : Nhập a
Hãy xác định INPUT và OUTPUT của bài toán trên!
I Lặp với số lần lặp biết tr ớc
100
1
2
1 1
1
1
a a
a a
S
Trang 9Ph©n tÝch bµi to¸n (ý t ëng)
NhËn xÐt:
Ban ®Çu: S = 1/a
Céng lÇn 1: S = S + 1/(a+1)
Céng lÇn 2: S = S + 1/(a+2)
Céng lÇn 3: S = S + 1/(a+3)
Céng lÇn 100: S = S + 1/(a+100)
a
1
S
B¾t ®Çu tõ lÇn céng 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+i) víi i ch¹y tõ 1 100
1
1
1
1
a
100
1
a
Tõ ý t ëng trªn em h·y viÕt thuËt to¸n cho bµi to¸n
Trang 10B1: NhËp a;
B2: S1/a; i0;
B4: NÕu i >100 th× ® a ra gi¸
trÞ S råi KÕt thóc;
B5 : S S + 1/(a+i) råi quay
l¹i b íc 3;
B3: i i +1;
X©y dùng thuËt to¸n
Trang 11Ph©n tÝch bµi to¸n (ý t ëng 2)
NhËn xÐt:
Ban ®Çu: S = 1/a
Céng lÇn 1: S = S + 1/(a+100)
Céng lÇn 2: S = S + 1/(a+99)
Céng lÇn 3: S = S + 1/(a+98)
Céng lÇn 100: S = S + 1/(a+1)
a
1
S
B¾t ®Çu tõ lÇn céng 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+i) víi i ch¹y tõ 100 1
100
1
1
1
a
1
1
a
Trang 12B1: Nhập a;
B2: S1/a; i0;
B4: Nếu i >100 thì đ a ra giá
trị S rồi Kết thúc;
B5 : S S + 1/(a+i) rồi quay
lại b ớc 3;
B3: i i +1;
Xây dựng thuật toán
Thuật toán Tong_1a
B1: Nhập a;
B2: S1/a; i101;
B4: Nếu i <1 thì đ a ra giá trị
S rồi Kết thúc;
B5 : S S + 1/(a+i) rồi quay lại b ớc 3;
B3: i i -1;
Thuật toán Tong_1b
Thuật toán Tong_1a , giá trị i bắt đầu tham gia vòng lặp là
1 sau mỗi lần lặp i tăng lên 1 cho đến khi i > 100 (i = 101)
thì kết thúc lặp (thực hiện 100 lần).
Nhận xét:
Thuật toán Tong_1b , giá trị i bắt đầu tham gia vòng lặp là
100 sau mỗi lần lặp i giảm đi 1 cho đến khi i < 1 (i = 0) thì kết
thúc lặp (thực hiện100 lần).
Ta nói cách lặp trong thuật toán Tong_1a là dạng tiến và
trong thuật toán Tong_1b là dạng lùi
Trang 13FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < câu lệnh>;
VD1: S:=1/a;
FOR i:=1 TO 100 DO S:=S+1/(a+i);
b Dạng 2 (dạng lùi)
FOR <biến đếm> := <giá trị cuối> DOWNTO <giá trị đầu> DO <câu lệnh >;
VD1: S:=1/a;
FOR i:=100 DOWNTO 1 DO S:=S+1/(a+i);
a Dạng 1 (dạng tiến)
2 Lặp với số lần lặp biết tr ớc
FOR i:=1 TO 5 DO writeln(’ngay nha giao Viet Nam’);
VD2: IF (ngay=20) and (thang=11) THEN
Trang 14 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 giá trị cuối.
VD: For i:= 100 to 200 do write(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.
Trong đó
Biến đếm là biến kiểu số nguyên hoặc kí tự.
VD2: For i:=‘a’ to ‘z’ do write(i);
Trang 15S := 1 ; i := 2;
S := S +1/ i ;
i := i +1;
2.08 1.83
1.5
1
4 3
2
L ît i
5
NhËp N
S := 1 ; i := 2;
2>5 ? S
S := 1 +1/2 ;
i := 2 +1;
3>5 ?
S := 1.5+1/3 ;
i := 3 +1;
4>5 ?
S := 1.83+1/4 ;
i := 4 +1;
5>5 ?
S := 2.08+1/5;
i := 5 +1;
6
S 6>5 ? Tæng S=2.28 In Tæng S
Víi N = 5
2.28
§
M« pháng thuËt to¸n
Trang 16Lặp dạng tiến Lặp dạng lùi
Biến:=<GT đầu >
Biến <= GT cuối
Cõu lệnh
Biến tự động tăng 1 ĐVị
Biến:=<GT cuối >
Biến >= GT đầu
Cõu lệnh
Biến tự động giảm 1 ĐVị
Biến:=<GT đầu >
Biến <= GT cuối
Cõu lệnh
Biến tự động tăng 1 ĐVị
True
False
Biến:=<GT cuối >
Biến >= GT đầui
Cõu lệnh
Biến tự động giảm 1 ĐVị
True
Lưuưđồưhoạtưđộng
Trang 17H·y nhí!
FOR TO DO …
FOR Downto DO
+ LÆp víi sè lÇn lÆp biÕt tr íc + LÆp víi sè lÇn lÆp kh«ng
biÕt tr íc.