گروه برنامه سازی کامپیوتر صفر و یک

#
با سلام خدمت شما بازديدكننده گرامي ، خوش آمدید به وبگاه صفر و یک . لطفا براي هرچه بهتر شدن مطالب اين وبگاه ، ما را از نظرات و پيشنهادات خود آگاه سازيد و ما را در بهتر شدن كيفيت مطالب ياري کنید.
تعداد کل کاربران وبگاه 19
اعضای انلاین وبگاه 1

وبگاه صفرویک را بایک کلیک محبوب کنید
با ثبت نام رایگان صاحب پنل اس ام اس با امکانات زیادی شوید


نام کاربری
رمز عبور

فراموشی رمز عبور؟

عضویت رایگان

نام کاربری
رمز عبور
تکرار رمز
ایمیل
کد تصویری

  1. مرکز آموزش علمی و کاربردی جامعه اسلامی کارگران واحد اصفهان "
  1. سامانه جامع آموزشی دانشگاه علمی کاربردی"
  1. اینجا همه چی در همه"
  1. خط کشی"
  1. ردیاب ارزان ماشین"
  1. جلو پنجره جک جی 5"

تبادل لینک هوشمند

برای تبادل لینک ابتدا ما را با عنوان بچه های برنامه سازی کامپیوتر-کاردانی و آدرس sephroyek.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





براي اطلاع از مطالب جدید وبگاه در خبرنامه عضو شويد تا جديدترين مطالب به ايميل شما ارسال شود



تعداد کل مطالب ارسالی 62
تعداد بازدید امروز از وبگاه 67
تعداد بازدید دیروز از وبگاه 3
ورودی گوگل امروز 7
ورودی گوگل دیروز 0
بازدید کل از وبگاه 16934

توابع در ++C
نویسنده: مدیر ساعت و تاریخ انتشار: 14:59|شنبه 19 ارديبهشت 1394 بازدید: 148 موضوع: برنامه ++C

Function | توابع در C++

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

وقتی خطوط برنامه ما زیاد می شود درک، پیگیری، خطایابی و دیگر اعمال بر روی برنامه دشوار خواهد شد. توابع ابزاری هستند که به ما در بهبود برنامه کمک می کنند و برنامه نویسی ساخت یافته را ارائه می دهند، بدین معنا که برنامه اصلی به قسمتهای منطقی و مستقل کوچکتری تقسیم می شود که توابع نام دارند .

برای بکارگیری توابع به سه جزء نیازمندیم: تعریف تابع، اعلان تابع، فراخوانی تابع

  • تعریف تابع :
آموزش تعریف تابع و توابع و پارامترهای و ورودی و نوع توابع در برنامه نویسی C++

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

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

در اولین قدم باید مشخص کنیم که این تابع چه خروجی را به ما می دهد ( در اصطلاح برنامه نویسی بر می گرداند ) و فقط به ذکر نوع خروجی بسنده می کنیم، یعنی اگر عدد صحیح برگرداند از int ، اگر کاراکتر برگرداند از char و به همین ترتیب برای دیگر انواع و اگر هیچ مقداری را برنگرداند از void استفاده می کنیم .

یک تابع باید دارای یک نام باشد تا در طول برنامه مورد استفاده قرار گیرد. هر نامی را می توان برای توابع انتخاب نمود که از قانون نامگذاری متغیرها تبعیت می کند، اما سعی کنید که از نامهایی مرتبط با عمل تابع استفاده نمایید .

همینطور باید ورودیهای تابع را نیز مشخص کنیم که در اصطلاح برنامه نویسی به این ورودیها، پارامترهای تابع گفته می شود. اگر تابع بیش از یک پارامتر داشته باشد باید آنها را با استفاده از کاما از یکدیگر جدا نماییم و اگر تابع پارامتری نداشت از کلمه void استفاده می کنیم. بخاطر داشته باشید که قبل از نام هر پارامتر باید نوع آنرا مشخص نماییم و بدانیم که کامپایلر هیچ متغیری بدون نوع را قبول نکرده و در صورت برخورد با این مورد از برنامه خطا می گیرد و در نتیجه برنامه را اجرا نخواهد کرد .

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

void sample ( int x, int y )  
{
    .
    .
    .
}
  • اعلان یا الگوی تابع :

در برنامه نویسی برای اینکه به کامپایلر وجود تابع یا توابعی را اطلاع دهیم باید آنرا اعلان کنیم که اینکار را قبل از تابع main و بعد از فایلهای سرآیند برنامه انجام خواهیم داد .

#include 
#include 

void sample ( int a, int b );  

int main()
{
    .
    .
    .
}

در اعلان (الگو) توابع باید نوع برگشتی، تمامی پارامترها بهمراه نوعشان و نام تابع را بیان نماییم. نام، نوع برگشتی و نوع پارامترها باید کاملا مطابق با موارد متناظر در تعریف تابع باشند، اما لازم نیست که نام پارامترها شبیه به نامهای تعریف تابع باشد .

  • فراخوانی تابع :

در نهایت باید در درون برنامه خود، تابع را صدا بزنیم که به اینکار فراخوانی توابع گفته می شود .

int main()
{
    sample (a, b);
}                              

در فراخوانی توابع باید نام تابع و نام پارامترها را بیان کنیم که در اینجا به نام پارامترها، آرگومانهای تابع گفته می شود و دیگر نباید نوع آرگومانها را ذکر کنیم. در مورد نوع برگشتی تابع دو حالت وجو دارد. اول اینکه اگر بدون نوع برگشتی باشد لازم نیست از void استفاده کنیم و دوم اینکه اگر تابع دارای نوع برگشتی باشد باید آنرا برابر با مقدار متغیر از همان نوع قرار دهیم تا مقدار برگشتی را در متغیر مذکور ریخته و در جای مناسب از آن استفاده نماییم که در آینده به این مورد می پردازیم .

