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

Nội dung lý thuyết

BÀI 18. VÍ DỤ VỀ CÁCH VIẾT VÀ SỬ DỤNG CHƯƠNG TRÌNH CON

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

a. Cấu trúc của thủ tục

Procedure <tên thủ tục>[<danh sách các tham số>];

[<Phần khai báo>]

Begin

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

End;

* Trong đó:

  • Phần đầu gồm tên dành riêng và 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 thủ tục.

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

- Ví dụ 1:

Program VD_thutuc2;
Uses crt;
Var a, b, i: integer;
Procedure Ve_HCN(chdai, chrong: integer);
Var i,j: integer;
Begin {Ve canh tren cua hinh chu nhat}
     For i:=1 to chdai do write(‘*’);

     Writeln;
     For j:=1 to chrong-2 do write(‘ ’);
     Begin
          Write(‘*’);
          For i:=1 to chdai-2 do write(‘ ’);
          Writeln(‘*’);
     End;
     For i:=1 to chdai do write(‘*’);
     Writeln;
End;

BEGIN {Bat dau chuong trinh chinh}
     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.

* Tham số giá trị: có hai chức năng

  • Đưa dữ liệu vào cho chương trình con;
  • Đưa dữ liệu chương trình con tìm được ra.

* Tham số biến: 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 chứa dữ liệu ra được gọi là các tham số biến.

- Ví dụ 2: 

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);
END.

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

a. Cấu trúc của hàm

Function <tên hàm>[<danh sách các tham số>]: <kiểu dữ liệu>;

[<Phần khai báo>]

Begin

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

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

End;

b. Ví dụ về hàm

- Ví dụ 3:

Program Rutgon_Phanso;
Uses crt;
Var a, tuso, mauso: integer;
Function UCLN(x,y: integer):integer;
Var sodu: integer;
Begin
     While y<>0 do

     Begin
          Sodu:= x mod y;
          x:= y;
          y:= sodu;
     End;
     UCLN:=x;
End;
BEGIN {Bat dau chuong trinh chinh}

     Clrscr;
     Write(‘Nhap tu so va mau so: ‘);
     readln(tuso,mauso);
     A:=UCLN(tuso, mauso);
     If a>1 then
     Begin
          Tuso:= tuso div a;
          Mauso:= mauso div a;
     end;
     Writeln(tuso:5, ‘/’,mauso:5);
     Readln;
END.

- Ví dụ 4:

Program Minbaso;
Uses crt;
Var a, b, c: real;

Function Min(a,b: real):real;
Begin
     If a<b then min:=a 
     Else min:=b;

End;
BEGIN {Bat dau chuong trinh chinh}
     Clrscr;
     Write(‘Nhap vao ba so: ‘);
     readln(a,b,c);
     Writeln(‘So nho nhat trong ba so la: ‘,min(a,b,c);
     Readln;
END.