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

Bai 17 Vi du ve cach viet va Su dung CTC

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 (726.13 KB, 24 trang )

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

<b>BỘ MÔN TIN HỌC 11</b>



<b>Người thực hiện: Châu Quốc Phong</b>


<b>Giáo viên trường THPT Trà Cú</b>



Tập thể lớp 11A1 - Kính chào q Thầy cơ.


Tập thể lớp 11A1 - Kính chào q Thầy cơ.


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

<b>Chương 6: CHƯƠNG TRÌNH CON VÀ </b>


<b> LẬP TRÌNH CÓ CẤU TRÚC</b>


<i>Chương trình con </i>



<i>là gì ?</i>



<i>Phân loại chương </i>


<i>trình con ?</i>



<i>Điểm khác nhau cơ </i>


<i>bản giữa hàm và thủ </i>



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

<b>1. Cách viết và sử dụng thủ tục</b>



<b>a. Cấu trúc của thủ tục</b>



<b>b. Ví dụ về thủ tục</b>



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

• Xét ví dụ vẽ hình chữ nhật có dạng sau:


• * * * * * * *



• * *



• * * * * * * *



<b>1. Cách viết và sử dụng thủ tục</b>



<i>Để vẽ hình chữ nhật trên, </i>
<i>ta cần dùng những câu </i>


<i>lệnh nào?</i>


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

procedure

Ve_Hcn;



• begin



writeln(‘* * * * * * *’);


writeln(‘* *’);


writeln(‘* * * * * * *’);



• end

;



<b>1. Cách viết và sử dụng thủ tục</b>



{bắt đầu thủ tục}



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

procedure

<teân thủ tục> [(<danh sách tham số>)];


• [<phần khai báo>]



begin



[<dãy các lệnh>]




end

;



<b>1. Cách viết và sử dụng thủ tục</b>



<i>•a. Cấu trúc của thủ tục:</i>



procedure



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

program VD_thutuc1;
procedure Ve_Hcn;
begin


writeln('* * * * * * *');
writeln('* *');


writeln('* * * * * * *');
end;


begin


Ve_Hcn;


writeln;writeln;
Ve_Hcn;


writeln;writeln;
Ve_Hcn;


readln
end.



<b>1. Cách viết và sử dụng thủ tục</b>



<i>Thủ tục </i>Ve_Hcn


(<i>chương trình con </i>Ve_Hcn)


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

program VD_thutuc1;
procedure Ve_Hcn;
begin


writeln('* * * * * * *');
writeln('* *');
writeln('* * * * * * *');
end;
Begin
Ve_Hcn;
writeln;writeln;
Ve_Hcn;
writeln;writeln;
Ve_Hcn;
readln
end.


<i>Giả sử ta cần vẽ nhiều hình chữ </i>
<i>nhật với kích thước khác nhau </i>
<i>(25</i>x<i>10; 5</i>x<i>10; 4</i>x<i>2), thủ tục này </i>


<i>có thực hiện được khơng ?</i>



<i>Để giải quyết bài tốn </i>
<i>trên, thủ tục </i>Ve_Hcn<i> được </i>


<i>viết lại như thế nào ?</i>


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

• Ví dụ 1: Chương trình vẽ các hình chữ nhật


có kích thước khác nhau bằng cách dùng thủ


tục Ve_Hcn với các tham số

<i><b>chdai, </b></i>

<i><b>chrong. </b></i>


Giá trị của các tham số

<i><b>chdai, chrong là </b></i>


ngun (integer).



<i>•b. Ví dụ về thủ tục</i>



<b>1. Cách viết và sử dụng thủ tục</b>



Khi đó phần đầu của thủ tục được viết như sau:


procedure Ve_hcn(chdai, chrong: integer);



<i>Khi đó phần đầu của thủ tục </i>


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

1. procedure Ve_Hcn(chdai, chrong: integer);


2. var i, j: integer;


3. begin


4. for i:=1 to chdai do write('*');


5. writeln;



6. for j:=1 to chrong-2 do
begin


write('*');


for i:=1 to chdai-2 do write(' ');
writeln('*');


end;


7. for i:=1 to chdai do write('*');


