Tải bản đầy đủ (.ppt) (23 trang)

Bài giảng tin học powerpoint 11. BAI 10 cấu trúc lập tiết 1 thiết kế hay nhất

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (781.04 KB, 23 trang )


Kiểm tra bài cũ
Cho biết kết quả của đoạn chương trình sau?

Program VD;
Begin
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Writeln (‘PASCAL’);
Kết
Readln;
End.

quả

PASCAL
PASCAL
PASCAL
PASCAL
PASCAL



Bµi 10


H ng ng y 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,
-Đánh hạn


răng: mỗi ngày hai lần.
chẳng
-Mỗi ngày tắm 1 lần.
-Một bình nước có dung tích 20lit mỗi lần đỗ
vào bình 1 lít.Để cho bình nước đầy ta phảI
Chúng
ta còn
thực hiện
20 lặp
lần 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 cho đến khi thuộc bài.
-Học
-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.


1/ LẶP
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 dùng để 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 .



VD: Xét 2 bài toán: Tính và đưa kết quả ra màn hình tổng
Bài toán 1:

S = 1 + 2 + 3 + ... + 100
Bài toán 2:

S = 1 + 2 + 3 + ... + N + ...
cho ®Õn khi

S > 100


Cùng tìm thuật toán
Xuất phát

Lần 1

S =0

+1

Lần 2

Lần 3

+2

+3


Lần N

+... + N

thực
hiện
giá
trịS tổng
S tăng
SauMỗi
mỗi lần
lần thực
hiện
giá trị
tổng
tăng thêm
giá trịthêm
i ( víibao
i =1;nhiªu?
2; 3 ; ...;N)


tìm sự khác biệt
Bài toán 1:

S = 1 + 2 + 3 + ... + 100

Bài toán 2:


S = 1 + 2 + 3 + ... + N + ...
Cho đến khi

ã Việc tăng giá trị cho
tổng S được lặp đi lặp
lại 100 lần.

S > 100

ã Việc tăng giá trị cho
tổng S được lặp đi lặp
lại cho đến khi

S > 100
Số lần lặp biết trước.

Số lần lặp chưa biÕt tr­íc.


2. Lặp với số lần lặp biết trước và câu leọnh For-do
a. Câu lệnh For-do:
* Dạng 1 (dạng lặp tiến)
FOR <biến đếm> := <giá trị đầu> TO <giá trị cuối> DO < c©u lƯnh>;

VÝ dơ:

FOR i:=1 TO 5 DO WRITELN(i);

Viết ra 5
s

T 1 ->5

* 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 >;

VÝ dơ:

FOR i:=5 DOWNTO 1 DO WRITELN(i);

Viết ra
5 số
Từ 5 -1


2. Lặp với số lần lặp biết trước và câu leọnh For-do
Trong đó
- Biến đếm là biến đơn, và có kiểu số nguyên hoặc kiểu kí

tự.
For i:=1 to 10 do write(i);
- Giá
trị i:=a
đầu, giá
là các biểu thức có cùng kiểu với
For
to trị
z cuối
do write(i);
biến đếm, giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.
For i:= 100 to 200 do write(i);


 - Ở dạng lặp tiến: Biến đếm tự động tăng dần từ giá trị
đầu đến giá trị cuối.
 - Ở dạng lặp lùi: Biến đếm tự động giảm dần từ giá trị
cuối đến giá trị đầu.
 - Tương ứng với mỗi giá trị của biến đếm, câu lệnh sau
do thực hiện 1 lần.


SƠ ĐỒ KHỐI DẠNG LẶP TIẾN
Biến đếm←Giá trị đầu

Biến đếm<=Giá trị cuối
Đúng
Câu lệnh;

Biến đếm ← Biến đếm + 1
• Bước 1: Gán giá trị đầu cho biến đếm.
• Bước 2: Nếu biến đếm <= giá trị cuối thì
thực hiện lệnh cần lặp, ngược lại thì
chuyển sang lệnh khác trong chương trình.
• Bước 3: Tăng biến đếm 1 đơn vị, và quay lại
bước 2

Lệnh khác;

Sai


SƠ ĐỒ KHỐI DẠNG LẶP LÙI


Biến đếm←Giá trị cuối

Biến đếm>=Giá trị đầu
Đúng
Câu lệnh;

Biến đếm ← Biến đếm – 1
• Bước 1: Gán giá trị cuối cho biến đếm.
• Bước 2: Nếu biến đếm >= giá trị đầu thì
thực hiện lệnh cần lặp, ngược lại thì
chuyển sang lệnh khác trong chương trình.
• Bước 3: Giảm biến đếm 1 đơn vị, và quay lại
Lệnh khác;
bước 2

