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

bai 18 CTCt1 cuc hot

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 (747 KB, 18 trang )

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

<b>BÀI CŨ</b>



Trong ngôn ngữ lập trình Pascal, chương trình con gồm
mấy loại ? Có tên gọi là gì ? Hãy nêu cấu trúc của chương
trình con?


<b>Câu 1</b>



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


<sub> Chương trình con gồm có hai loại: </sub>


<b>Hàm</b> (Function) và <b>Thủ tục</b> (Procedure)
<sub> Cấu trúc của chương trình con gồm:</sub>


<b> <Phần đầu></b>


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

<b>BÀI CŨ</b>



Hãy cho biết chương trình sau
sử dụng chương trình con là
thủ tục hay hàm? Đó là đoạn


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

Program Tim_Max;


Var a,b,c,d,e,ln1,ln2,ln3,ln4:integer;


Procedure sln(a,b:integer;var max:integer);
Begin


If a>b then max:=a else max:=b;


End;


BEGIN


Write('nhap a,b,c,d,e:'); Readln(a,b,c,d,e);
sln(a,b,ln1);


sln(ln1,c,ln2);
sln(ln2,d,ln3);
sln(ln3,e,ln4);


</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>

<b> PROCEDURE</b> <tên_thủ_tục>[<(DS các tham số hình thức)>];


[<Phần khai báo>]


<b>BEGIN</b>


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


<b>END;</b>


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


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


<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


<b>- Phần đầu: gồm Procedure, tên thủ tục và các tham số hình thức.</b>
<b>- Phần khai báo: các hằng, kiểu, biến và cũng có thể các chương </b>
trình con.



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

<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


<b>b. Sử dụng thủ tục:</b>
Lệnh gọi:


<b><TÊN_THỦ_TỤC>[<(Danh sách tham số thực sự)>];. </b>
Từ chương trình trên,


hãy xác định vị trí của
thủ tục và lời gọi thủ tục


trong chương trình?


-Thủ tục được khai báo ở <phần khai báo> của chương
trình chính, sau khai báo biến (với từ khóa Var)


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

<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


<b>c. Tham số hình thức:</b>
<b>* Ví dụ:</b>


<b>Tham số biến</b>


<sub> Khai báo:</sub>


VAR


DS tham số hình thức:kiểu dữ liệu
• Trong lệnh gọi thủ tục: các tham
số thực sự là tên các biến chứa dữ


liệu ra.


• Giá trị có thể bị thay đổi sau
khi thực hiện xong thủ tục.


<b>Tham số giá trị</b>
• Khai báo:


<DS tham số hình thức>: <kiểu dữ
liệu>


• Giá trị không thay đổi khi
thực hiện xong thủ tục.


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

<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


<b>d. Các Ví dụ:</b>


* * * * *
* *
* * * * *


<b>VD1: Viết Ct vẽ 5 hình chữ nhật có dạng:</b>
<b>PROGRAM VIDU1;</b>


<b> Procedure Ve_HCN;</b>
<b> BEGIN</b>


Writeln(‘* * * * *’);
Writeln(‘* *’);


Writeln(‘* * * * *’);
<b> END;</b>


<b> </b>


BEGIN <i><b>{Chuong trinh chinh}</b></i>


<b> For i:=1 to 5 do Ve_HCN;</b>
<b> Readln;</b>


<b> END.</b>


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

<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


<b>VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dài và </b>
<b>chiều rộng thay đổi được.</b>


Cho biết phần đầu của thủ tục
Ve_HCN sẽ thay đổi như thế nào?


Ve_HCN (

cdai, crong

: integer);



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

<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


<b>Program VD2;</b>


Var a,b,i :integer;


<b>Procedure Ve_HCN(cdai, crong :integer);</b>



Var i,j: integer;
Begin


for i:= 1 to cdai do Write(‘*’);
writeln;


for j:= 1 to crong-2 do
begin


Write(‘*’);


for i:= 1 to cdai-2 do Write(‘ ‘);
writeln(‘*’);


End;


for i:= 1 to cdai do Write(‘*’); Writeln;
End;


<b>VD2: Hãy xây dựng thủ tục vẽ hình chữ nhật với chiều dà và </b>
<b>chiều rộng thay đổi được.</b>


<b>Begin</b>


Ve_HCN(25,10);
Ve_HCN(5,10);
readln;