8. writeln;


9. end;


<i>•b. Ví dụ về thủ tục</i>



<b>1. Cách viết và sử dụng thủ tục</b>



<i>Tham số hình thức</i>
<i>Vẽ cạnh trên của </i>


<i>hình chữ nhật</i>


<i>Vẽ hai cạnh bên</i>


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

begin
clrscr;
Ve_Hcn(25,10);


writeln;writeln;
Ve_Hcn(5,10);
readln;
clrscr;
a:=4; b:=2;
for i:=1 to 4 do
begin
Ve_Hcn(a,b);
readln; clrscr;
a:=a*2; b:=b*2;
end;
readln;


* Trong lệnh gọi thủ tục, các tham
số hình thức được thay bằng các
tham số thực sự tương ứng là <i>các </i>


<i>giá trị cụ thể</i> được gọi là <i><b>tham số </b></i>


<i><b>giá trị</b></i> (tham trị).


•Câu lệnh gọi thủ tục có dạng:


•<tên thủ tục>[(các tham số thực sự)];


<i>•b. Ví dụ về thủ tục</i>



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

<i>•b. Ví dụ về thủ tục</i>



<b>1. Cách viết và sử dụng thủ tục</b>




• Ví dụ 2: Chương trình hốn đổi giá trị của hai


biến, bằng cách dùng thủ tục

<i>Hoan_doi</i>

.



<i>x</i>

<i><sub>y</sub></i>



TG



TG



TG



<i>x</i>

<i><sub>y</sub></i>



TG



<i>x</i>

<i>y</i>



TG :=

<i>x </i>

(1)


<i>x </i>

:=

<i> y</i>

(2)

<i>y </i>

:= TG

(3)


<i>•b. Ví dụ về thủ tục</i>



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

1. program VD_thambien1;


2. uses crt;


3. var a, b: integer;



4. procedure Hoan_doi(var x,y: integer);


5. var TG: integer;


6. begin


TG:= x;
x:= y;
y:= TG;
end;


7. begin


8. clrscr;


9. a:=5; b:=10;


10. writeln(a:6, b:6);


11. Hoan_doi(a,b);


12. writeln(a:6, b:6);


<i>•b. Ví dụ về thủ tục</i>



<b>1. Cách viết và sử dụng thủ tục</b>



<i>Tham số hình thức là </i>
<i>các tham số biến</i>



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

program VD_thambien1;
uses crt;


var a, b: integer;


procedure Hoan_doi(var x,y: integer);
var TG: integer;


begin
TG:= x;
x:= y;
y:= TG;
end;
begin
clrscr;
a:=5; b:=10;
writeln(a:6, b:6);
Hoan_doi(a,b);
writeln(a:6, b:6);
readln;
end.


•Trong lệnh gọi thủ tục, các
tham số hình thức được thay
bằng các tham số thực sự
tương ứng là tên <i>các biến</i>


chứa dữ liệu ra được gọi là


<i><b>các tham số biến</b></i> (tham


biến).


•Để phân biệt tham biến và
tham trị, Pascal sử dụng từ
khóa <b>var</b> để khai báo cho
những <i>tham số biến</i>.


<i>•b. Ví dụ về thủ tục</i>



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

program VD_thambien2;
uses crt;


var a, b: integer;


procedure Hoan_doi(x: integer; var y: integer);
var TG: integer;


begin
TG:= x;
x:= y;
y:= TG;
end;
begin
clrscr;
a:=5; b:=10;
writeln(a:6, b:6);
Hoan_doi(a,b);
writeln(a:6, b:6);


<i>•b. Ví dụ về thủ tục</i>




<b>1. Cách viết và sử dụng thủ tục</b>



<i>Khác nhau trong khai báo </i>
<i>tham số hình thức</i>


<i>Khác nhau ở kết quả sau </i>
<i>khi thực hiện thủ tục</i>


<i>Điểm khác nhau </i>
<i>giữa tham trị và </i>


<i>tham biến ?</i>


<i>•* Tham số biến được dùng để ghi lại</i>
<i>•dữ liệu kết quả của việc thực hiện</i>
<i>•thủ tục.</i>