Sai


2. Lặp với số lần lặp biết trước và câu lệnh For-do

Chú ý:
- Trong câu lệnh FOR . . . DO, Nếu giá trị đầu =
giá trị cuối thì vòng lặp sẽ được thực hiện 1 lần.
- Trong câu lệnh FOR . . . DO
Số lần lặp = Giá trị cuối – Giá trị đầu + 1.


2. Lặp với số lần lặp biết trước và câu leọnh For-do
b/VD: Bài toán : Lập chương trình tính tổng sau:


S = 1 + 2 + 3 + 4 + ... + N
HÃy xác định
INPUT
và :
- Dữ liệu vào
(Input)
OUTPUT của
bài toán trên!

- Dữ liệu ra (Output) :

Nhập N
Tổng S


Phân tích bài toán với TừNG TRƯờng hợp của N
Neỏu N =10, S=?;
lập trình giải như
thế nào?

S0 := 0;
i=1 ⇒ S1 := S0 + 1 = 1;
S=1+2+3+ … +10;

i=2 ⇒ S2 := S1 + 2 = 3;
……………
i=10 ⇒ S10 :=S9+10=55;



Neỏ
u coự
N =100,
Em
nhaọn
laọpt gỡ
trỡnh
xeự
ve giaỷ
caựcih
nhử
giaỷtheỏ
i naứnaứ
y?o?
Nhận xét:
Bắt đầu từ S1 việc
tính S được lặp đi lặp
lại 100 lần theo quy
luật:
Ssau = Str­íc+ i
víi i ch¹y tõ 1 → 100

S0 := 0;
i=1 ⇒ S1 := S0 + 1;
i=2 ⇒ S2 := S1 + 2;
……………
i=10 ⇒ S10 := S9 + 10;
…………...
i=100 ⇒ S


:=S +100;


LËp tr×nh tÝnh tỉng:

S = 1 + 2 + 3 + 4 + ... + N
Nhóm 1 và 3

Nhóm 2 v 4

HÃy áp dụng câu
lệnh dạng lặp tiến
để viết chương
trình?

HÃy áp dụng câu
lệnh dạng lặp lùi
để viết chương
trình?


 Chương
trình
ngu câ
lặp For
 Chương
trình
dùngdùcâ
lệnuhlệlặnph For
– do– do

lặpntiến
dạngdạlặnpg tiế
Program tong1 ;
Uses crt;
Var S,i,n : integer;
Begin
Clrscr;
Write(‘nhap n’);
readln(n);

Program tong1 ;
Uses crt;
S:= 0;
Var
S,i,n : integer; For i := 1 to n do
S:= S + i ;
Begin
Clrscr;
Writeln(‘ tong S la ‘ , S );
Write(‘nhap n’);
Readln
readln(n);
End.

For

S:= 0;
i := 1 to n
S:= S + i ;


do


 Chương trình dùng câu lệnh lặp For – do
 Chương
dùng câu lệnh lặp For – do
dạng lùtrình
i
dạng lùi
Program tong2 ;
Uses crt;
Var S,i,n : integer;
Program tong2 ;
Begin
Clrscr;
Uses crt;
Var
S,i,n : integer;Write(‘nhap n’);
readln(n);
Begin
S:= 0;
Clrscr;
For i := n downto 1 do
Write(‘nhap n’);
S:= S + i ;
readln(n);
Writeln(‘ tong S la ‘ , S );
S:= 0;
Readln
For i := n downto 1End.do


S:= S + i ;
Writeln(‘ tong S la ‘ , S );
Readln
End.


Bài tập trắc nghiệm củng cố:
Câu 1: x biến thực ,i biến nguyên ,câu lệnh nào sau đây la đúng?
A.for x:=1 to 10 do writeln(‘lop 11a3’);
B. for i:=1 to 10 do writeln(‘lop 11a3’);
C. for x:=1.5 to 10.5 do writeln(‘lop 11a3’);
D. for i:=1.5 to 10 do writeln(‘lop 11a3’);


Bài tập trắc nghiệm củng cố:
Câu 2: cú pháp lệnh lặp nào sau đây là sai?
A. For I:=n downto 1 do …
B. For I:=1 downto n do …
C. For I:=0 to n do …
D. For I:=1 to n do …


2. Lặp với số lần lặp biết trước và câu leọnh For-do

c. Bài tập về nhà
BT1: Viết chương trình giải bài toán:
Nhập vào số tự nhiên N. Tính tổng S:

S = 1 + 2 + 3 + ... + N

2

2

2

2

BT2: Viết chương trình giải bài toán:
Nhập vào số tự nhiên N. TÝnh tÝch T:

T = N! = 1*2 *3*...* N



×