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

slide 1 ngöôøi thöïc hieän leâ xuaân taâm toå naêng khieáu kiểm tra bài cũ caâu 1 trong laäp trình caáu truùc laëp ñöôïc söû duïng để laøm gì caáu truùc laëp được theå hieän baèng gì caâu 2 vieát c

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.14 MB, 13 trang )

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

Người thực hiện : Lê Xuân Tâm


Người thực hiện : Lê Xuân Tâm





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

<b>KIỂM TRA BÀI CŨ</b>



<b>Câu 1</b>

:

Trong lập trình, cấu trúc lặp được sử


dụng đ làm gì?



- Cấu trúc lặp đ c thể hiện bằng gì?

ượ



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

<b>Trả lời</b>



<b>Câu 1</b>

<b>:</b>

Cấu trúc lặp được sử dụng để chỉ thị cho máy tính thực



<i><b>hiện lặp lại một vài hoạt động nào đó cho đến khi một điều kiện </b></i>


<i><b>nào đó được thoả mãn.</b></i>



<i><b>- Cấu trúc lăp được thể hiện bằng câu lệnh lặp.</b></i>



<b>Câu 2:</b>

Cú pháp câu lệnh lặp với số lần lặp cho trước trong ngôn



ngữ lập trình Pascal:



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

<i><b>Tiết </b></i>


<i><b>41</b></i>



<b>Ví dụ 1:</b>

Một ngày chủ nhật, bạn


Long gọi điện cho Trang. Không


có ai nhấc máy. Long quyết định



gọi thêm hai lần nữa. Nếu vẫn


khơng có ai nhấc máy thì chắc là


khơng có ai ở nhà. Như vậy


Long đã biết trước là mình sẽ lặp


lại hoạt động gọi điện thêm hai


lần. Một ngày khác, Long quyết


định cứ 10 phút gọi điện một lần


cho Trang cho đến khi nào có


người nhấc máy. Lần nàyLong


sẽ lặp lại hoạt động gọi mấy


lần?



<b>1. Các hoạt động lặp với số lần chưa </b>


<b>biết trước</b>



Ví d 1: (SGK)



-Long ch a bi t đ c s l p l i ho t

ư

ế ượ ẽ ặ ạ



đ ng g i đi n m y l n.

ọ ệ

ấ ầ



- i u ki n k t thúc hoạt động lặp là

Đ ề

ế



có người nhấc máy.



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

<i><b>Tiết </b></i>


<i><b>41</b></i>



<b>Ví dụ 2:</b>

Nếu cộng lần lượt n số tự


nhiên đầu tiên (n=1, 2, 3,…), Ta sẽ



được các kết quả T1=1, T2=1+2,


T3=1+2+3,… tăng dần. Cần cộng


bao nhiêu số tự nhiên đầu tiên dể ta


nhân được tổng T

n

nhỏ nhất lớn hơn



1000 ?



<i><b>Thuật toán</b></i>

: Kí hiệu S là tổng cần


tìm.



Bước 1:

S 0, n 0.



Bước 2:

Nếu S 1000, n n+1;



Ngược lại, chuyển tới bước 4.



Bước 3:

S S+n và quay lại bước


2.



Bước 4:

In kết quả: S và n là số tự


nhiên nhỏ nhất sao cho S >1000.



Kết thúc thuật toán.



<b>1. Các hoạt động lặp với số lần chưa </b>


<b>biết trước</b>



Ví d 1: (SGK)



-Long ch a bi t đ c s l p l i ho t

ư

ế ượ ẽ ặ ạ




đ ng g i đi n m y l n.

ọ ệ

ấ ầ



- i u ki n k t thúc hoạt động lặp là

Đ ề

ế



có người nhấc máy.


Ví d 2: (SGK)



-Thực hiện phép cộng với số tiếp theo


hay dừng phải kiểm tra tổng đã lớn


hơn 1000 hay chưa.



•Thuật tốn: (SGK)



•- Việc thực hiện phép cộng ở thuật


toán trên được lặp lại với số lần chưa


biết trước.



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

<i><b>Tieát </b></i>


<i><b>41</b></i>



<b>1. Các hoạt động lặp với số lần chưa </b>


<b>biết trước</b>



Cấu trúc lặp với sô lần chưa


biết trước



<b>Tóm lại:</b>



<b>-</b>

Việc lặp lai một nhóm hoạt động



với sô lần chưa xác định trước phụ


thuộc vào một điều kiện cụ thể có


được thoả mãn hay khơng.



•- Để chỉ dẫn cho máy tính thực hiện


hoạt động lặp như trên, ta sử dụng cấu


trúc lặp với sô lần chưa biết trước và


được mô tả bằng sơ đồ H39.



•- Mọi ngơn ngữ lập trình đều có câu


lệnh lặp với số lần chưa biết trước để


thể hiện cấu trúc lặp trên.



Điều kiện ?


Câu lệnh


Sai


Đúng


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

<i><b>Tiết </b></i>


<i><b>41</b></i>



<b>2. Ví dụ về lệnh lặp với sô lần chưa </b>


<b>biết trước</b>



Trong Pascal, cú pháp câu lệnh lặp với
số lần chưa biết trước có dạng:



<b>While </b><i><b>< điều kiện></b></i><b> do </b><i><b><câu lệnh> </b></i><b>;</b>


