(C++) زیر برنامه ها: رویه ها و توابع - 2


یک تابع یک برنامه فرعی است که نتیجه ای (عدد، رشته کاراکتر و غیره) را برمی گرداند

تصور کنید که محصولی را از یک فروشگاه اینترنتی سفارش داده اید. از نقطه نظر برنامه نویسی، شما زیربرنامه خاصی را فراخوانی کرده اید، و برخلاف یک رویه، این زیربرنامه باید یک نتیجه را برگرداند - محصولی را که سفارش داده اید تحویل دهید. این زیر روال ها توابع نامیده می شوند.
یک تابع دقیقاً به همان روشی قالب بندی می شود که یک رویه انجام می شود. تنهاتفاوت با یک رویه وجود یک عملگر ویژهreturn است، پس از آن مقداری که باید به برنامه اصلی برگردانده شود نوشته شده است.

تابعی که میانگین حسابی دو عدد صحیح را برمی گرداند به شکل زیر است: میانگین شناور (int a, int b) { میانگین شناور = (a + b) / 2.; بازگشت اوت؛ } باید بدانیم که چگونه این تابع را در برنامه اصلی فراخوانی کنیم:
شما نباید یک تابع را به همان روشی که یک رویه را فراخوانی می کنید: میانگین (10, 5); مقدار بازگشتی توسط تابع از بین خواهد رفت. گویی اجناس فروشگاه اینترنتی به کسی داده نشده بلکه دور ریخته شده است. بعید است که مشتری آن را دوست داشته باشد.

صحیح تر است که نتیجه را در یک متغیر ذخیره کنید (یا آن را روی صفحه چاپ کنید): a = میانگین (10، 5)؛ cout << میانگین (10، 5);

اغلب برنامه نویسان از توابع بولی استفاده می کنند که مقادیر بولی را درست یا نادرست (درستیا نادرست) برمی گرداند
چنین توابعی برای   برخی از ویژگی ها را بررسی کنید.
دو مثال از نوشتن یک تابع منطقی را در نظر بگیرید که یک عدد را برای یکنواختی بررسی می کند <بدن>
1)  روش بهتر:
نتیجه بیان
n % 2 == 0
درست (درست) یا نادرست (نادرست) خواهد بود
نیازی به نوشتن عبارت شرطی نیست!
2) این کار را نکنید!
شما می توانید آن را به این صورت بنویسید، اما به هر حال بهتر است ضبط طولانی تری انجام ندهید
<پیش> bool isEven(int n) { بازگشت (n % 2 == 0); } <پیش> bool isEven(int n) { اگر (n % 2 == 0) بازگشت درست؛ دیگر بازگشت نادرست; }

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