توابع (Functions)
تابع که مقدار برمیگرداند: سه روش تعیین خروجی (نام تابع، Result، exit) و فراخوانی در عبارات.
تابع = رویهای که جواب میدهد
فرق اصلی: تابع (Function) یک مقدار برگشتی دارد. مثل ماشینحساب: ورودی میگیرد، جواب میدهد — و شما جواب را هر جا میتوانید استفاده کنید.
ساختار
function اسم(پارامترها): نوع_خروجی;
begin
...
اسم := مقدار; { تعیین مقدار برگشتی }
end;
اولین تابع
program FuncDemo;
function Add(a, b: integer): integer;
begin
Add := a + b; { مقدار برگشتی = اسم تابع }
end;
begin
writeln(Add(3, 5)); { 8 — مستقیم در writeln }
writeln(Add(10, 20) * 2); { 60 — در محاسبه }
end.
سه روش تعیین مقدار برگشتی
روش ۱: اسم تابع (کلاسیک)
function Square(x: integer): integer;
begin
Square := x * x;
end;
روش ۲: Result (مدرن — Free Pascal)
function Square(x: integer): integer;
begin
Result := x * x;
end;
مزیت Result: میتوانید مقدارش را بخوانید و چند بار تغییرش دهید — اما اسم تابع فقط قابل نوشتن است.
روش ۳: exit(مقدار) — خروج فوری
function Max(a, b: integer): integer;
begin
if a > b then
exit(a) { برگرد و تمام کن }
else
exit(b);
end;
تابع در عبارات
چون تابع «مقدار» است، هر جا مقدار میرود میتواند باشد:
var
x, y: integer;
begin
x := Square(5); { تخصیص }
y := Square(3) + Square(4); { محاسبه: 9+16=25 }
if Square(2) = 4 then { شرط }
writeln('درست!');
writeln(Square(Square(2))); { تابع توی تابع: 16 }
end;
توابع واقعی
program MathTools;
function IsEven(n: integer): boolean;
begin
Result := (n mod 2 = 0);
end;
function Factorial(n: integer): integer;
var
i, f: integer;
begin
f := 1;
for i := 2 to n do
f := f * i;
Result := f;
end;
function Power(base, exp: integer): integer;
var
i, p: integer;
begin
p := 1;
for i := 1 to exp do
p := p * base;
Result := p;
end;
var i: integer;
begin
for i := 1 to 6 do
writeln(i, '! = ', Factorial(i));
writeln('2^10 = ', Power(2, 10));
writeln('7 even? ', IsEven(7));
end.
تابع در برابر رویه
| ویژگی | procedure | function |
|---|---|---|
| مقدار برگشتی | ندارد | دارد (با نوع مشخص) |
| فراخوانی | بهعنوان دستور مستقل | داخل عبارات |
| کاربرد | انجام یک کار (چاپ، تغییر) | محاسبه و برگرداندن جواب |
خلاصه
- تابع مقدار برمیگرداند:
function f(...): نوع; - سه روش خروجی: اسم تابع، Result، exit(value)
- تابع را در هر عبارتی میتوان استفاده کرد
- محاسبه → تابع؛ انجام کار → رویه
این مبحث بخشی از دوره آموزش کامل پاسکال است.