توابع

آموزش کامل توابع در C++ (به زبان کاملا ساده)

folderتوابع
comments4 دیدگاه
اساطیر زبان

در این آموزش همه چیز در رابطه با توابع را خواهید آموخت مانند انواع توابع و نحوه استفاده از آن ها به همراه مثال.

در برنامه نویسی تابع به یک سری کد خاص اشاره می کند که معمولا در بالای سایر کد ها نوشته می شود و در برنامه با صدا زدن اسم تابع به آن رجوع می شود.

 


سی پلاس پلاس

توی این پک فوق العاده، سی پلاس پلاس رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با سی پلاس پلاس به عمق فهم برنامه نویسی شیرجه بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

 


برنامه نویسی شبکه معماری کامپیوتر هوش مصنوعی و تجاری

توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار! 


 

بسته به اینکه توابع توسط برنامه نویس نوشته شده باشند یا از قبل موجود باشند، به دو دسته تقسیم می شوند:

۱- توابع کتابخانه ای

۲- توابع نوشته شده توسط کاربر

توابع کتابخانه ای

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

مثال ۱: توابع کتابخانه ای

  1. #include <iostream>
  2. #include <cmath>
  3. using namespace std;
  4. int main()
  5. {
  6. double number, squareRoot;
  7. cout << “Enter a number: “;
  8. cin >> number;
  9. // sqrt() is a library function to calculate square root
  10. squareRoot = sqrt(number);
  11. cout << “Square root of ” << number << ” = ” << squareRoot;
  12. return 0;
  13. }

خروجی

Enter a number: 26

Square root of 26 = 5.09902

در مثال بالا تابع sqrt() جذر عدد را حساب می کند.

برای استفاده از توابع ریاضی مانند sqrt() باید کتابخانه آن را به برنامه اضافه کنیم. در کد بالا با دستور #include <cmath> کتابخانه به برنامه اضافه شده است.

با اضافه کردن کتابخانه cmath می توانید از همه ی توابع موجود در آن استفاده کنید بدون اینکه احتیاج باشد آن ها را پیاده سازی کنید.

هر برنامه C++ حداقل یک تابع دارد. تابع اصلی برنامه ها main() است. بدون وجود آن برنامه اجرا نخواهد شد.

توابع تعریف شده توسط کاربر

C++ این امکان را به برنامه نویس می دهد که خودش تابع تعریف کند.

تابع تعریف شده توسط برنامه نویس مجموعه ای از کد هاست که دستور خاصی را انجام می دهند. تابع باید یک نام داشته باشد.

هنگامی که تابع در هر بخشی از برنامه فراخوانی شود، تمام کدهای بدنه تابع اجرا می شوند.

توابع تعریف شده توسط کاربر چگونه در C++ کار می کنند؟

C:\Users\Mr\Desktop\function.jpg

ساختار بالا را در نظر بگیرید.

وقتی برنامه در حال اجراست، سیستم تابع main() را صدا می زند و کد ها از آن جا شروع به اجرا شدن می کنند.

هنگامی که کنترل برنامه به

function_name()

در

main()

برسد، به تابع می رود و کد های درون

function_name()

اجرا می شوند.

سپس کنترل برنامه به () main برمی گردد و کدهای ادامه ی ()  function_name  را اجرا می کند.

مثال ۲ : تابع تعریف شده توسط برنامه نویس

در برنامه زیر دو عدد با هم جمع می شوند که این کار در تابع add() انجام می شود و نتیجه در main نمایش داده می شود.

  1. #include <iostream>
  2. using namespace std;
  3. // Function prototype (declaration)
  4. int add(int, int);
  5. int main()
  6. {
  7. int num1, num2, sum;
  8. cout<<“Enters two numbers to add: “;
  9. cin >> num1 >> num2;
  10. // Function call
  11. sum = add(num1, num2);
  12. cout << “Sum = ” << sum;
  13. return 0;
  14. }
  15. // Function definition
  16. int add(int a, int b)
  17. {
  18. int add;
  19. add = a + b;
  20. // Return statement
  21. return add;
  22. }

خروجی

Enters two integers: 8

Sum = 4

امضای تابع ( اعلان)

اگر تابع تعریف شده توسط برنامه نویس بعد از تابع main() تعریف شود، کامپایلر خطا می گیرد به این دلیل که کامپایلر از تابع تعریف شده توسط کاربر ، نوع آرگومان انتقال داده شده به تابع و نوع بازگشتی آن آگاه نیست.

در C++ ، امضای تابع بدون body یا بدنه است که وظیفه ی معرفی تابع به کامپایلر را دارد. امضای تابع در مثال فوق برابر است با:

int add(int, int);

می توانید ببینید که هیچ گونه عملکردی در امضای تابع وجود ندارد. فقط نوع بازگشتی و نوع آرگومان های ورودی وجود دارد. همچنین می توانید امضای تابع را به شکل زیر اعلام کنید، اما نوشتن آرگومان ها الزام نیست.

int add(int a, int b);