a:=2; b:=4;



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

<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


<b>Program VD_thambien1;</b>


Var a,b, :integer;


<b>Procedure Hoan_doi (Var x,y :integer);</b>


Var TG: integer;
Begin


TG: = x;
x: = y;
y: = TG;
End;


<b>Begin</b>


a:=5; b:=10;


Writeln(a:6, b:6);
Hoan_doi(a,b);
Writeln( a:6, b:6);
<b>End.</b>


<b>VD3: Phân biệt tham biến, tham tri.</b>


Cho biết kết quả
hiện trên màn hình



khi thực hiện
chương trình?


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

<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


<b>Program VD_thambien2;</b>


Uses crt;


Var a,b, :integer;


<b>Procedure Hoan_doi (x: integer; Var y :integer);</b>


Var TG: integer;
Begin


TG: = x;
x: = y;
y: = TG;
End;
<b>Begin</b>
clrscr;
a:=5; b:=10;
Writeln(a:6, b:6);
Hoan_doi(a,b);
Writeln( a:6, b:6);
<b>End.</b>


<b>VD3: Phân biệt tham biến, tham tri.</b>



Cho biết kết quả
hiện trên màn hình


khi thực hiện
chương trình?


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

<b>Câu 1: Phát biểu nào sau đây sai:</b>


A. Danh sách tham số hình thức có thể có hoặc không.
B. Kết thúc thủ tục END;


C. Thủ tục được viết trong thân chương trình.


D. Tham số hình thức dùng khi khai báo, tham số thực sự dùng khi
gọi thủ tục.


<b>Câu 2 : Giả sử ta có dịng đầu thủ tục là</b>


<b> procedure P (Var A, B: Integer; C:integer);</b>
<b> Thì các tham số hình thức được hiểu như sau:</b>


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

<b>Câu 3: Phần khai báo đầu thủ tục nào sau đây là đúng:</b>



A. Type mang=array[1..10] of Byte;



<b> Procedure nhap(var a: mang;);</b>



B. Type mang: array[1..10] of Byte;



<b> Procedure nhap(var a: mang);</b>




C. Type mang=array[1..10] of Byte;



<b> Procedure nhap(var a: mang);</b>



D.

<b>Procedure nhap(var a: array[1..10] of Byte);</b>


<b>Câu 4: Cho a: real; b: byte; và dòng đầu thủ tục</b>
<b> Procedure tong(n:byte; y: real);</b>


<b> Lời gọi nào sau đây đúng:</b>


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

<b>Câu 5: Cho các biến A,B: byte; C:real; </b>


<b>Trong đó: A là tham trị, B và C là tham biến.</b>
<b>Khai báo dòng đầu thủ tục nào sau đây đúng:</b>
A. Procedure Thamso(Var A:byte; B:Byte; C:real);
B. Procedure Thamso(A:byte; Var B:Byte; C:real);


C. Procedure Thamso(A:byte; Var B:Byte; Var C:real);
D. Procedure Thamso(A,B:Byte; Var C:real);


<b>Câu 6: Cho các biến x,z: byte; y:real;</b>


<b> Dòng đầu thủ tục như sau:</b>



<b> Procedure tang(a:byte; var b:byte;); </b>


<b>Lời gọi thủ tục nào sau đây sai?</b>



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

<b>Câu 7: Cho ch ơng trình sau: </b>


Var x,y:byte;



Procedure Hdoi(a:byte;var b:byte);
Var tg:byte;


Begin


Tg:=a; a:=b; b:=tg;
End;


Begin


x:=1; y:=2; Hdoi(x,y);


Writeln(‘hoan doi la: ’,x,y);
Readln;


End.


A. hoan doi la:12


B. hoan doi la:11


C. hoan doi la:22


D. hoan doi la:21



<b>KÕt qu¶ xt hiƯn trên màn hình là:</b>


<b>Li gi th tc no sau õy là đúng:</b>


A. Hoandoi(x,y);
B. Hdoi(x);



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

<b>VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON</b>


1. Viết 2 thủ tục tính chu vi và diện tích của hình chữ
nhật. Sau đó thực hiện lời gọi 2 thủ tục này trong
chương trình chính với các kích thước khác nhau của
hình chữ nhật.


</div>
<span class='text_page_counter'>(18)</span><div class='page_container' data-page=18></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
×