Chương trình con là một phần quan trọng trong lập trình, giúp tái sử dụng mã nguồn và quản lý chương trình hiệu quả hơn. Trong lập trình, chương trình con được phân thành nhiều loại khác nhau, mỗi loại có chức năng và cách sử dụng riêng biệt. Vậy, có mấy loại chương trình con? Hãy cùng Vinasite tìm hiểu chi tiết trong bài viết dưới đây.
Mục Lục
Khái niệm về chương trình con
Chương trình con là một tập hợp các lệnh thực hiện một tác vụ cụ thể nào đó và có thể được gọi (thực thi) từ nhiều vị trí khác nhau trong chương trình chính.
Ví dụ về bài toán sau:
Tính S = ab + cd + ef
Nếu chúng ta chỉ sử dụng các biến để lưu trữ kết quả của từng phép toán như ab, cd, ef, chúng ta sẽ gặp phải một số vấn đề:
- Vấn đề: Ta phải viết 3 đoạn mã tương tự nhau. Nếu số phép toán cần tính là 1000, mã nguồn sẽ trở nên rất dài, dễ gây nhầm lẫn và khi phát hiện lỗi, ta sẽ phải sửa tất cả các đoạn mã liên quan.
- Giải pháp: Để khắc phục, chúng ta có thể viết một chương trình con để tính lũy thừa. Ví dụ với giá trị x kiểu thực và k 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, chỉ cần gọi chương trình con và thay thế x, k bằng các giá trị cụ thể.
Các hàm mà chúng ta thường xuyên sử dụng như sqrt(), upcase(), delete()… chính là những ví dụ về chương trình con.
Một số lợi ích khi sử dụng chương trình con
- Tránh việc lặp lại mã nguồn: Thay vì phải viết lại cùng một dãy lệnh nhiều lần, ngôn ngữ lập trình cho phép tổ chức các dãy lệnh thành chương trình con. Mỗi khi cần sử dụng, chỉ cần gọi chương trình con đó.
- Hỗ trợ phát triển chương trình lớn: Khi lập trình một ứng dụng lớn với hàng nghìn hoặc hàng vạn dòng mã, việc phân công cho nhiều người hoặc nhóm người viết các chương trình con riêng biệt sẽ giúp dễ dàng hoàn thành công việc. Sau đó, các chương trình con này sẽ được kết hợp lại thành chương trình chính.
- Tạo ra sự trừu tượng hóa: Chương trình con giúp người lập trình chỉ cần sử dụng kết quả từ chương trình con mà không cần quan tâm đến cách thức cài đặt cụ thể của nó. Đây là nguyên lý quan trọng khi xây dựng chương trình có cấu trúc.
- Mở rộng khả năng của ngôn ngữ lập trình: Các ngôn ngữ lập trình thường cho phép đóng gói các chương trình con, biến chúng thành các lệnh mới (giống như các hàm và thủ tục chuẩn), giúp người lập trình có thể sử dụng mà không cần biết mã nguồn bên trong.
- Dễ dàng nâng cấp và phát triển: Chương trình được xây dựng từ các chương trình con nên mã nguồn trở nên dễ đọc, dễ hiểu và dễ dàng kiểm tra, chỉnh sửa. Việc cải tiến hoặc thêm mới một chương trình con thường không làm ảnh hưởng đến các chương trình con khác, giúp quá trình phát triển và nâng cấp trở nên thuận tiện hơn.
Có mấy loại chương trình con? Cấu trúc của chương trình con
Có mấy loại chương trình con?
Chương trình con có thể được chia thành hai loại chính:
- Hàm (Function): Là chương trình con thực hiện một số thao tác và trả về một giá trị thông qua tên của nó. Ví dụ, hàm sin(x) nhận một giá trị thực x và trả về giá trị sin của x. Tương tự, Sqrt(x) nhận giá trị x và trả về căn bậc hai của x.
- Thủ tục (Procedure): Là chương trình con thực hiện một số thao tác nhưng không trả về giá trị qua tên của nó. Ví dụ về thủ tục bao gồm các thao tác nhập/xuất chuẩn hoặc xử lý chuỗi, như writeln, readln, delete, insert,…
Cấu trúc của chương trình con
Cấu trúc của chương trình con tương tự như chương trình chính, nhưng bắt buộc phải có tên và phần đầu khai báo tên. Nếu là hàm, chương trình con còn cần khai báo kiểu dữ liệu của giá trị trả về. Cấu trúc chương trình con bao gồm:
- Phần đầu: Đây là nơi khai báo tên của chương trình con. Nếu là hàm, cần khai báo kiểu dữ liệu trả về.
- Phần khai báo: Phần này có thể bao gồm khai báo các biến đầu vào và đầu ra, hằng số và các biến cần thiết cho chương trình con.
- Phần thân: Đây là phần chứa dãy lệnh thực thi, từ các dữ liệu đầu vào để tính toán và cho ra kết quả mong muốn.
Các biến khai báo cho dữ liệu vào và ra trong chương trình con gọi là tham số hình thức. Những biến chỉ sử dụ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), x và k là tham số hình thức, còn j là biến cục bộ.
Các biến được khai báo trong chương trình chính sẽ được gọi là biến toàn cục.
Thực hiện chương trình con
Để gọi một chương trình con, ta sử dụng lệnh gọi tương tự như lệnh gọi các hàm hay thủ tục có sẵn. Lệnh này bao gồm tên của chương trình con, kèm theo các tham số thực sự (nếu có). Các tham số thực sự này có thể là các hằng số hoặc biến chứa dữ liệu vào và ra tương ứng với các tham số hình thức đã được khai báo trong chương trình con. Các tham số thực sự này sẽ được truyền vào chương trình con khi thực hiện.
Ví dụ: Sqr(225)
Trong ví dụ này, Sqr là tên của chương trình con và 225 là tham số thực sự.
Khi chương trình con được gọi, các tham số hình thức trong chương trình con sẽ nhận giá trị từ các tham số thực sự tương ứng. Nếu có tham số hình thức là dữ liệu đầu ra, chúng sẽ trả giá trị lại cho tham số thực sự sau khi chương trình con kết thúc.
Khi chương trình con hoàn tất, lệnh tiếp theo trong chương trình chính sẽ được thực thi.
Trên đây là những thông tin từ Vinasite chia sẻ, giúp bạn giải đáp được thắc mắc có mấy loại chương trình con. Hy vọng bài viết này sẽ mang lại hữu ích cho bạn.