خروجی مستقیم و بازگشتی تابع (مبانی برنامه نویسی)
سلام خدمت همه ی دوستان و علاقمندان zero to hero
تو این مقاله قصد داریم مفهوم خروجی مستقیم و خروجی بازگشتی تابع رو آموزش بدیم. طبق معمول این سری مقالات، برای آموزش این مفهوم از مثال “میز چوبی و نجار” استفاده می کنیم. مثالی که تو مقاله “مفهوم تابع” داشتیم رو به یاد بیارید. تو این مثال برای تحویل میز چوبی آماده شده به شما، دو راه وجود داره. اول این که نجار میز رو از شاگرد چهارم دریافت کنه و به شما تحویل بده، و راه دوم هم اینه که شاگرد چهارم مستقیما میز آماده شده رو به شما تحویل بده.
تو برنامه نویسی هم دقیقا موقعیت های مشابه این مثال وجود داره. یعنی یک تابع هم می تونه خروجی رو مستقیما به کاربر نشون بده و هم می تونه خروجی رو به تابع فراخوانی کننده برگردونه. برای مثال برنامه ی نوشته شده در مقاله ی “نحوه نوشتن توابع” رو در نظر بگیرید. این برنامه از یک تابع استفاده می کنه تا حاصل ضرب دو عدد رو محاسبه کنه. تابع ضرب، خروجی خودش رو به تابع اصلی (main) برگشت میده، و تابع اصلی این خروجی رو به کابر نشون میده. در حالی که تابع ضرب می تونه این خروجی رو مستقیما به کاربر نشون بده. اگر این تغییرات رو در برنامه ایجاد کنیم، برنامه ما به این صورت خواهد بود:
#include<iostream> using namespace std; void zarb(int a, int b){ int c; c = a * b; cout << c << endl; } int main(){ int x; int y; cin >> x; cin >> y; zarb(x,y); return 0; }
دقت کنید که بعد از انجام این تغییرات نیازی به استفاده از متغیر z نداشتیم و اون رو حذف کردیم. برای فراخوانی تابع ضرب فقط اسمش رو نوشتیم و ورودی هاش رو بهش دادیم. و این که تابع ضرب نباید مقداری رو به تابع اصلی برگردونه، بنابراین نوع بازگشتی تابع رو به void تغییر دادیم.
برای حل این مثال می تونیم از هر دو روش استفاده کنیم. اما در برنامه نویسی گاهی پیش میاد که باید فقط از یکی از این دو حالت خروجی استفاده کنیم و تشخیص این که تو هر موقعیت باید از کدوم حالت استفاده کرد، کار ساده ای نیست. بنابراین این مفهوم رو معرفی کردیم تا بتونیم در موقعیت های مختلف تصمیم های درستی در این زمینه بگیریم.
منتظر مقاله های بعدی مبانی برنامه نویسی و الگوریتم ها باشید.
قهرمان دنیای خودت باش!
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.