MỞ ĐẦU
CĂN BẢN
LỆNH RẺ NHÁNH
VÒNG LẶP
NÂNG CAO
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Tạo function trong Pascal

Trong bài này ta sẽ học đến một phần rất hấp dẫn, đó là cách tạo function trong Pascal. Đây được xem là bài đầu tiên trong phần học Pascal nâng cao, nó còn được gọi là lập trình hướng cấu trúc.

Trước khi vào bài thì mình muốn nhắc lại rằng, từ bài 1 đến giờ chúng ta chỉ code trong một chương trình duy nhất có tên là program, đây được gọi là chương trình chính của ứng dụng. Vậy có cách nào để ta có thể tự tạo ra một chương trình riêng không? Hãy tham khảo function.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

1. Tìm hiểu function trong Pascal

Function là một nhóm lệnh được gom lại và có phạm vi biên dịch từ BEGIN đến END nhằm thực hiện một công việc cụ thể nào đó. Function bắt buộc có lệnh return để trả về một giá trị nào đó.

Trong Pascal cũng có các function có sẵn như function AppendStr() dùng để nối thêm chuỗi, function New() dùng để cấp phát bộ nhớ động cho các biến.

Tạo function

Trong Pascal, tên function phải bắt đầu bằng chữ cái in hoa hoặc in thường, không được có khoảng trắng và các kỹ tự đặc biệt.

Mỗi function có các tham số, đây là những giá trị đầu vào của function.

function name(argument(s): type1; argument(s): type2; ...): function_type;
local declarations;

begin
   ...
   < statements >
   ...
   name:= expression;
end;

Trong đó:

  • Cấu trúc của function giống như chương trình chính mà bạn đã học.
  • name là tên của function
  • argument là các tham số truyền vào function
  • local declarations là những khai báo biến có trong function. Những biến này chỉ có tác dụng trong phạm vi của function này, từ là từ begin đến end;.
  • function_type là kiểu dữ liệu mà function trả về. Ví dụ hàm tính căn bậc hai thì sẽ trả về kiểu float.
  • name:= expression; bắt buộc phải có, đoạn này gán giá trị trả về cho function name.

Ví dụ: Viết function tìm giá trị lớn nhất của hai số truyền vào.

function max(num1, num2: integer): integer;

var
   (* biến result cục bộ *)
   result: integer;

begin
   if (num1 > num2) then
      result := num1
   
   else
      result := num2;
   max := result;
end;

Cách gọi function

Câu hỏi đặt ra là trong function trong pascal sẽ được đặt ở đâu? Và gọi như thế nào? Chúng ta cùng xem ví dụ dưới đây để hiểu rõ hơn nhé.

program FunctionFreetuts;

(*biến dùng trong chương trình chính*)
var
   a, b, ret : integer;

(*tao function *)
function max(num1, num2: integer): integer;
var
   (* bien cục bo, chi co tác dụng trong function max *)
   result: integer;

begin
   if (num1 > num2) then
      result := num1
   
   else
      result := num2;
   max := result;
end;

(*chuong tỉnh chinh*)
begin
   a := 100;
   b := 200;
   (* goi function da tao o tren *)
   ret := max(a, b);
   
   writeln( 'Gia tri lon nhat la : ', ret );
end.

Như vậy danh sách các function sẽ được đặt trên khối begin .. end của chương trình chính.

2. Ví dụ tạo function trong Pascal

Mình sẽ lấy một ví dụ nữa về cách tạo function trong Pascal để giúp các bạn hiểu rõ hơn.

Bài toán như sau: Viết chương trình kiểm tra một số có phải là số nguyên tố trong Pascal.

Để làm được bài này thì bạn phải hiểu rằng số nguyên tố là số chỉ chia hết cho 1 và chính nó. Các số như: 2, 3, 5, 7, 11, 13 ... chính là các số nguyên tố. Số nhỏ nhất là 2 và không có số lớn nhất.

Giả sử số cần kiểm tra là N, lúc này ta chỉ cần lặp từ 2 đến (N-1), nếu tồn tại số nào mà N chia hết thì N không phải là số nguyên tố, ngược lại thì đúng là SNT.

  • Mình sẽ đặt tên hàm là kiem_tra_nguyen_to()
  • Có một tham số truyền vào, chính là số N cần kiểm tra
  • Giá trị trả về là TRUE hoặc FALSE. TRUE => là SNT, FALSE => không phải SNT.

Ok, bài giải như sau:

program FunctionFreetuts;

(*biến dùng trong chương trình chính*)
var
   n : integer;

(*Hàm kiểm tra số nguyên tố*)
function isSNT(n: integer): boolean;
var 
    i : integer; 
    bl : boolean;
