Lý thuyết: Ví dụ về cách viết và sử dụng chương trình con trang 96 SGK Tin học 11

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

a) Cấu trúc

Thủ tục có cấu trúc như sau:

Procedure <tên thủ tục>[()];

[<phần khai báo>]

begin

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

end;

Trong đó:

  • Đầu thủ tục gồm tên dành riêng 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 để xác định các hàng, kiểu, biến và cũng có thể xác định các chương trình con khác được sử dụng trong thủ tục.
  • Dãy câu lệnh được viết giữa cặp tên dành riêng begin và end tạo thành thân của thủ tục.

Ví dụ

Đầu của thủ tục có thể được viết như sau:

Procedure Ve_Hcn(chdai , chrong: integer);

Thủ tục hoán đổi hai biến:

Procedure hoan_doi(var X, y: integer);

Var TG: integer;

Begin

TG : = X ;

X : = y ;

y:= TO;

End;

Thủ tục hoán đổi của tham số giá trị và tham số biến:

procedure hoan_doi ( X: integer; var y: integer);

Var TG: integer;

Begin

TG : = X ;

X:=y ;

y:= TG;

End.

2. Cách viết và sử dụng hàm

Điểm khác nhau cơ bản giữa thủ tục và hàm là việc thực hiện hàm luôn trả về giá trị kết quả thuộc kiểu xác định và giá trị đó được gán cho tên hàm.

Hàm có cấu trúc tương tự như thủ tục, tuy nhiên có khác nhau phần đầu Phần khai báo một hàm:

Function <tên hàm>[()]: <kiểu dữ liệu>;

Trong đó: kiểu dữ liệu là kiểu dữ liệu của giá trị mà hàm trả về và chỉ có thể là các kiểu integer, real, char, boolean, string.

Cũng như giống thủ tục, nếu hàm không có tham số hình thức thì không cần danh sách tham số. Trong thân hàm cần có lệnh gán giá trị cho tên hàm:

<tên hàm>. = <biểu thức>;

Ví dụ 1

Hàm tính ước chung lớn nhất (UCLN) của hai số nguyên:

Function UCLN(x, y: integer): integer; {bắt đầu hàm UCLN}

var sodu: integer;

Begin

While x<>y do begin

sodu:= X mod y;

X: =y;

y:= sodu;

end;

UCLN:= x;

End {hết hàm UCLN}

- Sử dụng hàm

Việc sử dụng hàm hoàn toàn tương tự với việc sử dụng các hàm chuẩn, khi viết lệnh gọi gồm hàm và tham số thực sự tương ứng với các tham số hình thức.

Lệnh gọi hàm có thể tham gia vào biểu thức như một toán hạng và thậm chí là tham số của lời gọi hàm, thù tục khác, ví dụ:

A: 6*UCLN(Tuso, Mauso)+1;

Ví dụ 2

Hàm tìm số nhỏ nhất trong hai số a và b:

Function Min(a, b: real):real;

Begin

If a

end;