در حالت کلی تعریف تابع به شکل زیر هست:
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
که بر اساس این تعریف چهار حالت بوجود میاد:
1- تابع پارامتر ورودی نداره و خروجی هم نداره
2- تابع هم پارامتر ورودی داره اما فقط یه خروجی میتونه داشته باشه
3-تابع یک خروجی داره اما هیچ پارامتر ورودی ای نداره
4-تابع خروجی نداره اما یک پارامتر ورودی داره
حالا اینکه بفهمیم تابع قراره کدوم یک از حالات باشه هم به برنامه بستگی داره .
خب حالا بر مبنای هر کدوم از این حالات یه مثال میزنم .
1-برنامه ای بنویسید که با فراخوانی تابع print پیغام hello,welcome رو به کاربر نشون بده .
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
2- برنامه ای بنویسید که عددی را گرفته به تابع بدهد اگر عدد زوج بودپیغامی مبنی برزوج بودن و اگر فرد بود پیغامی مبنی بر فرد بودن را چاپ کند.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
نکته 1 : حتما باید توابع در همه 4 حالت prototype داشته باشند. یعنی چی ؟ یعنی قبل تابع main() یه الگویی از تابع رو تعریف کنیم تا زمانی که کامپایلر به این خط رسید بفهمه ما جلوتر تابعی با اون مشخصات داریم . نوشتن این قسمت هم خیلی کار سختی نیست فقط باید خط اول توابع که شامل نوع خروجی و نام تابع و انواع پارامترها هست رو کپی بگیری وبیاری تو این قسمت قرار بدی . البته بهتر هست که تو قسمت پارامترهاش فقط نوع رو قرار بدی .
نکته2: ما در دو حالت مقدار رو به تابع ارسال میکنیم
1- call by value:
2-call by refrence
البته نمیدونم اینا رو به شما گفتن یا نه . اگر گفتن و شما هم درک کردید که هیچ اگر نه که بگید تا بیشتر توضیح بدم .
نکته 3 : وقتی یه مقداری رو به یه تابعی ارسال میکنیم این مقدار نامش تو خط اول میتونه تغییر کنه یا نکنه. مثلا تو مثال بالا وقتی متغیر با نام num رو فرستادم به تابع میتونستم تو خط اول تابع اسمش رو بذارم هر چیزی غیر از num .
3- برنامه ای بنویسید که داخل تابعی دو عدد را گرفته و جمع حاصل را به برنامه اصلی برگرداند.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
4-بر نامه ای بنویسید که عددی را از کاربر گرفته به تابعی ارسال کند تا به تعداد آن برای شما * را چاپ کند.
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
من تا اونجایی که در توانم بود تلاش کردم توابع رو با مثال های خیلی ساده توضیح بدم . امیدوارم که براتون مفید واقع بشه .
اگر سوالی بود مطرح کنید.
موفق باشید.