begin
    bl := true;

    (*Nếu số n bé hơn 1 thì chắc chắn không phải SNT*)
    if (n <= 1) then bl := false;

    (*Lặp và kiểm tra*)
    for i := 2 to (n - 1) do
        if (n mod i = 0) then bl := false;
    isSNT := bl;
end;

(*chuong trình chinh*)
begin
    n := 13;
    if (isSNT(n) = true) then
        begin
            writeln(n, ' la so nguyen to ');
        end
    else 
        begin
            writeln(n, ' khong phai so nguyen to');
        end;
    readln; 
end.

Quá đơn giản phải không các bạn. Trong lập trình quan trọng nhất là cú pháp, vì vậy bạn phải nắm vững cú pháp của từng câu lệnh thì mới không bị lỗi.

3. Tại sao cần tạo function?

Câu hỏi lúc này đặt ra là tại sao cần tạo function trong Pascal? Trong khi ví dụ trên hoàn toàn có thể viết được ở chương trình chính thì sẽ ngắn gọn hơn nhiều.

Bạn cứ tưởng tượng thế này. Giả sử bạn cần kiểm tra 100 số khác nhau thì lúc này nếu có hàm sẵn rồi thì bạn chỉ việc gọi hàm 100 lần. Nhưng nếu bạn code thủ công trong chương trình chính thì bạn phải lặp đoạn code dài dòng kiểm tra số nguyên tố đó 100 lần. Như vậy quá phức tạp phải không các bạn.

Trên là những chia sẻ về cách tạo function và gọi function trong Pascal. Hy vọng bài viết hữu ích!

Cùng chuyên mục:

Lệnh Goto trong Pascal

Lệnh Goto trong Pascal

Trong bài này mình sẽ giới thiệu đến các bạn lệnh goto trong Pascal, đây…

Lệnh Continue trong Pascal

Lệnh Continue trong Pascal

Trong bài này chúng ta sẽ tìm hiểu lệnh continue trong Pascal, đây là lệnh…

Lệnh Break trong Pascal

Lệnh Break trong Pascal

Trong bài này mình sẽ tìm hiểu lệnh dùng để dừng vòng lặp ngay lập…

Vòng lặp Repeat .. Until trong Pascal

Vòng lặp Repeat .. Until trong Pascal

Trong bài này mình sẽ giới thiệu vòng lặp repeat .. until trong Pascal, đây…

Vòng lặp while trong Pascal

Vòng lặp while trong Pascal

Trong bài này chúng ta sẽ tìm hiểu vòng lặp while trong Pascal, đây là…

Vòng lặp For .. Do trong Pascal

Vòng lặp For .. Do trong Pascal

Trong bài này chúng ta sẽ tìm hiểu về vòng lặp For .. Do trong…

Lệnh CASE trong Pascal

Lệnh CASE trong Pascal

Ở bài trước mình đã hướng dẫn sử dụng lệnh if dùng để rẻ nhánh…

Lệnh If .. Then trong Pascal

Lệnh If .. Then trong Pascal

Trong bài này chúng ta sẽ học lệnh rẻ nhánh if .. then trong Pascal,…

Khối lệnh begin .. end trong Pascal

Khối lệnh begin .. end trong Pascal

Bạn có thắc mắc BEGIN và END trong chương trình Pascal là gì không nào?…

Lệnh read và readln trong Pascal

Lệnh read và readln trong Pascal

Trong bài này chúng ta sẽ tìm hiểu hai lệnh dùng để đọc dữ liệu,…

Các lệnh OUTPUT trong Pascal

Các lệnh OUTPUT trong Pascal

Những bài trước chúng ta đã sử dụng một lệnh rất nhiều đó là lệnh…

Toán tử trong Pascal

Toán tử trong Pascal

Trong bài này chúng ta sẽ tìm hiểu về một số toán tử thường dùng…

Tạo kiểu dữ liệu (Type) trong Pascal

Tạo kiểu dữ liệu (Type) trong Pascal

Trong bài này chúng ta sẽ học cách sử dụng từ khóa Type trong Pascal,…

Hằng (const) trong Pascal

Hằng (const) trong Pascal

Hằng số (Const) thực chất cũng là một loại biến bình thường, nhưng có điểm…

Biến và kiểu dữ liệu trong Pascal

Biến và kiểu dữ liệu trong Pascal

Bảng từ khóa của ngôn ngữ Pascal

Bảng từ khóa của ngôn ngữ Pascal

Bảng từ khóa trong Pascal là danh sách những từ khóa mà bạn không được…

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

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

Viết chương trình Hello World với Pascal

Viết chương trình Hello World với Pascal

fadsfs

Hello World là một chương trình thế kỉ mà hầu như ngôn ngữ lập trình…

Top