تعريف تابع
تعريف تابع (function definition) شامل کدهائی است که هنگام فراخوانی تابع بايد اجرا شود. تعريف تابع شامل دو قمت است: اعلان و بدنه. اولين خط تعريف تابع اعلان يا هدر است که اسم تابع، نوع مقدار برگشتی و آرگومان های تابع را مشخص می کند. بعد از هدر بدنه تابع قرار می گيرد. بدنه تابع بلاکی از دستورات است که درون يک جفت آکولاد محصور می شود و هر زمان که تابع فراخوانی می شود اجرا می شود.
فرم کلی تعريف تابع به صورت زير است:
return_type function_name( arg-type name-1,...,arg-type name-n)
{
/* statements; */
}
مثال. تابع مربع يک عدد.
double square(double n) /* function header */
{
return n * n; /* function body */
}
اعلان تابع
در تابع مثال فوق خط double square(double n) اعلان تابع است. خط اعلان شامل 3 قسمت است:
1.نوع برگشتی
نوع برگشتی تابع نوع داده مقداری است که توسط تابع محاسبه و به برنامه فراخوان برگردانده می شود. نوع برگشنی می تواند از هر نوع استانداردی باشد. اگر نوع برگشتی تابع قيد نشده باشد از نوع int درنظر گرفته می شود. اگر تابع مقداری را بر نمی گرداند نوع برگشتی آن void بايد تعريف می شود.2.نام تابع
تابع اولیه که برنامه با آن شروع می شود main نام دارد. بقیه توابع هر نام دلخواهی می توانند بگیرند. نام تابع از قوانین نامگذاری متغیرها تبعیت می کند. بهتر است نام تابع بیان کننده کاری که تابع انجام می دهد باشد. مثلا اگر تابع برای محاسبه مربع یک عدد است نام هایی مثل square_num یا number_square یا num_2 مناسب است.3.لیست پارامترها
تابع می تواند هیچ، یک یا چند پارامتر داشته باشد. اگر تابعی پارامتر بگيرد به اين معنی است که به مقاديری نياز دارد تا روی آنها کار کند. در مثال تابع مربع، عددی که می خواهید مربع کنید باید به تابع داده شود. این عدد پارامتر تابع است. پارامترها از هر نوع داده ای می تواند باشد.. اگر تابع بيش از يک پارامتر بگيرد پارامترها توسط کاما جدا می شوند و نوع و نام هر پارامتر باید جداگانه مشخص شود. برای اعلان تابعی بدون پارامتر پرانتز بايد خالی بماند.مثال. تابع زير دارای سه آرگومان x، y و z است.
void func1(int x, float y, char z)
توجه کنيد که در انتهای اعلان تابع علامت سميکولن وجود ندارد واگر گذاشته شود کامپايلر پيغام خطا صادر می شود.
گاهی بين پارامتر و آرگومان اشتباه پيش می آيد. يک پارامتر (parameter) يک محلی در هدر تابع است که برای ذخيره مقدار آرگومان عمل می کند. پارامترهای تابع ثابت هستند و در طی اجرای برنامه تغيير نمی کنند. يک آرگومان مقدار وافعی ارسال شده به تابع توسط دستور فراخوانی است. هر زمان که تابعی فراخوانی می شود آرگومان های مختلف می تواند به آن ارسال شود. درون تابع به آرگومان ها توسط نام پارامترهای متناظر دسترسی می شوند.
بدنه تابع
قسمت دوم تعريف تابع بدنه تابع (function body) است که با آکولاد {} محصور می شود و مشابه بلاکی از کد است. بدنه تابع بلافاصله بعد از اعلان تابع قرار می گيرد. دستورات لازم که برای انجام وظيفه تابع در اينجا نوشته می شود. وقتی تابع فراخوانی می شود اجرای آن از ابتدای بدنه تابع شروع می شود و وقتی به انتهای تابع يا دستور return برسد پايان می پذيرد.
تابع ممکن است مقداری را به فراخواننده خود برگرداند. مقدار برگشتی تابع باید از همان نوعی باشد که در اعلان تابع ذکر شده است در غیر اینصورت با خطای mistake erroe مواجه می شوید.
مثال. در برنامه زير تابع square برای محاسبه مربع عدد صحيح توسط تابع اصلی فراخوانی می شود.
#include <iostream.h>
double square(double n);
int main() {
double num;
do {
cout << "What do you want to know the square "
<< "of (enter 0 to quit): ";
cin >> num;
cout << "The square of " << num << " is "
<< square(num) << ".n";
} while (num != 0);
}
double square(double n) {
return n * n;
}
بخش نظرات