Bài 18. Ví dụ về cách viết và sử dụng chương trình con

Chia sẻ bởi Trầm Oanh Thủy | Ngày 10/05/2019 | 62

Chia sẻ tài liệu: Bài 18. Ví dụ về cách viết và sử dụng chương trình con thuộc Tin học 11

Nội dung tài liệu:

Ch�o m?ng quí th?y cơ
1. Chương trình con gồm mấy loại? Có tên là gì? Và nêu cấu trúc của chương trình con?
Trả lời:
Có 2 loại chương trình con:
Hàm (Function) và Thủ tục (Procedure).
Cấu trúc của chương trình con:

[]

2. Viết chương trình vẽ lên màn hình hình chữ nhật có dạng:
* * * * * * *
* *
* * * * * * *
Trả lời:
Begin
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
End.
Theo em để vẽ được 3 hình chữ nhật trên ta viết bao nhiêu câu lệnh gì trong chương trình?
Xét ví dụ vẽ 3 hình chữ nhật có dạng sau:
* * * * * * *
* *
* * * * * * *

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

* * * * * * *
* *
* * * * * * *
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
Ta có thể vẽ 3 hình chữ nhật trên với 9 câu lệnh:
Nếu ta cần vẽ N hình chữ nhật như vậy thì chương trình sẽ như thế nào?
Trong trường hợp này, ta có thể giải quyết vấn đề bằng cách nào?
1. Cách viết và sử dụng thủ tục
Program Ve_3_HCN;
Begin
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
Writeln; Writeln; {cach 2 dong}
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
Writeln; Writeln; {cach 2 dong}
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
Readln
End.
Program Ve_3_HCN_dung_thu_tuc;
Procedure Ve_HCN;
Begin
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
End;
Begin
Ve_HCN; {Goi thu tuc Ve_HCN}
Writeln; Writeln; {cach 2 dong}
Ve_HCN;
Writeln; Writeln;
Ve_HCN;
Readln
End.
Em có nhận xét gì về 2 chương trình này?
1. Cách viết và sử dụng thủ tục
a. Cấu trúc của thủ tục
Procedure [()];
[]
Begin
[]
End;
Procedure Ve_HCN;
Begin
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
End;
Phần đầu thủ tục gồm từ khóa Procedure, tiếp theo là tên thủ tục. Danh sách tham số có thể có hoặc không.
Phần khai báo dùng để khai báo hằng, kiểu, biến và có thể xác định các chương trình con khác được sử dụng trong thủ tục. Phần này có thể có hoặc không.
Dãy câu lệnh được viết giữa cặp Begin và End tạo thành thân của thủ tục.
Chú ý:
- Chương trình chính kết thúc bởi End. còn thủ tục kết thúc bởi End;
- Các thủ tục (nếu có) phải được đặt trong phần khai báo của chương trình chính, ngay sau phần khai báo biến.
- Để sử dụng thủ tục, ta phải viết lệnh gọi thủ tục tương tự các thủ tục chuẩn.
1. Cách viết và sử dụng thủ tục
a. Cấu trúc của thủ tục
Program VD_ThuTuc1;
Procedure Ve_HCN;
Begin
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
End;
Begin
Ve_HCN; {Goi thu tuc Ve_HCN}
Writeln; Writeln; {cach 2 dong}
Ve_HCN;
Writeln; Writeln;
Ve_HCN;
Readln
End.
Kết thúc thủ tục và chương trình chính bằng từ khóa gì?
Em hãy cho biết vị trí của thủ tục trong chương trình?
Ta có thể sử dụng thủ tục như thế nào?
Program VD_ThuTuc1;
Procedure Ve_HCN;
Begin
Writeln(`* * * * * * *`);
Writeln(`* *`);
Writeln(`* * * * * * *`);
End;
Phần khai báo
Phần thân
1. Cách viết và sử dụng thủ tục
b. Ví dụ về thủ tục
Nếu ta cần vẽ các HCN có kích thước khác nhau thì cần phải giải quyết bài toán như thế nào?
Ta cần sử dụng 2 tham số cho dữ liệu vào là chiều dài (ChDai) và chiều rộng (ChRong).
1. Cách viết và sử dụng thủ tục
b. Ví dụ về thủ tục
Viết một chương trình con vẽ hình chữ nhật như trên.
* * * * * * … *
* * * * * * … *
*
*
ChRong
ChDai
ChRong-2
? Vẽ cạnh trên của hình chữ nhật:
For i:=1 to ChDai do Write(`*`); Writeln;
? Vẽ 2 cạnh bên của hình chữ nhật:
For j:=1 to ChRong-2 do
Begin
Write(`*`);
For i:=1 to ChDai-2 do Write(` `);
Writeln(`*`);
End;
? Vẽ cạnh dưới của hình chữ nhật:
For i:=1 to ChDai do Write(`*`); Writeln;
ChDai-2
Program VD;
Var a,b,i : integer;
procedure Ve_Hcn(chdai, chrong: integer);
var i, j: integer;
begin
for i:=1 to chdai do write(`*`);
writeln;
for j:=1 to chrong-2 do
begin
write(`*`);
for i:=1 to chdai-2 do write(` `);
writeln(`*`);
end;
for i:=1 to chdai do write(`*`);
writeln;
end;
1. Cách viết và sử dụng thủ tục
b. Ví dụ về thủ tục
Tham số hình thức
Biến cục bộ
Biến toàn cục
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;
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à các giá trị cụ thể được gọi là tham số giá trị (tham trị).
Câu lệnh gọi thủ tục có dạng:
[(các tham số thực sự)];
1. Cách viết và sử dụng thủ tục
b. Ví dụ về thủ tục