در شکل زیر شمای کلی تابع در برنامه نویسی را می بینید :

توابع در C++

در کد زیر به بررسی یک مثال ساده از توابع می پردازیم :


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
#include 
#include 

void print(void);      // اعلان تابع

int main()
{
    print();             // فراخوانی تابع
    getch();
    return 0;
}

void print( void )       // تعریف تابع
{
    cout << "This is my first function!" ;
}

در بالای تابع main تابع را اعلان می کنیم طوری که نوع بازگشتی و پارامترها با نوعشان و نام تابع را ذکر می کنیم، سپس در خارج از تابع main تابع خود را تعریف کرده که برای اینکار هم باید تمامی انواع ورودی و خروجی بهمراه نامشان و همچنین نام تابع را بنویسیم و دستورات را در آن قرار دهیم و در نهایت در تابع main تابع خود را بدون ذکر انواع فراخوانی نماییم .

کد فوق تابعی را با نام print تعریف می کند که بدون خروجی و ورودی است که در بالای برنامه هم به همین ترتیب اعلان شده است و در فراخوانی آن، چون نوعی ندارد ما آنها را خالی می گذاریم .

کامپایلر اجرای برنامه را از تابع main شروع می کند و در خط بعدی به تابع print برمی خورد که فراخوانی شده است لذا در اینجا از تابع main خارج شده و وارد تابع print می شود. انواع ورودی و خروجی و نامشان را چک کرده و در صورت نبود خطا دستورات را انجام داده تا به انتهای تابع می رسد. در اینجا کامپایلر باز به تابع main برمیگردد و ادامه دستورات را اجرا می کند و در نهایت برنامه خاتمه میابد .

آموزش تعریف تابع و توابع و پارامترهای و ورودی و نوع توابع در برنامه نویسی C++ مثال) کدی به زبان C++ با استفاده از توابع بنویسید که 2 عدد را در درون تابع main دریافت کند و بعنوان آرگومان به تابعی بفرستد، تابع آنها را با هم جمع کند و نتیجه را به تابع main برگرداند و سپس نتیجه چاپ شود .


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
#include 
#include 

float sum(float, float);      // = float sum(float num1, float num2);

int main()
{
    float num1, num2 ,numSum;

    cout << "Enter first number :" ;
    cin >> num1;
    cout << "Enter second number :" ;
    cin >> num2;

    numSum = sum(num1, num2);             
    cout << numSum;

    getch();
    return 0;
}

float sum(float f1, float f2)       // float sum(float num1, float num2);
{
    float fSum = f1 + f2;
    return fSum;
}

Comment هایی را که در کد بالا می بینید به این معنی است که می شود اینگونه هم نوشت. همانطور که میبینید در تابع main دو عدد را دریافت می کنیم و در فراخوانی تابع آنها را بعنوان آرگومانهای تابع ذکر می کنیم. چون تابع sum مقداری از نوع float را برمی گرداند لازم است که تابع را برابر با همان مقدار برگشتی قرار دهیم تا حاصل جمع اعداد در numSum ذخیره کنیم . اولین comment به این معنی است که می شود در اعلان یک تابع اسم پارامترها را نوشت یا ننوشت اما ذکر انواع ضروری است و دومین comment به این معنی است که نام پارامترها در اعلان و در تعریف توابع هم می تواند یکسان باشد و هم نباشد، نکته مهم نوع و تعداد و ترتیب یکسان آنها می باشد .

در حالت کلی به دو روش می توان پارامترها را به توابع ارسال نمود :

  • ارسال از طریق مقدار Arguments passed by value
  • ارسال از طریق آدرس Arguments passed by reference

روش ارسال پارامترها به تابع از طریق آدرس را در فصول مربوط به اشاره گرها Pointers خواهیم آموخت، اما ارسال پارامترها به تابع از طریق مقدار همان است که در بالا گفته شد .

در روش ارسال از طریق مقدار، یک کپی از آن پارامتر در حافظه کامپیوتر قرار می گیرد و تغییرات برروی آن متغیر در تعریف تابع به هیچ عنوان در مقدار آن در خارج از تابع تاثیری نخواهد داشت اما در روش ارسال از طریق آدرس، تغییرات در متغیر در آدرس موجود کپی شده و تغییرات مربوط به پارامتر در خارج از تابع هم وابسته به تغییرات متغیر در درون تابع می باشد .


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
#include 
#include 

int sqr(int x);      // ارسال پارامتر از طریق مقدار

int main()
{
    int num = 10;

    cout << "square = " << sqr(num) << "and number = " << num;

    getch();
    return 0;
}

int sqr(int x)       // ارسال پارامتر از طریق مقدار
{
    x = x * x;
    return x;
}
square = 100 and number = 10

همان طور که در برنامه C++ بالا می بینیم پارانتر x از طریق مقدار به تابع sqr ارسال شده، در درون تابع مقدار پارامتر به توان 2 می رسد و به عدد 100 تغییر میابد اما مقدار num در تابع اصلی همان 10 است و تغییری نمی کند .

دقت بکنید که ما فراخوانی تابع خود را در درون تابع cout انجام داده ایم و در اینحالت نیازی به تعریف یک متغیر برای ذخیره مقدار برگشتی تابع فوق نیست .



نظرات شما عزیزان:

reyhaneh khakzad
ساعت15:29---24 ارديبهشت 1394
mamnoon
پاسخ:خواهش میکنم!ایشالله بهره کافی برده باشید


نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:





فاقد عکس توابع, تابع, برنامه نویسی, سی پلاس پلاس, خانواده زبان برنامه نویسی سی,