<i>•* Tham số giá trị chỉ để đưa dữ liệu</i>
<i>•vào cho thủ tục khi bắt đầu thực hiện</i>


<i>•b. Ví dụ về thủ tục</i>



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

1. program VD_thambien2;


2. uses crt;


3. var a, b: integer;


4. procedure Hoan_doi(x: integer; var y: integer);



5. var TG: integer;


6. begin


TG:= x;
x:= y;
y:= TG;
end;


7. begin


8. clrscr;


9. a:=5; b:=10;


10. writeln(a:6, b:6);


11. Hoan_doi(a,b);


12. writeln(a:6, b:6);


13. readln;


14.end.


<i>•b. Ví dụ về thủ tục</i>



<b>1. Cách viết và sử dụng thủ tục</b>




<b>procedure Hoan_doi(var x: integer; y: integer);</b>


<i>Kết quả nhận được (trên </i>
<i>màn hình) như thế nào khi </i>


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

<b>* </b>

<i><b>Chú ý:</b></i>



• - Khi khai báo các tham số hình thức, nếu có


kiểu khác nhau thì các tham số sẽ cách nhau



bằng dấu chấm phẩy, nếu có cùng kiểu thì cách


nhau bằng dấu phẩy.



• Ví dụ:



procedure CTC(x, y, z: integer; r: real);



<i>•b. Ví dụ về thủ tục</i>



<b>1. Cách viết và sử dụng thủ tục</b>



<i>•b. Ví dụ về thủ tục</i>



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

<b>* </b>

<i><b>Chú ý:</b></i>



• - Khi khai báo dữ liệu cho các tham số hình thức


chỉ được dùng tên kiểu. Tên kiểu là tên chuẩn


hoặc tên do người lập trình đặt.



• Ví dụ:




Khai báo hợp lệ:



procedure Alpha(N: integer; var s: string);



<i>•b. Ví dụ về thủ tục</i>



<b>1. Cách viết và sử dụng thủ tục</b>



<i>•b. Ví dụ về thủ tục</i>



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

-Khai báo khơng hợp lệ:



<b>procedure Delta(M: array[1..10] of byte; var X: string[25]);</b>


-Khai báo hợp lệ:



<b>type mang = array[1..10] of byte; xau = string[25];</b>
<b>procedure Delta(M: mang; var X: xau);</b>


<i>•b. Ví dụ về thủ tục</i>



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

1. Từ khóa để khai báo thủ tục là:


A. Program B. Procedure
C. Function D. Processor


2. Muốn khai báo x, y là tham số giá trị (x, y thuộc
kiểu integer) trong thủ tục có tên là “ABC” thì
khai báo nào sau đây là đúng?



A. Procedure ABC(x, y: integer);


B. Procedure ABC(var x, y: integer);


C. Procedure ABC(x: integer; var y: integer);
D. Procedure ABC(var x: integer; y: integer);


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

3. Muốn khai báo x là tham số giá trị, y và z là tham
số biến (x, y, z thuộc kiểu integer) trong thủ tục có
tên là “CTC” thì khai báo nào sau đây là đúng?


A. Procedure CTC(x, y, z: integer);


B. Procedure CTC(var x, y, z: integer);


C. Procedure CTC(var x:integer; y, z: integer);
D. Procedure CTC(x: integer; var y, z: integer);


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

4. Cho chương trình sau:


var a, b, c: integer;


procedure Hoan_doi(var a, b: integer);
var TG: integer;


begin
TG:= a;
a:= b;
b:= TG;


end;
begin
clrscr;


a:= 10; b:= 11; c:= 12;
Hoan_doi(b,c);


Hoan_doi(a,b);
Hoan_doi(b,c);


writeln(a, ‘ ’, b ‘ ’, c);


Kết quả nhận
được (trên màn
hình) sau khi thực
hiện chương trình
là:


A. 10 11 12
B. 11 10 12
C. 12 11 10
D. 12 10 11


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

<b>Tiết học đến đây là hết.</b>



<b>Xin chúc quý Thầy (Cô) </b>



<b>cùng các em học sinh</b>



<b>Vui - Khoẻ và Thành coâng.</b>




</div>

<!--links-->

×