تا %60 تخفیف خرید برای 4 نفر با صدور مدرک فقط تا
00 00 00
در توسینسو تدریس کنید

آموزش برنامه نویسی C قسمت 13 : توابع

سلام و وقت بخیر. در این جلسه درمورد توابع صحبت میکنیم. استفاده از توابع در برنامه نویسی بسیار رایج است. تقریبا در تمام برنامه های عملیاتی از توابع استفاده میشود. توابع در برنامه نویسی خاصیت ماژولار بودن را به برنامه اضافه میکنند. اگر قرار است برنامه ما 1000 خط باشد، مسلما این 1000 خط را یک تیکه در تابع main نمینویسیم.بلکه برنامه را به تعدای تابع کوچک کوچک خورد میکنیم .توابع باعث خوانا تر شدن و قابل فهم تر شدن برنامه میشوند. عیب یابی را آسان تر میکند و درصورت بروز مشکل در برنامه لازم نیست کل اون 1000 خط برنامه را از اول بنویسیم، فقط همان تابع مشکل دار رو دوباره بررسی میکنیم. قابلیت توسعه و نگهداری سیستم افزایش میابد. اگر قرار باشد سرویس جدیدی در برنامه اضافه شود، توابع لازم را نوشته و به برنامه اضافه میکنیم. جلوتر یاد خواهیم گرفت که توابع را در سورس کد های جدا در فایل های جدا نوشته و در برنامه اصلی آنها را include کنیم. به مثال ساده زیر توجه کنید.

آموزش برنامه نویسی C  قسمت 13 : توابع

آموزش برنامه نویسی C  قسمت 13 : توابع

یک تابع برای جمع 2 عدد نوشتیم. تابع را قبل از تابع main تعریف کردیم ( میتونستیم بعد از main هم بنویسیم که بعدا میگم ) کلمه int نشان میدهد که خروجی تابع ما int است. اگر برنامه خروجی ندارد از کلمه void استفاده میکنیم. (مثلا قراره فقط یه چیزی رو بخونه و نشون بده، قرار نیست از خروجیش استفاده بشه). سپس نام تابع که add-nums است. در داخل پرانتز نوع آرگومان های ورودی به تابع را تعریف میکنیم. هر چی قراره وارد تابع بشه از اینجا وارد میشه. سپس بدنه تابع را مینویسیم. کلمه return هم نشان میدهد خروجی تابع چیست. در اینجا گفته متغیر sum را به عنوان خروجی پاس بده بیرون. تابع main هم تا خط 14 چیز جدیدی نداره. در خط 14 یک متغیر را برابر تابع قرار دادیم. یعنی خروجی تابع را بریز تو اون متغیر. دو متغیر A و B را هم به عنوان ورودی تابع وارد کردیم. در آخر هم متغیر result را چاپ کردیم. این یک مثال خیلی ساده بود. حالا بیاید همینو با حالت void بودن تابع add-sum بنویسیم.

آموزش برنامه نویسی C  قسمت 13 : توابع

در تابع main فقط تابع add_nums را صدا کردیم. البته میشد که a و b رو در main از کاربر بگیره و همراه با صدا کردن تابع، به عنوان آرگومان واسش ارسال کنه.

یکی از مفاهیم مهم توابع، مفهوم توابع بازگشتی است. در یک تابع بازگشتی، تابع مرتبا خود را صدا میزند. مث یه حلقه بهش نگاه کنید. برای کارهای محاسباتی تکراری از توابع بازگشتی استفاده میکنیم. بهترین مثال برای تابع بازگشتی، محاسبه فاکتوریل یک عدد با تابع بازگشتی است. به کد زیر توجه کنید. قبلش بگم که اگه خواستید تابع رو بعد از main تعریف کنید باید قبل از main عنوانشو نوشته باشید. مث مثال زیر.

#include <stdio.h>
long int Factorial ( int n );
int main()
{
    int n ;
    printf( "Enter a positive integer : " );
    scanf( "%d" , &n );
    printf( "Factorial of %d = %ld \n", n, Factorial (n) );
    return 0 ;
}
long int Factorial ( int n )
{
    if ( n >= 1 )
        return n*Factorial ( n-1 ) ;
    else
        return 1 ;
}

آموزش برنامه نویسی C  قسمت 13 : توابع

نکته ای که در توابع بازگشتی باید در نظر داشته باشید این است که برای خاتمه حلقه باید یک شرط قید کنید. در اینجا اون if این کار را میکند. کل مفهوم بازگشتی تو خط 14 هستش.

حال برای تمرین همین برنامه رو طوری تغییر بدین که عدد هایی که تو هم ضرب میشن رو هم نشون بده، اول خودتون حل کنید بعدش جوابو نگاه کنید.

#include <stdio.h>
long int Factorial ( int n );
int main()
{
    int n ;
    printf( "Enter a positive integer : " );
    scanf( "%d" , &n );
    printf( "= %ld \n",  Factorial (n) );
    return 0 ;
}
long int Factorial ( int n )
{
    if ( n > 1 )
    {
        printf( "%d * " , n );
        return n*Factorial ( n-1 ) ;
     }
    if ( n == 1 )
     {
        printf ("%d " , n ) ;
        return n*Factorial ( n-1 ) ;
      }
    else
        return 1 ;
}

آموزش برنامه نویسی C  قسمت 13 : توابع

پایان قسمت سیزدهم

نویسنده : سید محمد باقر موسوی

منبع : جزیره برنامه نویسی وب سایت توسینسو

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی است

نظر شما
برای ارسال نظر باید وارد شوید.
2 نظر
افرادی که این مطلب را خواندند مطالب زیر را هم خوانده اند