یک تابع یک برنامه فرعی است که نتیجه ای (عدد، رشته کاراکتر و غیره) را برمی گرداند
تصور کنید که محصولی را از یک فروشگاه اینترنتی سفارش داده اید. از نقطه نظر برنامه نویسی، شما زیربرنامه خاصی را فراخوانی کرده اید، و برخلاف یک رویه، این زیربرنامه باید یک نتیجه را برگرداند - محصولی را که سفارش داده اید تحویل دهید. این زیر روال ها
توابع نامیده می شوند.
یک تابع تقریباً به همان روشی قالب بندی می شود:
<پیش>
تابع <نام تابع> (فهرست پارامترها به عنوان <نام متغیر>:<نوع آن> جدا شده با نقطه ویرگول): <نوع مقدار بازگشتی>;
شروع
<بدنه عملکرد>
پایان;
تفاوت بین یک تابع و یک رویه در این است که یک تابع باید مقداری را برگرداند. برای این کار باید از نام تابع به عنوان متغیر یا متغیر ویژه Result استفاده کنید:
<پیش>
تابع Sum(a, b:integer): عدد صحیح;
شروع
مجموع := a + b;
پایان;
یا
<پیش>
تابع Sum(a, b:integer): عدد صحیح;
شروع
نتیجه := a + b;
پایان;
تابعی که میانگین حسابی دو عدد صحیح را برمی گرداند به شکل زیر است:
<پیش>
تابع میانگین(a, b: integer): real;
شروع
میانگین := (a + b) / 2;
پایان؛
باید بدانیم که چگونه این تابع را در برنامه اصلی فراخوانی کنیم:
شما نباید یک تابع را به همان روشی که یک رویه را فراخوانی می کنید:
<پیش>
میانگین (10, 5);
مقدار بازگشتی توسط تابع از بین خواهد رفت. گویی اجناس فروشگاه اینترنتی به کسی داده نشده بلکه دور ریخته شده است. بعید است که مشتری آن را دوست داشته باشد.
صحیح تر است که
نتیجه را در یک متغیر ذخیره کنید (یا
آن را روی صفحه چاپ کنید):
<پیش>
a := میانگین (10, 5);
یا
<پیش>
writeln(میانگین (10، 5));