Trang chủ > Lớp 11 > Giải BT Tin học 11 > Bài 17: Chương trình con và phân loại - Giải BT Tin học 11

Bài 17: Chương trình con và phân loại - Giải BT Tin học 11

1. Khái niệm chương trình con

- Chương trình con: Là một dãy lệnh mô tả một số thao tác nhất định và có thể được thực hiện (được gọi) từ nhiều vị trí trong chương trình.

- Giả sử ta có bài toán sau đây:

Hãy tính S=ab+cd+ef

Nếu như với những kiến thức chúng ta đã học trước đây. Chúng ta có thể làm như sau:

+ Sử dụng các biến để lưu kết quả của ab, cd, ef.

Nhược điểm: Ta sẽ phải sử dụng 3 đoạn chương trình tương đồng với nhau. Nếu không phải tính 3 lũy thừa mà là tính 1000 lũy thừa thì số lượng code sẽ rất lớn, dễ gây rối và nếu ta phát hiện có lỗi sai trong đoạn code này ta sẽ phải sửa lần lượt tất cả các đoạn code này.

Cách khắc phục: Ta sẽ viết một chương trình con để tính lũy thừa. Với x là giá trị kiểu thực, còn k là thuộc kiểu nguyên.


Var j: integer; Tich: =1.0; For j: =1 to k do Tich: =Tich*x;

Khi cần tính lũy thừa thì ta chỉ cần viết tên gọi chương trình con rồi thay thế (x, k) bằng các giá trị cụ thể.

Những hàm mà chúng ta thường sử dụng trước đây như: sqrt (), upcase (), delete (), … đều là những chương trình con.

Lợi ích của việc sử dụng chương trình con:

+ Tránh được việc phải viết lặp đi lặp lại cùng một dãy lệnh nào đó.

+ Hộ trợ việc thực hiện các chương trình lớn.

+ Phục vụ cho quá trình trừu tượng hóa.

+ Mở rộng khả năng ngôn ngữ.

+ Thuận thiện cho phát triển, nâng cấp chương trình.

2. Phân loại và cấu trúc của chương trình con

a) Phân loại

Trong nhiều ngôn ngữ lập trình, chương trình con thường gồm hai loại, như sau:

+ Hàm (function) là chương trình con thực hiện một số thao tác nào đó và trả về một giá trị qua tên của nó.

Ví dụ: Hàm toán học hay hàm xử lí xâu:

Sin (x) nhận giá trị thực x và trả về giá trị sin (x);

Sqrt (x) nhận giá trị x và trả về giá trị căn bậc hai của x;

+ Thủ tuc (procedure) là chương trình con thực hiện thao tác nhất định nhưng không trả về giá trị nào qua tên của nó.

Ví dụ: Các thủ tục vào/ra chuẩn hay thủ tục xử lý xâu: Write, writeln, readln, read, …

b) Cấu trúc chương trình con

Chương trình con có cấu trúc tương tự chương trình, nhưng nhất thiết phải có tên và phần đầu dùng để khai báo tên, nếu là hàm phải khai báo kiểu dữ liệu cho giá trị trả về của hàm:

< phần đầu> [< phần khai báo> ] < phần thân>

Phần khai báo

Phần khai báo có thể có khai báo biến cho dữ liệu vào và ra, các hằng và biến dùng trong chương trình con.

Phần thân

Phần thân của chương trình con là dãy câu lệnh thực hiện để từ những dữ liệu vào ta nhận được dữ liệu ra hay kết quả mong muốn.

Tham số hình thức:

Các biến được khai báo cho dữ liệu vào/ra được gọi là tham số hình thức của chương trình con. Các biến được khai báo để dùng riêng trong chương trình con được gọi là biến cục bộ.

Ví dụ: Trong chương trình con Luythua (x, k) ở phần 1 thì x, k là các tham số hình thức và j là biến cục bộ.

Chương trình chính và các chương trình con khác không thể sử dụng được các biến cục bộ của chương trình con, nhưng mọi chương trình con đều sử dụng được các biến của chương trình chính.

c) Thực hiện chương trình con

Tham số thực sự

Để thực hiện một chương trình con, ta cần phải có lệnh gọi nó tương tự lệnh gọi hàm hay thủ tục chuẩn, bao gồm tên chương trình con với tham số là các hằng và biến chứa dữ liệu vào và ra tương ứng với các tham số hình thức đặt trong cặp ngoặc (và). Các hằng và biến này gọi là tham số thực sự.

Ví dụ:

Sqr (225)

Trong đó:

+ sqr là tên chương trình con.

+ 225 là tham số thực hiện.

Khi thực hiện chương tình con, các tham số hình thức dùng để nhập dữ liệu vào sẽ nhận gái trị của tham số thực sự tương ứng, còn các tham số hình thức dùng để lưu trữ dữ liệu ra sẽ trả giá trị đó cho tham số thực sự tương ứng.