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

Bai 10 Cau truc lap

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 (2.6 MB, 20 trang )

TRƯỜNG THPT NGUYỄN TRÃI


GIỚI THIỆU
- Hình 1: Người thứ nhất
dùng một chiếc xơ dung
tích 1 lít đổ đầy nước
vào một chiếc thùng có
dung tích 30 lít. Hỏi bao
lâu thì xong?

Dung tích
30 Lít

1 Lít

Sau
30 lần
đổ

- Hình 2: Người thứ 2
dùng một chiếc xơ
khơng rõ dung tích để
đổ đầy nước vào một
chiếc thùng có dung
tích 30 lít . Hỏi bao lâu
thì xong?

Q
trình
như vậy


được
gọi là
lặp

Dung tích
30 Lít

Lít

Quan sát 2 hình sau:

Chừng
nào đầy
thùng


Bài 10


Từ ví dụ trên thấy rằng cơng việc đổ nước
vào thùng được lặp đi lặp lại. Ta nói rằng
trong ví dụ trên đã có hiện tượng lặp.
Vậy lặp là gì ?


1.LẶP

 Lặp: một cơng việc, một thao tác,
một phép tốn, một câu lệnh … được
thực hiện lặp đi, lặp lại một số lần.

 Trong một số thuật tốn có những
thao tác phải thực hiện lặp đi lặp lại
một số lần. Cấu trúc lặp được sử
dụng để mô tả các thao tác lặp đó.


1.LẶP
 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 ăn cơm 3 lần,…
- Mỗi buổi sáng học 5 tiết, …

Có những hoạt động mà chúng ta lặp 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 nào 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
TÌM SỰ KHÁC BIỆT

Bài tốn 1:
1
1
1

1
S 

 ... 
a a 1 a  2
a  100

Bài toán 2:
1
1
1
1
S 

 ... 
 ...
a a 1 a  2
aN
Cho đến khi

1
 0.0001
aN

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

Việc tính giá trị cho tổng
S được lặp đi lặp lại cho

đến khi 1  0.0001

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

 Số lần lặp chưa biết trước.

aN


1.LẶP

Lặp với số lần biết trước
Có hai loại lặp:
Lặp với số lần chưa biết trước


Câu hỏi: Trong các hoạt động dưới
đây, hoạt động nào là hoạt động lặp với
số lần biết trước?
A

Nhập vào 1 số cho đến khi số nhập vào là số chẵn thì dừng.

B

Nhập vào các số nguyên cho đến khi nhấn phím Enter thì dừng.

C

Học bài cho đến khi thuộc bài.


D

Tính tổng các số tự nhiên từ 1 đến 20.

23
30
29
28
26
27
24
25
10
11
12
13
14
15
16
17
18
19
20
21
22
6
7
8
9

0
1
2
3
4
5


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

1 TƯỞNG)
1
1 PHÂN1TÍCH BÀI1TỐN 1 (Ý


 ... 
S

a 3
a  100
a 1 a  2
a
Từ ý tưởng trên em hãy viết
thuật toán cho bài toán
....................

Ban đầu :

S := 1/a


Cộng lần 1: S1: = S + 1/(a+1)
Cộng lần 2: S2: = S1 + 1/(a+2)
Cộng lần 3: S3: = S2 + 1/(a+3)

.....

Cộng lần 100: S100: = S99 + 1/(a+100)

NHẬN XÉT:

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:
Ssau := Strước+ 1/(a+N)
với N chạy từ 1  100


2. Lặp với số lần biết trước và câu lệnh For …do
THUẬT TOÁN TONG_1a

THUẬT TOÁN TONG_1b

Bước 1. S1/a ; N0;

Bước 1. S1/a ; N101;

Bước 2. NN+1;

Bước 2. NN-1;


Bước 3. Nếu N>100 thì chuyển đến bước 5;

Bước 3. Nếu N<1 thì chuyển đến bước 5;

Bước 4. SS+ 1/(a+N) rồi quay lại bước 2;

Bước 4. SS+ 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.

Bước 5. Đưa S ra màn hình rồi kết thúc.

GiátrịtrịN
N hãy
khibắt
bắtrõ
đầu
tham
Giá
tham
giagia
vịng
Emkhi
chỉđầu
các
vịng
mỗi
lần
N
lặp

là bước
1lặp
vàlà?
sauSau
mỗi
lần
lặplặp
N tăng
phải
thực
hiện
lên
1 cho
khi
(N=101)
lặpđến
điNlặp
lạiN>100
một
tăng
lên?
bằng
baosố
nhiêu
thìthì
kết
kếtthúc.
thúc? lần?

Giátrịtrị

khi
bắt
tham
Giá
NNkhi
bắt
đầu
tham
gia gia
vịng
Em
hãy
chỉ
rõđầu
các
phải
thực
hiện
lặp
làbước
100
sau
mỗi
lần
lặp lặp
N giảm
vịng
lặpvà
là?
Sau

mỗi
lần
N
lặp
đi N
lặp
lại
một
sốnhiêu
đităng
1 cho
đến
khi
N<1
(N=0)
thì kết
lên?
bằng
bao
thì
lần?
thúc.
kết thúc?

 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)