نکته: اگر تابع قبل از main() تعریف شود احتیاجی به نوشتن امضای تابع نیست.

فراخوانی تابع

برای اجرای کد های بدنه ی تابع، تابع تعریف شده توسط کاربر باید فراخوانی شود (called).

در برنامه بالا

add(num1 , num2) داخل main()

تابع را فراخوانی می کند.

تابع عدد ذخیره شده در add را بازگشت می دهد.

تعریف تابع

تعریف تابع در برنامه بالا به شکل زیر است:

// Function definition

int add(int a,int b)

{

int add;

add = a + b;

return add;

}

هنگامی که تابع فراخوانی می شود، کنترل به اولین دستور بدنه تابع منتقل می شود.

سپس، دستورات دیگر در بدنه تابع به صورت پیوسته اجرا می شوند.

وقتی همه کد ها در تعریف تابع اجرا شدند، کنترل به ادامه برنامه برمی گردد.

ارسال آرگومان به تابع

در برنامه نویسی، آرگومان (پارامتر) به داده هایی اشاره دارد که در هنگام فراخوانی به تابع ارسال می شوند.

در مثال بالا، دو متغیر، num1 و num2 به تابع ارسال می شوند. این آرگومان ها، آرگومان واقعی نامیده می شوند.

مقدار num1 و num2 به ترتیب در متغیر های a و b ذخیره می شوند. این آرگومان ها a و b آرگومان های رسمی نامیده می شوند.

در شکل زیر نشان داده شده است:

C:\Users\Mr\Desktop\passing-arguments-cpp.jpg

نکته های آرگومان ارسالی

  • تعداد آرگومان های رسمی و واقعی باید یکسان باشد. (Exception: Overloading Function)
  • نوع آرگومان واقعی اول باید با نوع آرگومان رسمی اول یکسان باشد. به طور مشابه، نوع آرگومان واقعی دوم باید با نوع آرگومان رسمی دوم مطابقت داشته باشد و به همین ترتیب.
  • شما می توانید تابعی بدون هیچ آرگومان ارسالی بنویسید. تعداد آرگومان های ارسالی به تابع بستگی به این دارد که برنامه نویس چکار می خواهد بکند.
  • می توانید مقادیر پیش فرض به آرگومان بدهید. این آرگومان ها به عنوان آرگومان پیش فرض شناخته می شوند.
  • در برنامه فوق هر دو آرگومان از نوع int (صحیح) هستند. اما الزامی نیست هر دو آرگومان از یک نوع باشند.

عبارت بازگشت

یک تابع می تواند یک مقدار را به برنامه فراخواننده با استفاده از statement return بازگرداند.

در برنامه بالا، مقدار add از تابع تعریف شده توسط کاربر با استفاده از عبارت زیر به برنامه باز می گردد:

return add;

شکل زیر نحوه کار عبارت بازگشت را نشان می دهد.

C:\Users\Mr\Desktop\return-value-cpp_0.jpg

در برنامه بالا، مقدار add داخل تابع تعریف شده توسط کاربر به تابع فراخوانی بازگشته است. سپس مقدار آن در sum ذخیره می شود.

توجه داشته باشید که متغیر بازگشتی، یعنی add، از نوع integer (صحیح) است و sum نیز از همان نوع است.

همچنین، توجه کنید که نوع return یک تابع در ابتدای آن

int add (int a int b)

تعریف شده است.

int قبل از

add (int a، int b)

به این معنی است که تابع باید یک مقدار int را برگرداند.

اگر تابع هیچ مقداری بازگشت ندهد، پس باید از void استفاده کرد.

تفاوت پک های حرفه ای ما با آموزشهای رایگان: بطور خلاصه از زمین تا آسمان! 1-پکها، جدیدترین نسخه نرم افزارها را آموزش می دهند با قابلیت های بسیار بیشتر. 2-پکها توسط متخصص آن نرم افزار، به صورت کاملا پروژه محور و با حل چالش هایی که در مسیر کار عملی و حرفه ای با آن روبرو می شوید تهیه شده اند و بعد از استفاده، کاملا برای بازار کار آماده اید! 3- متد این پکها کاملا کار شده و تا ماهها، در ذهن تان ماندگارند و یادگیری بسیار سریعتر و کاملتری خواهید داشت. آموزشهای رایگان فقط دستورات نرم افزارها را (آنهم ناقص) بیان می کنند و تازه برای ورود به بازار باید ماهها تجربه عملی هم کسب کنید !!

turned_in,

چرب زبان

با این اپلیکیشن ساده، هر زبانی رو فقط با 5 دقیقه در روز، توی 80 روز مثل بلبل حرف بزن! بهترین متد روز، تقویت حافظه، آموزش تصویری. یادگیری زبان کلید یادگیری هر مهارتی در قرن 21 !


حتما بخوانید!

4 دیدگاه. ارسال دیدگاه جدید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

این فیلد را پر کنید
این فیلد را پر کنید
لطفاً یک نشانی ایمیل معتبر بنویسید.

فهرست