Trong đó:


<b>Điều kiện</b> thường là một phép so sánh;


Câu lệnh có thể là câu lệnh đơn giản
hay câu lệnh ghép.


* Câu lệnh lặp này được thực hiện như
sau:


Bước 1: Kiểm tra điều kiện.


Bước 2: Nếu điều kiện SAI, câu lệnh sẽ
bị bỏ qua và việc thực hiện lệnh lặp kết
thúc. Nếu điều kiện ĐÚNG, thực hiện
câu lệnh và quay lại bước 1.


* Ý nghĩa: Trong khi <điều kiện> cịn
đúng thì thực hiên <câu lệnh>


Cấu trúc lặp với sô lần chưa


biết trước



Điều kiện ?


Câu lệnh


Sai



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

<i><b>Tiết </b></i>


<i><b>41</b></i>



<b>2. Ví dụ về lệnh lặp với sô lần chưa </b>


<b>biết trước</b>



Trong Pascal, cú pháp câu lệnh lặp với
số lần chưa biết trước có dạng:


<b>While </b><i><b>< điều kiện></b></i><b> do </b><i><b><câu lệnh> </b></i><b>;</b>


Trong đó:


<b>Điều kiện</b> thường là một phép so sánh;


Câu lệnh có thể là câu lệnh đơn giản
hay câu lệnh ghép.


* Câu lệnh lặp này được thực hiện như
sau:


Bước 1: Kiểm tra điều kiện.


Bước 2: Nếu điều kiện SAI, câu lệnh sẽ
bị bỏ qua và việc thực hiện lệnh lặp kết
thúc. Nếu điều kiện ĐÚNG, thực hiện
câu lệnh và quay lại bước 1.


* Ý nghĩa: Trong khi <điều kiện> cịn


đúng thì thực hiên <câu lệnh>


Ví dụ 3: Nếu n(n>0) càng lớn thì 1/n càng nhỏ,
nhưng luôn luôn lớn hơn 0.


Với giá trị nào của n thì 1/n < 0.005 hoặc 1/n <
0.003? Chương trình dưới đây tính số n nhỏ nhất
để 1/n nhỏ hơn một sai số cho trước


<b>Uses crt;</b>
<b>Var x: real;</b>


<b>n: integer;</b>


<b>Const sai_so=0.003;</b>
<b>Begin </b>


<b>clrscr;</b>


<b>x:=1; n:=1;</b>


<b>while x>= sai_so do begin n:=n+1; </b>
<b>x:=1/n end;</b>


<b>Writeln(‘ So n nho nhat de 1/n ‘, sai_so:6:4, ‘la ‘,n);</b>
<b>Readln</b>


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

<b>Hoạt động nhóm</b>



- Câu lệnh lặp với số lần chưa biết trước là câu lệnh nào? Điều kiện và



câu lệnh tương ứng trong câu lệnh lặp này là gì?


- Giải thích ý nghóa của câu lệnh lăp trong chương trình này?


Uses crt;


Var x: real;


n: integer;
Const sai_so=0.003;
Begin


clrscr


x:=1; n:=1;


while x>= sai_so do begin n:=n+1; x:=1/n end;


Writeln(‘ So n nho nhat de 1/n <‘, sai_so:6:4, ‘la ‘,n);
Readln


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

<b>HOẠT ĐỘNG NHĨM</b>



• Câu lệnh lăp với số lần chưa biết trước:



while x>= sai_so do begin n:=n+1; x:=1/n end;



Điều kiện:

x>= sai_so




Câu lệnh:

begin n:=n+1; x:=1/n end



Giải thích:

Trong khi x >= sai_so thì

<b>thực hiện </b>



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

<i><b>Tiết </b></i>


<i><b>41</b></i>



<b>1. Các hoạt động lặp với số lần chưa </b>


<b>biết trước</b>



<b>-</b>

Việc lặp lai một nhóm hoạt động với


sơ lần chưa xác định trước phụ thuộc


vào một điều kiện cụ thể có được


thoả mãn hay khơng.



•- Để chỉ dẫn cho máy tính thực hiện


hoạt động lặp như trên, ta sử dụng cấu


trúc lặp với sô lần chưa biết trước và


được mô tả bằng sơ đồ H39.



•- Mọi ngơn ngữ lập trình đều có câu


lệnh lặp với số lần chưa biết trước để


thể hiện cấu trúc lặp trên.



<b>2. Ví dụ về lệnh lặp với sô lần chưa </b>


<b>biết trước</b>



Trong Pascal, cú pháp câu lệnh lặp với số
lần chưa biết trước có dạng:



<b>While </b><i><b>< điều kiện></b></i><b> do </b><i><b><câu lệnh> </b></i><b>;</b>


Trong đó:


<b>Điều kiện</b> thường là một phép so sánh;


Câu lệnh có thể là câu lệnh đơn giản hay
câu lệnh ghép.


* Câu lệnh lặp này được thực hiện như
sau:


Bước 1: Kiểm tra điều kiện.


Bước 2: Nếu điều kiện SAI, câu lệnh sẽ bị
bỏ qua và việc thực hiện lệnh lặp kết


thúc. Nếu điều kiện ĐÚNG, thực hiện câu
lệnh và quay lại bước 1.


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

<!--links-->

×