رویه‌ها (Procedures)

ساخت زیربرنامه با procedure، پارامترها و تفکیک برنامه به بخش‌های قابل استفاده مجدد.

تکرار ممنوع!

اگر قطعه‌ای از کد را دوبار یا بیشتر می‌نویسید، باید آن را یک رویه (Procedure) کنید. رویه یک زیربرنامه با اسم است که یک کار مشخص انجام می‌دهد — مثل دستور آشپزی: یک بار می‌نویسید، هر بار استفاده می‌کنید.

ساختار

procedure اسم(پارامترها);
var
  { متغیرهای محلی }
begin
  { دستورات }
end;

اولین رویه

program Greet;

procedure SayHello;
begin
  writeln('سلام!');
  writeln('به برنامه ما خوش آمدید');
end;

begin
  SayHello;    { فراخوانی }
  SayHello;    { دوباره! }
end.

رویه با پارامتر

program Params;

procedure Greet(name: string);
begin
  writeln('سلام ', name, '! خوش آمدی');
end;

begin
  Greet('Ali');
  Greet('Sara');
  Greet('محمد');
end.

چند پارامتر

procedure PrintSum(a, b: integer);
begin
  writeln(a, ' + ', b, ' = ', a + b);
end;

begin
  PrintSum(3, 5);
  PrintSum(10, 20);
end;

رویه‌ها قبل از begin اصلی

در پاسکال، رویه‌ها باید قبل از استفاده تعریف شوند — یعنی قبل از begin اصلی (یا قبل از رویه‌ای که صدایش می‌زند):
program Order;
procedure A;
begin
  writeln('A');
end;

procedure B;
begin
  A;    { ✅ چون A قبل از B تعریف شده }
  writeln('B');
end;

begin
  B;
end.

چرا رویه؟

مثال کامل: برنامه منظم

program Invoice;

procedure PrintHeader;
begin
  writeln('=====================');
  writeln('=   فاکتور فروش    =');
  writeln('=====================');
end;

procedure PrintItem(name: string; qty, price: integer);
begin
  writeln(name:12, qty:5, price:10, qty * price:12);
end;

procedure PrintFooter(total: integer);
begin
  writeln('---------------------');
  writeln('جمع کل: ', total);
end;

var total: integer;
begin
  total := 0;
  PrintHeader;
  PrintItem('Laptop', 2, 25000000);
  total := total + 2 * 25000000;
  PrintItem('Mouse', 3, 350000);
  total := total + 3 * 350000;
  PrintFooter(total);
end.

خلاصه

این مبحث بخشی از دوره آموزش کامل پاسکال است.

ابزارهای مرتبط