توابع

آموزش انواع توابع تعریف شده توسط کاربر در ++C

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

در این آموزش، شما روش های مختلف تعریف توابع در C++ را یاد خواهید گرفت.

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

 


سی پلاس پلاس

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


 

 


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

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


 

  • تابع بدون آرگومان ارسالی و بدون مقدار بازگشتی
  • تابع بدون آرگومان ارسالی اما با مقدار بازگشتی
  • تابع با آرگومان ارسالی اما بدون مقدار بازگشتی
  • تابع با آرگومان ارسالی و مقدار بازگشتی

در زیر ۴ نوع تابع تعریف شده اند.

مثال ۱: تابع بدون آرگومان ارسالی و بدون مقدار بازگشتی

  1. # include <iostream>
  2. using namespace std;
  3. void prime();
  4. int main()
  5. {
  6. // No argument is passed to prime()
  7. prime();
  8. return 0;
  9. }
  10. // Return type of function is void because value is not returned.
  11. void prime()
  12. {
  13. int num, i, flag = 0;
  14. cout << “Enter a positive integer enter to check: “;
  15. cin >> num;
  16. for(i = 2; i <= num/2; ++i)
  17. {
  18. if(num % i == 0)
  19. {
  20. flag = 1;
  21. break;
  22. }
  23. }
  24. if (flag == 1)
  25. {
  26. cout << num << ” is not a prime number.”;
  27. }
  28. else
  29. {
  30. cout << num << ” is a prime number.”;
  31. }
  32. }

در قطعه کد بالا تابع ()prime بدون هیچ آرگومانی در ()main صدا زده می شود.

()prime از کاربر می خواهد یک عدد مثبت وارد کند سپس بررسی می کند که آیا اول است یا نه.

نوع بازگشتی تابع void است، یعنی تابع مقدار بازگشتی ندارد.

مثال ۲ : تابع بدون آرگومان ارسالی اما با مقدار بازگشتی

  1. #include <iostream>
  2. using namespace std;
  3. int prime();
  4. int main()
  5. {
  6. int num, i, flag = 0;
  7. // No argument is passed to prime()
  8. num = prime();
  9. for (i = 2; i <= num/2; ++i)
  10. {
  11. if (num%i == 0)
  12. {
  13. flag = 1;
  14. break;
  15. }
  16. }
  17. if (flag == 1)
  18. {
  19. cout<<num<<” is not a prime number.”;
  20. }
  21. else
  22. {
  23. cout<<num<<” is a prime number.”;
  24. }
  25. return 0;
  26. }
  27. // Return type of function is int
  28. int prime()
  29. {
  30. int n;
  31. printf(“Enter a positive integer to check: “);
  32. cin >> n;
  33. return n;
  34. }

در برنامه بالا، تابع ()prime در ()main بدون آرگومان ارسالی صدا زده می شود.

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

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

مثال ۳ : تابع با آرگومان ارسالی اما بدون مقدار بازگشتی

  1. #include <iostream>
  2. using namespace std;
  3. void prime(int n);
  4. int main()
  5. {
  6. int num;
  7. cout << “Enter a positive integer to check: “;
  8. cin >> num;
  9. // Argument num is passed to the function prime()
  10. prime(num);
  11. return 0;
  12. }
  13. // There is no return value to calling function. Hence, return type of function is void. */
  14. void prime(int n)
  15. {
  16. int i, flag = 0;
  17. for (i = 2; i <= n/2; ++i)
  18. {
  19. if (n%i == 0)
  20. {
  21. flag = 1;
  22. break;
  23. }
  24. }
  25. if (flag == 1)
  26. {
  27. cout << n << ” is not a prime number.”;
  28. }
  29. else {
  30. cout << n << ” is a prime number.”;
  31. }
  32. }

در برنامه بالا، از کاربر خواسته شده عدد مثبتی وارد کند که در متغیر num ذخیره می شود.

سپس num به تابع ()prime ارسال می شود و در آن جا مشخص می شود که اول است یا نه. سپس نتیجه را نمایش می دهد.

از آنجا که نوع return در ()prime برابر با void است، تابع هیچ مقداری بازگشت نمی دهد.

مثال ۴ : تابع با آرگومان ارسالی و مقدار بازگشتی

  1. #include <iostream>
  2. using namespace std;
  3. int prime(int n);
  4. int main()
  5. {
  6. int num, flag = 0;
  7. cout << “Enter positive integer to check: “;
  8. cin >> num;
  9. // Argument num is passed to check() function
  10. flag = prime(num);
  11. if(flag == 1)
  12. cout << num << ” is not a prime number.”;
  13. else
  14. cout<< num << ” is a prime number.”;
  15. return 0;
  16. }
  17. /* This function returns integer value. */
  18. int prime(int n)
  19. {
  20. int i;
  21. for(i = 2; i <= n/2; ++i)
  22. {
  23. if(n % i == 0)
  24. return 1;
  25. }
  26. return 0;
  27. }

در برنامه فوق از کاربر خواسته می شود یک عدد صحیح مثبت وارد کند که در متغیر num ذخیره می شود.

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

از آنجا که نوع return در ()prime صحیح است، ۱ یا ۰ به ()main بازگردانده می شود. اگر num یک عدد اول باشد، ۱ باز می گردد. اگر نه، ۰ باز می گردد.

در تابع ()main مقدار بازگشتی ۱ یا ۰ در متغیر flag ذخیره می شود، و متن مربوطه بر روی صفحه چاپ می شود.

کدام روش بهتر است؟

هر چهار برنامه بالا یک خروجی مشابه ارائه می دهند و همه از لحاظ فنی درست هستند.

هیچ قاعده ای وجود ندارد که بگوید کدام روش بهتر است انتخاب شود.

روش خاص انتخاب شده بسته به وضعیت و چگونگی رفع مشکل است.

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

turned_in,

چرب زبان

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


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

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

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

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

فهرست