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

Trong bài Ví dụ về cách viết và sử dụng chương trình con được eLib biên soạn và tổng hợp dưới đây sẽ giúp các em học sinh tìm hiểu về cách viết và sử dụng chương trình con trong Pascal từ đó nắm thật chắc kiến thức để giải quyết một số bài tập liên quan. Mời các em cùng tham khảo!

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

1. Tóm tắt lý thuyết

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

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

Procedure [ < danh sách tham số > ];

[ < phần khai báo > ]

Begin

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

End;

- Phần đầ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 có.

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

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

Viết thủ tục vẽ hình chữ nhật có dạng như sau

*******

*          *

*******

Chiều dài là 7 chiều rộng là 3.

Procedure Ve_Hcn;

                   Begin

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

                   Writeln(‘*             *’);

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

End;

Để sử dụng thủ tục này ta gọi Ve_Hcn;

1.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 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 chỉ khác nhau phần đầu.

Function [hàm];

+ Trong đó kiểu dữ liệu chỉ có thể là integer, real, char, Boolean, string.

+ Khác với thủ tục, trong thân hàm phải có lệnh gán giá trị cho tên hàm:  :=;

Ví dụ:

Viết chưng tình thực hiện việc rút gọn một phân số , trong đó có sử dụng hàm tính ước chung lớn nhất của hai số nguyên.

program rutgon;

uses crt;

var

              TuSo,MauSo,a: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

             clrscr;

             write('Nhap vao 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);

          readkey;

end.

- Trong chương trình này, các biến TuSo, MauSo và a là các biến toàn cục, còn biến sodu là biến cục bộ.

- Sử dụng hàm

+ Việc sử dụng hàm 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 tên 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.

2. Bài tập minh họa

Bài 1: Viết chương trình con để tính n! = 1.2...n.

Hướng dẫn giải

Vì bài toán này trả về 1 giá trị duy nhất nên ta dùng hàm.

Function GiaiThua(n:Integer) : Integer;

Var P, i: Integer;

Begin

P:=1;

For i:=1 To n Do

P:=P*i;

GiaiThua:=P;

End;

Bài 2: Viết chương trình con để tìm điểm đối xứng của điểm (x,y) qua gốc tọa độ.

Hướng dẫn giải

Vì bài toán này trả về tọa độ điểm đối xứng (xx,yy) gồm 2 giá trị nên ta dùng thủ tục.

Procedure DoiXung(x,y:Integer; Var xx,yy:Integer);

            Begin

                    xx:=-x;

                    yy:=-y;

            End;

3. Luyện tập

3.1. Bài tập tự luận

Câu 1: Kiểu dữ liệu của hàm

Câu 2: Muốn khai báo x là tham số giá trị và y, z là tham số biến (x, y, z thuộc kiểu Byte) trong thủ tục “ViduTT” thì khai báo như thế nào?

Câu 3: Đoạn chương trình sau có lỗi gì?

Procedure End (key : char ) ;

    Begin

           If key = ‘ q ’  then  writeln( ‘ Ket thuc ’ )

    End;

Câu 4: Cho chương trình sau:

Program Chuong_Trinh;

Var a, b, S : byte;

Procedure TD(Var x : byte ; y : byte);

    Var i : byte;

Begin

    i := 5;

writeln(x,‘  ’, y);

x := x + i ;

y := y + i ;

S := x + y ;

Writeln(x,‘  ’, y);

End;

Begin

    Write(‘nhập a và b : ’);

Readln(a, b);

TD(a,b);

Writeln(a,‘  ’, b, ‘  ’, S);

Readln;

End.

Trong chương trình trên có các tham số thực sự là?

3.2. Bài tập trắc nghiệm

Câu 1: Khẳng định nào sau đây là đúng?

A. Cả thủ tục và hàm đều có thể có tham số hình thức.

B, Chỉ có thủ tục mới có thể có tham số hình thức.

C, Chỉ có hàm mới có thể có tham số hình thức.

D, Thủ tục và hàm nào cũng phải có tham số hình thức.

Câu 2: Khẳng định nào sau đây là đúng?

A, Lời gọi hàm nhất định phải có tham số thực sự còn lời gọi thủ tục không nhất thiết phải có tham số thực sự.

B, Lời gọi thủ tục nhất thiết phải có tham số thực sự còn lời gọi hàm không nhất thiết phải có tham số thực sự.

C, Cả lời gọi hàm và lời gọi thủ tục đều phải có tham số thực sự.

D, Lời gọi hàm và lời gọi thủ tục có thể có tham số thực sự hoặc không có tham số thực sự tùy thuộc vào từng thủ tục.

Câu 3: Trong các cách sử dụng thủ tục sau, cách nào là phù hợp nhất?

A, Khai báo lại thủ tục và gọi nó mỗi khi cần sử dụng;

B, Khai báo thủ tục duy nhất một lần và gọi nó một lần duy nhất;

C, Chỉ cần khai báo;

D, Khai báo thủ tục một lần và gọi nó trong thân chương trình mỗi khi muốn sử dụng;

Câu 4: Khẳng định nào sau đây là đúng?

A, Một chương trình con nhất thiết phải có tham số hình thức.

B, Một chương trình con nhất thiết phải có biến cục bộ.

C, Một chương trình con nhất thiết phải có tham số hình thức, không nhất thiết phải có biến cục bộ.

D, Một chương trình con có thể không có tham số hình thức và cũng có thể không có biến cục bộ.

Câu 5: Hãy chọn phương án ghép đúng. Cho thủ tục sau:

Procedure p;

    Var n : integer ;

Begin

…… ……

End ;  

Phạm vi của biến n là :

A, Trong toàn bộ chương trình;

B, Trong nội bộ thủ tục p;

C, Trong toàn bộ tệp chương trình nguồn;

D, Tùy thuộc vào vị trí sử dụng thủ tục p;

4. Kết luận

Sau khi học xong bài học này các em học sinh cần nắm được những nội dung trọng tâm sau:

  • Biết được cấu trúc chung và vị trí của thủ tục trong chương trình chính.
  • Phân biệt được tham số giá trị và tham số biến trong thủ tục.
  • Nắm được khai báo biến toàn cục và biến cục bộ.
  • Nhận biết được các thành phần trong đầu của một thủ tục.
  • Nhận biết được hai loại tham số hình thức trong đầu của một thủ tục.
  • Nhận biết được lời gọi thủ tục ở chương trình chính cùng với tham số thực sự.
Ngày:11/09/2020 Chia sẻ bởi:

CÓ THỂ BẠN QUAN TÂM