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

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 (1.42 MB, 36 trang )

<span class='text_page_counter'>(1)</span><div class='page_container' data-page=1>

TRẦN HỮU TRANG



TRƯỜNG TRUNG HỌC PHỔ THÔNG




TIN HỌC 11



</div>
<span class='text_page_counter'>(2)</span><div class='page_container' data-page=2>

BÀI 10



CẤU TRÚC LẶP



CẤU TRÚC LẶP



</div>
<span class='text_page_counter'>(3)</span><div class='page_container' data-page=3>

CÁC BÀI TOÁN ĐẶT VẤN ĐỀ



CÁC BÀI TOÁN ĐẶT VẤN ĐỀ



<i>Tính tổng S với a là số nguyên và a>2</i>



Bài toán 2:



100


1


...


2


1


1


1


1











<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>S</b></i>


...


1


...


2


1


1


1


1











<i><b>N</b></i>



<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>S</b></i>



cho đến khi

<b> </b>

1

<sub>0</sub>

<sub>.</sub>

<sub>0001</sub>





<i>N</i>



</div>
<span class='text_page_counter'>(4)</span><div class='page_container' data-page=4>

CÙNG TÌM THUẬT TỐN



CÙNG TÌM THUẬT TỐN



<i>Xuất phát</i>



<i><b>a</b></i>



<i><b>S</b></i>

1



1


1




<i>a</i>


<i>Lần 1</i>


2


1





<i>a</i>


<i>Lần 2</i>


<b>+…</b>


<i>Lần N</i>


<i>N</i>


<i>a</i>


1



<i>Mỗi lần thực hiện, giá trị tổng </i>


<i>tăng bao nhiêu?</i>



i


a



1





</div>
<span class='text_page_counter'>(5)</span><div class='page_container' data-page=5>

TÌM SỰ KHÁC BIỆT



TÌM SỰ KHÁC BIỆT



<i>Bài tốn 1:</i>

<i>Bài tốn 2:</i>



100


1


...


2



1


1


1


1










<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>



<i><b>S</b></i>

...

1

...



2


1


1


1


1












<i><b>N</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>S</b></i>



Cho đến khi

<b>1</b>

<b>0</b>

.

<b>0001</b>


<i>N</i>



<i>a</i>



<b> Số lần lặp biết trước</b>


Việc tăng giá trị cho tổng S



Việc tăng giá trị cho tổng S



được lặp đi lặp lại



được lặp đi lặp lại

100

100

lần.

lần.



<b> Chưa lần lặp chưa biết trước.</b>



Việc tăng giá trị cho tổng S



Việc tăng giá trị cho tổng S




được lặp đi lặp lại



</div>
<span class='text_page_counter'>(6)</span><div class='page_container' data-page=6>

1. LẶP VỚI SỐ LẦN BIẾT TRƯỚC



1. LẶP VỚI SỐ LẦN BIẾT TRƯỚC



a. Bài toán nêu vấn đề:



Dữ liệu ra (Output) : Tổng

<b>S</b>



<i>Lặp chương trình tính tổng sau:</i>


N


1


...



4


1


3



1


2



1


1



S



<i>Hãy xác định INPUT và OUTPUT của bài </i>



<i>toán trên?</i>



</div>
<span class='text_page_counter'>(7)</span><div class='page_container' data-page=7>

PHÂN TÍCH BÀI TỐN VỚI N=100



PHÂN TÍCH BÀI TOÁN VỚI N=100



Nhận xét



<b>S1 = 1</b>


<b>S2 = S1 + 1/2</b>
<b>S3 = S2 + 1/3</b>


<b>S4 = S3 + 1/4</b>


<b>...</b>


<b>S100 = S99 + 1/100</b>


1




<b>S</b>



<i>Bắt đầu từ S</i>

<i>2</i>

<i> việc tính S</i>

<i>1</i>


<i>được lặp đi lặp lại 99 lần </i>


<i>theo quy luật</i>



<i><b>S</b></i>

<i><b>sau</b></i>

<i><b> = S</b></i>

<i><b>trước</b></i>

<i><b>+ 1/i,</b></i>




<i>Với I chạy từ 2 </i>

<i> 100</i>


2


1



3


1



4


1



<sub></sub>

<b> . . .</b>

<sub></sub>

1



100



