So sánh giữa hàm và thủ tục

Để đảm bảo điều kiện sinh sống của người dân tại thành phố X, một nhóm các nhà khoa học cho biết với các điều kiện y tế, giáo dục, cơ sở hạ tầng,… của thành phố thì chỉ nên có tối đa 60.000 người dân sinh sống. Các nhà khoa học cũng chỉ ra rằng dân số được ước tính theo công thức

, trong đó A là dân số của năm được lấy làm mốc tính, S là dân số sau n năm và i là tỉ lệ tăng dân số hằng năm. Biết rằng vào đầu năm 2015, thành phố X có 50.000 người dân và tỉ lệ tăng dân số là 1,3%. Hỏi trong năm nào thì dân số thành phố bắt đầu vượt ngưỡng cho phép, biết rằng số liệu chỉ được lấy vào đầu mỗi năm và giả thiết tỉ lệ tăng dân số không thay đổi?

Hàm và thủ tục là bài học khó trong chương trình Tin học lớp 11. Học sinh không chỉ nắm rõ cấu trúc của thủ tục và hàm mà còn phải biết cách sử dụng tham số của chương trình con.

Để phần nào giúp học sinh hiểu rõ bài học hơn, loạt bài viết về Hàm và Thủ tục sẽ được đăng theo từng nội dung trong mỗi bài viết.

Phần 1: So sánh Hàm [function] và Thủ tục [procedure]

Cấu trúc chương trình:

  1. Procedure [[]];

[];

Begin

[];

End;

  1. Function [[]]:;

[];

Begin

[];

:= ;

End;

Giống nhau: Hàm và thủ tục là các chương trình con có chức năng thực hiện một công việc nào đó trong chương trình chính. Về cấu trúc chung đều giống nhau.

Khác nhau:

– Hàm sau khi thực hiện công việc sẽ trả về một giá trị cho tên hàm.

– Thủ tục khi thực hiện công việc không trả về một giá trị cho tên thủ tục.

Ví dụ: Chương trình tính tích của hai số nguyên a và b.

Hàm:

Function Tich[a, b: integer]: integer;

Var Kq: Integer;

Begin

Kq := a*b;

Tich := Kq;

End;

Thủ tục:

Procedure tt_Tich[a, b: integer];

Var Kq: Integer;

Begin

Kq := a*b;

Write[‘Tích của , a, ‘ và ‘, b, ‘ là ‘, Kq];

End;

Nhận xét:

– Vì hàm hàm trả về giá trị sau khi thực hiện nên có lệnh gán kết quả cho tên hàm Tích := Kq; và cũng chính vì vậy nên sau khai báo tên hàm có khai báo têm kiểu dưữ liệu trả về Tich[a, b: integer]: integer;

– Thủ tục không trả về kết quả nên có câu lệnh xuất kết quả ngay trong thủ tục Write[‘Tích của , a, ‘ và ‘, b, ‘ là ‘, Kq];

Trong chương trình chính, khi sử dụng hàm và thủ tục cũng cần chú ý:

– Vì hàm trả về một giá trị thông qua tên gọi của nó nên ta có thể viết hàm trong biểu thức, hay xuất ra trong câu lệnh write. Ví dụ:

+ tich[2, 5] * 5 –> cho kết quả 50

+ write[tich[2, 5]] –> in ra màn hình giá trị 10

– Thủ tục không trả về giá trị thông qua tên của nó do đó ta không thể sử dụng như hàm trong ví dụ trên à chỉ có thể gọi thủ tục như một câu lệnh độc lập. Ví dụ:

Hàm, thủ tục và phương thức gắn với đối tượng trong lập trình Python

Python là ngôn ngữ lập trình hiện nay rất phổ biến, nhưng cũng mới mẻ đối với nhiều học sinh. Trong khuôn khổ bài viết này, tác giả mong muốn chúng ta làm rõ cách hiểu và sử dụng đối với hàm, thủ tục và phương thức của đối tượng.

Trong nhiều ngôn ngữ lập trình bậc cao, chúng ta vẫn thường sử dụng các hàm và thủ tục có sẵn, hoặc tự xây dựng các hàm và thủ tục mới. Chúng ta vẫn gọi hàm và thủ tục là chương trình con. Hàm và thủ tục được phân biệt như sau:

Thủ tục [Procedure] là chương trình con thực hiện thao tác nhất định và không trả về giá trị qua tên của nó.

Hàm [Function] là chương trình con thực hiện thao tác nào đó và trả về giá trị qua tên của nó.

Một số ví dụ về hàm và thủ tục: - Thủ tục print[]: đưa ra màn hình - Hàm input[]: trả về xâu ký tự nhập từ bàn phím sau khi đưa ra màn hình lời nhắc [có thể không có]. - Hàm int[s]: trả về giá trị số nguyên của xâu số s. - Hàm float[s]: trả về giá trị số thực của xâu số s.

Một số hàm không tích hợp sẵn mà nó có trong các thư viện, khi sử dụng ta cần khai báo thư viện đó, chẳng hạn hàm sqrt[n] trả về giá trị căn bậc 2 của n trong thư viện Math.

Về phương thức [Method]: Khi làm việc với các đối tượng như xâu ký tự hay danh sách, chúng ta có các phương thức gắn với chúng. Các phương thức này có thể thực hiện thao tác nhất định [giống thủ tục] hoặc trả về giá trị [giống như hàm]. Phương thức sort[] sắp xếp các phần tử của danh sách [list] từ nhỏ đến lớn. Phương thức upper[] trả về dạng chữ hoa xâu ký tự [không làm thay đổi giá trị của xâu ký tự ban đầu]....

Chúng ta cũng có các hàm có tham số là xâu ký tự, danh sách như hàm len cho biết độ dài, số phần tử của xâu, của danh sách.

Như vậy bên cạnh việc sử dụng hàm và thủ tục đã quen thuộc: Lời gọi thủ tục tạo thành một câu lệnh; lời gọi hàm là một phần của câu lệnh, nó đóng vai trò là một giá trị. Chúng ta còn biết đến các phương thức gắn với đối tượng [về mặt ý nghĩa có thể giống hàm hoặc thủ tục] nhưng khi gọi chúng ta cần viết theo cấu trúc .. Thêm nữa, có những hàm không tích hợp sẵn mà chứa trong các thư viện, khi đó ngoài việc khai báo thư viện [import] chúng ta gọi hàm cũng theo cấu trúc ..

Chủ Đề