1. Cách viết và sử dụng thủ tục
b. Ví dụ về thủ tục
- 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à các giá trị cụ thể được gọi là tham số giá trị (hay tham trị)
- 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 các biến được gọi là tham số biến (hay tham biến)
- Để phân biệt tham biến và tham trị, NNLT Pascal sử dụng từ khóa Var để khai báo các tham biến.
* Chú ý:
+ Tham số thực sự tương ứng với tham trị có thể là hằng, tên biến hoặc biểu thức.
+ Tham số thực sự tương ứng với tham biến phải là tên biến.
Câu 2: Giả sử ta có chương trình con khai báo như sau:
Var x,y: integer;
Procedure Tinh (var a,b: Integer);
Lời gọi nào sau đây là đúng:
A. Tinh(5,10) ;
B. Tinh(2,x) ;
C. Tinh(x,4) ;
D. Tinh(x,y) ;
Câu 3: Giả sử ta có chương trình con khai báo như sau:
Var a, b: Integer;
Procedure Hoan_doi(var x: integer; y: integer);
Lời gọi nào sau đây là đúng:
A. Hoan_doi(10, b);
B. Hoan_doi(5,10);
C. Hoan_doi(a, b+3);
D. Hoan_doi(a+3, 10);
Câu 1: Thủ tục được khai báo ở đâu trong chương trình?
A. Trong thân chương trình chính.
B. Trong phần khai báo của chương trình chính, ngay trước phần khai báo biến.
C. Trong phần khai báo của chương trình chính, ngay sau phần khai báo biến.
D. Không cần khai báo.
Câu 4: Xét chương trình sau:
Var a, b: Integer;
Procedure Hoan_doi(Var x: Integer; y: Integer);
Var TG: Integer;
Begin
TG:=x; x:=y; y:=TG;
End;
BEGIN
a:=5; b:=10;
Hoan_doi(a, b);
Writeln(a:6, b:6); {Xuat ra man hinh}
END.
Tại vị trí có chú thích, chương trình sẽ xuất ra:
A. 10 10
B. 10 5
C. 5 10
D. 5 5
Cấu trúc của thủ tục:
Procedure [()];
[]
Begin
[]
End;
Thủ tục được khai báo và mô tả trong phần khai báo của chương trình chính, sau khai báo biến.
Để sử dụng thủ tục, cần có lệnh gọi thủ tục có dạng:
[()];
Có 2 loại tham số hình thức là tham biến và tham trị. Tham biến được đặt sau từ khóa Var trong DS tham số và phải được thay bằng tham số thực sự là tên biến.
Haõy nhôù
* Một số tài liệu cũ có thể bị lỗi font khi hiển thị do dùng bộ mã không phải Unikey ...

Người chia sẻ: Trầm Oanh Thủy
Dung lượng: | Lượt tài: 0
Loại file:
Nguồn : Chưa rõ
(Tài liệu chưa được thẩm định)