</div>
<span class='text_page_counter'>(8)</span><div class='page_container' data-page=8>

<i>So sánh hai thuật toán sau</i>


SƠ ĐỒ THUẬT TỐN



SƠ ĐỒ THUẬT TỐN



Thuật tốn Tong_1A

Thuật tốn Tong_1b


*

<i>Bước 1</i>

: S ← 1/a; N ← 0;



*

<i>Bước 2: </i>

N ← N + 1;



*

<i> Bước 3: </i>

Nếu N > 100 thì chuyển


đến bước 5;



*

<i>Bước 4: </i>

S ← S + 1/(a + N) rồi quay



lại bước 2;



*

<i>Bước 5: </i>

Đưa S ra màn hình, rồi kết


thúc.



*

<i>Bước 1</i>

: S ← 1/a; N ← 101;


*

<i>Bước 2: </i>

N ← N - 1;



*

<i> Bước 3: </i>

Nếu N < 1 thì chuyển đến


bước 5;



*

<i>Bước 4: </i>

S ← S + 1/(a + N) rồi quay


lại bước 2;



*

<i>Bước 5: </i>

Đưa S ra màn hình, rồi kết


thúc.



•Thuật tốn dạng lặp tiến.


• Dạng lặp tiến: Biến đếm tự động
tăng dần từ giá trị đầu đến giá trị
cuối.


•Thuật tốn dạng lặp lùi.


</div>
<span class='text_page_counter'>(9)</span><div class='page_container' data-page=9>

CẤU TRÚC DẠNG LẶP TIẾN



CẤU TRÚC DẠNG LẶP TIẾN



<i>Hãy nêu cấu trúc dạng lặp tiến?</i>



<i>Biến đếm: biến kiểu nguyên, kí tự hoặc miền con</i>


<i>Giá trị đầu, giá trị cuối là biểu thức cùng kiểu với biến đếm.</i>
<i>Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.</i>


For <

<i>biến đếm</i>

>

<b>:= </b>

<

<i>giá trị đầu</i>

> to <

<i>giá trị cuối</i>

> do <

<i>câu lệnh</i>

>;


For <

<i>biến đếm</i>

>

<b>:= </b>

<

<i>giá trị đầu</i>

> to <

<i>giá trị cuối</i>

> do <

<i>câu lệnh</i>

>;



<i>Ví dụ</i> S:=1;


</div>
<span class='text_page_counter'>(10)</span><div class='page_container' data-page=10>

SƠ ĐỒ KHỐI
Biến đếm:=giá trị đầu


Biến đếm<=giá trị cuối


Lệnh cần lặp biến đếm tăng 1
Đúng


Sai


<i>Quan sát sơ </i>
<i>đồ khối, hãy </i>
<i>cho biết sự </i>
<i>thực hiện của </i>


<i>máy?</i>


• Bước 1: tính giá trị đầu, gán 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.


</div>
<span class='text_page_counter'>(11)</span><div class='page_container' data-page=11>

CẤU TRÚC DẠNG LẶP LÙI



CẤU TRÚC DẠNG LẶP LÙI



<i>Hãy nêu cấu trúc dạng lặp lùi?</i>


<i>Biến đếm: biến kiểu nguyên, kí tự hoặc miền con</i>


<i>Giá trị đầu, giá trị cuối là biểu thức cùng kiểu với biến đếm.</i>
<i>Giá trị đầu phải nhỏ hơn hoặc bằng giá trị cuối.</i>


for <

<i>biến đếm</i>

>

<b>:= </b>

<

<i>giá trị cuối</i>

> downto <

<i>giá trị đầu</i>

> do <

<i>câu lệnh</i>

>;



for <

<i>biến đếm</i>

>

<b>:= </b>

<

<i>giá trị cuối</i>

> downto <

<i>giá trị đầu</i>

> do <

<i>câu lệnh</i>

>;



<i>Ví dụ</i> S:=1;


</div>
<span class='text_page_counter'>(12)</span><div class='page_container' data-page=12>

SƠ ĐỒ KHỐI
Biến đếm:=giá trị đầu


Biến đếm>=giá trị cuối


Lệnh cần lặp biến đếm giảm 1
Đúng


Sai



<i>Quan sát sơ đồ </i>
<i>khối, hãy cho </i>
<i>biết sự thực hiện </i>


<i>của máy?</i>


