با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن ، با یکی دیگر از جلسات دوره کامل آموزش ++C در خدمت شما دوستان هستیم . در بخش قبلی با دستورات شرطی در ++C آشنا شدید، در این جلسه قصد داریم تا با توابع در ++C و تعریف تابع در ++C از جمله توابع user-defined در ++c آشنا شویم.
توابع function در واقع قطعه کد هایی هستند که به دفعات در برنامه مورد استفاده قرار می گیرند و کار خاصی را انجام می دهند و از تکرار کد جلوگیری می کنند.
بسته به این که تابع توسط کاربر تعریف می شود یا نه، توابع به دو نوع تقسیم می شوند:
در مثال زیر ما از تابع کتابخانه ای ()sqrt استفاده می کنیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #include <iostream> #include <cmath> using namespace std; int main() { double number, squareRoot; cout << "Enter a number: "; cin >> number; // sqrt() is a library function to calculate square root squareRoot = sqrt(number); cout << "Square root of " << number << " = " << squareRoot; return 0; } |
خروجی به شکل زیر می باشد:
1 2 | Enter a number: 26 Square root of 26 = 5.09902 |
به عبارت <include <cmath# در ابتدای کد توجه کنید.
cmath یک هدر فایل می باشد که تابع ()sqrt داخل آن تعریف شده است.
وقتی هدر فایلی را وارد برنامه می کنید، می توانید از تمامی توابع داخل آن استفاده کنید.
++C این امکان را به برنامه نویسان می دهد تا توابع خودشان را تعریف کنند.
توضیحات تصویر بالا:
وقتی که برنامه اجرا می شود، سیستم تابع main را فرامی خواند زیرا برنامه کد های برنامه را از این تابع شروع و اجرا می کند.
وقتی که داخل تابع main کنترل برنامه به تایع function_name می رسد، به سراغ تایع ()void function_name و کد های داخل آن می رود و آن ها را اجرا می کند.
بعد از اجرای تابع کنترل برنامه به مکان قبلی به داخل تابع main باز می گردد.
در مثال زیر تابع ()add را برای جمع دو متغیر استفاده می کنیم و نتیجه را نمایش می دهیم:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | #include <iostream> using namespace std; // Function prototype (declaration) int add(int, int); int main() { int num1, num2, sum; cout<<"Enters two numbers to add: "; cin >> num1 >> num2; // Function call sum = add(num1, num2); cout << "Sum = " << sum; return 0; } // Function definition int add(int a, int b) { int add; add = a + b; // Return statement return add; } |
خروجی به شکل زیر می باشد:
1 2 3 | Enters two integers: 8 -4 Sum = 4 |
اگر یک تابع بعد از تابع main تعریف شود، کامپایلر یک خطا صادر می کند.
این به این دلیل می باشد که تابع تعریف شده توسط کاربر، نوع آرگومان ها و نوع برگشتی تابع آگاه نیست.
اعلام اولیه تابع در ++C بدون بدنه تابع هست که فقط اطلاعات تابع را به کامپایلر می دهد.
اعلام اولیه تابع مثال بالا به صورت زیر می باشد:
1 | int add(int, int); |
می بینید که خبری از بلوک یا همان بدنه تابع نیست و فقط نوع برگشتی و پارامتر ها مشخص شده است.حتی نام پارامتر ها نیز لازم نیست ذکر شود.
برای اجرای کد تابع باید آن را فراخوانی کنیم یا صدا بزنیم.
در مثال بالا عبارت add(num1, num2) تابع add را فرا می خواند.
تابع یک مقدار از نوع int را بر می گرداند که در متغیر add داخل تابع ذخیره شده است.
برای تعریف تابع در ++C ابتدا نوع برگشتی تابع را مشخص می کنیم.
به دنبال آن نام تابع و پرانتز ها را می آوریم که پارامتر ها داخل پرانتز مشخص می شوند.
بعد از آن آکولاد را باز می کنیم که به معنای بدنه تابع است و کد تابع داخل آکولاد ها نوشته می شود.
تابعی که در مثال بالا استفاده کرده ایم به صورت زیر تعریف شده است:
1 2 3 4 5 6 7 | // Function definition int add(int a,int b) { int add; add = a + b; return add; } |
در برنامه نویسی آرگومان یا پارامتر مقداری است که هنگام فراخوانی تابع، آن را به تابع ارسال می کنیم.
در مثال بالا دو متغیر num1 و num2 به عنوان آرگومان به تایع ()add ارسال شده اند.
یک تابع با استفاده از دستور return مقداری را بر می گرداند که نوع آن در هنگام تعریف تابع مشخص شده است.
در مثال بالا مقدار متغیر add به عنوان مقدار بازگشتی برگردانده می شود.
هنگامی که فراخوانی تابعی را به متغیری اختصاص می دهیم، مقدار بازگشتی تابع درون آن متغیر دخیره می شود.
جلسه آموزش توابع ++C نیز به پایان رسید.
در جلسه بعد انواع تابع در ++C را معرفی خواهیم کرد. با ما همراه باشید.
محمد حسین
عالیی حرف نداره
Zahra
فوق العاده عالی⚘