2. Lặp với số lần biết trước và câu lệnh For …do
 Mô tả cấu trúc lặp với số lần biết trước và câu lệnh
For…do


 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ụ: S:=1;
FOR i:=2 TO 100 DO
S:=S+1/i;

 Dạng lặp lùi:
For<biến đếm>:=<giá trị đầu> downto <giá trị cuối> do <câu lệnh>;
Ví dụ: S:=1;
FOR i:=100 DOWNTO 2 DO
S:=S+1/i;


2. Lặp với số lần biết trước và câu lệnh For …do
 Mô tả cấu trúc lặp với số lần biết trước và câu lệnh
For…do

Trong đó:
 for,

to, downto, do: Là từ khóa trong Pascal;

 Biến
 Giá

đếm: Là biến đơn, thường có kiểu nguyên

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 nhỏ hơn hoặc bằng giá trị cuối)



Program Tong_1a;
Var a, N: integer;
S: real;
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.


3.Một số ví dụ .

Ví dụ 1: Tính tổng S

S=1 + 1/2 + 1/3 +…+1/100
- Dữ liệu vào (Input) : Nhập N

- Dữ liệu ra

Hãy xác định bài
toán
Input:

(Output)
: Tổng
Output:

S


3.Một số ví dụ .

Nhập N

Nhập
N;
XÕY DỰNGB1:
THUẬT
TOỎN
B2: S:=1; i:=2;

S:= 1 ; i:= 2

B3: Nếu i > N thì đưa ra giá trị S
=> Kết thúc;
Đ

i>N?

Đưa ra S rồi kết thúc

S
S:= S + 1/i

i:= i+1

B4 : S:= S + 1/i;
B5: i := i +1 quay lại B3.


3.Một số ví dụ .

Với
Nhập
NN
=5
S := 1 ; i := 2;

i

Lượt

2

3

4

5

S

1


1.5

1.83

2.08

2.28

Đ

i >N?
6>5
2>5
3>5
4>5
5>5

Tổng
In Tổng
S=2.28
S
S1 = 1

SS
S

S2 = S1 + 1/2

SSSS:=
:=

:=
:=1.83+1/4
2.08+1/5;
1.5+1/3
S
1 +1/2
+1/ i ;;;
i :=ii 5:=
:=+1;
432i +1;
+1;

S3 = S2 + 1/3
S4 = S3 + 1/4

S100 = S99 + 1/100
Mơ phỏng thuật tốn

KT

6


3.Một số ví dụ.

Program Tinh_tong;
Var i,N : Integer; S : real;

BEGIN
S:=1;


Write(‘ Nhap vao gia tri cua N :’);readln(N);
FOR i:=2 to N do S := S+1/i;
Writeln(‘ Tong S =’,S:8:3);
Readln;
END.


3.Một số ví dụ .

vd2;trình in ra màn hình các số:
Ví dụProgram
2: viết chương
Var 1 2 3 4
i:Integer;
5 6 7 8 9 10
Begin
Writeln(‘ Biến điều khiển tăng ‘);
For i:=1 to 10 do
Writeln(i);
Writeln(‘ Bấm phím <Enter> để kết
thúc’);
Readln;
End.


1. Khái niệm lặp:
2.Lặp với số lần biết trước và câu lệnh for …do
Dạng lặp tiến:
Tăng 1 đơn vị

Cú pháp :
For<biến đếm>:=<giá trị đầu> to
<giá trị cuối> do <câu lệnh>;

Dạng lặp lùi:
Giảm 1 đơn vị
Cú pháp :
For<biến đếm>:=<giá trị cuối> dows
to<giá trị đầu> do <câu lệnh>;



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×