• Bước 1: tính giá trị đầu, gán 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.


</div>
<span class='text_page_counter'>(13)</span><div class='page_container' data-page=13>

Lưu ý:



+ Biến đếm là biến đơn, có kiểu nguyên hoặc kí tự.



+ Giá trị đầu, giá trị cuối là các biểu thức có cùng kiểu với


biến đếm. Giá trị đầu phải nhỏ hơn giá trị cuối.



+ Giá trị của biến đếm được điều chỉnh tự động, vì vậy câu


lệnh viết sau DO không được thay đổi giá trị biến đếm



For i:=1 to 10 do write(i);


For i:=‘a’ to ‘z’ do write(i);



</div>
<span class='text_page_counter'>(14)</span><div class='page_container' data-page=14>

<i>Quan sát sách giáo khoa trang </i>


<i>44, chương trình cài đặt các </i>



</div>
<span class='text_page_counter'>(15)</span><div class='page_container' data-page=15>

* <i>Bước 1</i>: S ← 1/a; N ← 0;
* <i>Bước 2: </i>N ← N + 1;



</div>
<span class='text_page_counter'>(16)</span><div class='page_container' data-page=16>

<i>Quan sát sách giáo khoa trang </i>


<i>44, chương trình cài đặt các </i>



</div>
<span class='text_page_counter'>(17)</span><div class='page_container' data-page=17>

* <i>Bước 1</i>: S ← 1/a; N ← 101;
* <i>Bước 2: </i>N ← N - 1;


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18>

<i>Quan sát sách giáo khoa trang </i>


<i>45, chương trình thực hiện việc </i>



<i>nhập từ bàn phím hai số </i>


<i>nguyên dương M và N (M<N). </i>


<i>Tính và đưa ra màn hình tổng </i>


<i>các số chia hết cho 3 hoặc 5 </i>



</div>
<span class='text_page_counter'>(19)</span><div class='page_container' data-page=19></div>
<span class='text_page_counter'>(20)</span><div class='page_container' data-page=20>

<i>Hãy lập trình tính:</i>








50


1


n

n

1



</div>
<span class='text_page_counter'>(21)</span><div class='page_container' data-page=21></div>
<span class='text_page_counter'>(22)</span><div class='page_container' data-page=22>

TÌM SỰ KHÁC BIỆT



TÌM SỰ KHÁC BIỆT




<i>Bài tốn 1:</i>

<i>Bài tốn 2:</i>



100


1


...


2


1


1


1


1










<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>



<i><b>S</b></i>

...

1

...



2


1


1


1



1











<i><b>N</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>S</b></i>



Cho đến khi

<b>1</b>

<b>0</b>

.

<b>0001</b>


<i>N</i>



<i>a</i>



<b> Số lần lặp biết trước</b>


Việc tăng giá trị cho tổng S



Việc tăng giá trị cho tổng S



được lặp đi lặp lại




được lặp đi lặp lại

100

100

lần.

lần.



<b> Chưa lần lặp chưa biết trước.</b>



Việc tăng giá trị cho tổng S



Việc tăng giá trị cho tổng S



được lặp đi lặp lại



</div>
<span class='text_page_counter'>(23)</span><div class='page_container' data-page=23>

3. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC



3. LẶP VỚI SỐ LẦN CHƯA BIẾT TRƯỚC



a. Bài toán nêu vấn đề:



Dữ liệu ra (Output) : Tổng

<b>S</b>



<i>Lặp chương trình tính tổng sau:</i>


<i>Hãy xác định INPUT và OUTPUT của bài </i>


<i>toán trên?</i>



Dữ liệu vào (Input) : Nhập

<b>N</b>



...


1


...


2


1



1


1


1











<i><b>N</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>S</b></i>



cho đến khi

<b> </b>



</div>
<span class='text_page_counter'>(24)</span><div class='page_container' data-page=24>

THUẬT TỐN



THUẬT TỐN



<i>Nhận xét thuật tốn.</i>



*

<i>Bước 5: </i>

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



*

<i>Bước 1</i>

: S ← 1/a; N ← 0; {Khởi tạo S và N}




*

<i>Bước 3: </i>

N ← N + 1;



*

<i> Bước 2: </i>

Nếu 1/(a + N) < 0,0001 thì chuyển đến bước 5;



*

<i>Bước 4: </i>

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



</div>
<span class='text_page_counter'>(25)</span><div class='page_container' data-page=25>

CÂU LỆNH WHILE - DO



CÂU LỆNH WHILE - DO



<i>Hãy nêu cấu trúc lặp với câu lệnh while - do?</i>


<i>Điều kiện: biểu thức quan hệ hoặc biểu thức logic</i>
<i>Câu lệnh: là môt câu lệnh trong Pascal</i>


While <

<i>điều kiện</i>

> do <

<i>câu lệnh </i>

>;



</div>
<span class='text_page_counter'>(26)</span><div class='page_container' data-page=26>

<i>Quan sát sơ </i>
<i>đồ khối, hãy </i>
<i>cho biết sự </i>
<i>thực hiện của </i>


<i>máy?</i>


• Bước 1: tính giá trị của <điều kiện>.


• Bước 2: Nếu <điều kiện> có giá trị đúng thì:
• thực hiện lệnh cần lặp.



• quay lại bước 1.


SƠ ĐỒ KHỐI


Điều kiện


Lệnh cần lặp
Đúng


Sai


</div>
<span class='text_page_counter'>(27)</span><div class='page_container' data-page=27>

BÀI TỐN ĐẶT VẤN ĐỀ



BÀI TỐN ĐẶT VẤN ĐỀ



<i>Tính tổng S với a là số nguyên và a>2</i>



...


1


...


2


1


1


1


1












<i><b>N</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>


<i><b>a</b></i>



<i><b>S</b></i>

Cho đến khi

<b>1</b>

<b>0</b>

.

<b>0001</b>



<i>N</i>


<i>a</i>



<i>Nhận xét</i>



<b>While</b>

1/(a + N) >= 0.0001

<b>do</b>



Begin



S:=S+1/(a+N);


N:=N+1;



End;



Chừng nào 1/(a + N) >= 0.0001 thì


thực hiện:



+ Tăng giá trị của tổng S thêm



1/(a + N).



</div>
<span class='text_page_counter'>(28)</span><div class='page_container' data-page=28>

<i>Quan sát sách giáo khoa trang </i>


<i>47, chương trình cài đặt thuật </i>



</div>
<span class='text_page_counter'>(29)</span><div class='page_container' data-page=29>

• Tính giá trị của <điều kiện>.


•Nếu <điều kiện> có giá trị đúng thì:
• thực hiện lệnh cần lặp.


</div>
<span class='text_page_counter'>(30)</span><div class='page_container' data-page=30>

<b>...</b>


<i>Quan sát sách giáo khoa trang </i>


<i>47, chương trình cài đặt thuật </i>



<i>tốn “ Tìm ước số chung lớn </i>


<i>nhất của hai số nguyên dương </i>



</div>
<span class='text_page_counter'>(31)</span><div class='page_container' data-page=31>

THUẬT TOÁN



THUẬT TOÁN



*

<i>Bước 5: </i>

Đưa ra kết quả ƯCLN rồi kết thúc.



<i>* Bước 1: Nhập M, N;</i>



<i>* Bước 3: Nếu M > N thì M ← M + N ngược lại N ← N - M</i>

<i>;</i>


<i>* Bước 2: Nếu M = N thì lấy giá trị chung này làm ƯCLN rồi </i>


<i>chuyển đến bước 5;</i>




</div>
<span class='text_page_counter'>(32)</span><div class='page_container' data-page=32></div>
<span class='text_page_counter'>(33)</span><div class='page_container' data-page=33>

Chừng nào

M≠N

thì



nếu

M> N

thì

M:= M-N



ngược lại

N:= N-M



Đến khi

M=N

thì



đưa ra ƯCLN(M,N)=

M



</div>
<span class='text_page_counter'>(34)</span><div class='page_container' data-page=34>

CÂU LỆNH REPEAT - UNTIL



CÂU LỆNH REPEAT - UNTIL



<i>Hãy nêu cấu trúc lặp với câu lệnh </i>
<i>repeat - until?</i>


Repeat <

<i>câu lệnh</i>

> until <

<i>điều kiện </i>

>;



</div>
<span class='text_page_counter'>(35)</span><div class='page_container' data-page=35></div>
<span class='text_page_counter'>(36)</span><div class='page_container' data-page=36>

Thực hiện tháng 8 năm 2007



</div>

<!--links-->

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

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