دوست عزیز اینجا باید اشکالاتتون رو بپرسید نه اینکه تکلیف شبتون رو بدید بنویسند.
ضمن تشکر از زحمتی که میکشید، اینطوری به صورت غیرمستقیم ظلم بزرگی در حق این دوستان که یه روزی اسم "مهندس کامپیوتر" رو یدک خواهند کشید ولی از نوشتن دو خط برنامه عاجز هستند، میکنید. اجازه بدید خودشون اقلاً کامپایلرش رو نصب کنند و دو خط از برنامه رو بنویسند، بعد اگر مشکل داشتند برنامهشون رو اینجا بذارند.
بیش از حد باهاتون موافقم من میگم آدم نباید از کمک کردن دریغ کنه ولی بحثه حاضر و آماده بودن یه چیز دیگس
بنده خدا DEV C++ رو یه زبان میدونه و فرق بین کامپایلر و زبان برنامه نویسی رو نمیدونن متاسفم
سلام به همه دوستان خوب برنامه نویس
کمک
استادمون درباره توابع درس داد ولی من هیچی نفهمیدم
چرا از تابع استفاده میکنیم و چرا در برنامه فرا خوانی میشه
ببینید شما اگه اشتباه نکنم ترم های اول هستین و مطمئننا تازه کار تو برنامه نویسی و بذارین یه امیدواری همین ابتدا بهتون بدم که این حالتتون کاملا طبیعیه و به مرور زمان همه چیز براتون بدیهی میشه به شرط اینکه به فیلدتون علاقه داشته باشین
و اما بحث توابع:
شما یاد گرفتید که برنامتون رو به صورت مونوتیک یا یکپارچه بنویسید. یعنی هر کاری که میخواین انجام بدین دستورات مطابق با اون رو پشت سر هم می نویسید و اجرا میشن حالا این خوبه؟بده؟ اگه بده چه اشکالایی باعث بد بودنشون شده؟؟؟
1-خوانائیه کدتون میاد پایین->یعنی چی؟ ممکنه شما یه برنامه رو کلی تلاش کردین نوشتین و قراره فردا برین تحویل استاد بدین و توضیحاتشم ارائه بدین. اما فردا در حین تحویل هی به خودتون میگید من اینو چرا اینجا نوشتم؟ این کد چرا اینجا بود؟ این 4 5 خط چی کار می کردن؟
2-اشکال یابی کدتون کار حضرت فیل میشه -> ممکنه کد رو بنویسید و هیچ مشکل کامپایلی هم نداشته باشه اما وقتی برنامه رو اجرا می کنید بهتون خطای منطقی بده یعنی جوابی رو چاپ کنه که شما انتظارشو نداری و حالا پیدا کردن محل باگ طاقت فرسا میشه
و مشکلاتی از این قبیل
حالا بحث توابع میاد وسط تا ما برناممون رو به سمت Modularity پیش ببریم. همون فرضیات بالا رو در نظر بگیرید. با مثال توضیح میدم: میخوایم یه برنامه بنویسیم نمره تعدادی دانشجو رو دریافت کنه معدلشون رو حساب کنه و بعد معدل رو چاپ کنه. حالا یه راه وجود داره که برنامه رو مثل سابق و یکپارچه بنویسید یا این کار رو با توابع انجام بدین
حالا چون ممکنه بحث پیچیده شه و شاید بحث اشاره گرها،آرایه ها و Call by Reference و اینجور موارد رو نخونده باشین ، فرض کنید ما نمره سه نفر رو دریافت می کنیم
من برنامه رو با این خطوط شروع میکنم
کد:
include<stdio.h>
include<conio.h>
void main()
{
int first,second,third;
cout<<"Enter First Mark:";
cin>>first;
cout<<"Enter Second Mark:";
cin>>second;
cout<<"Enter Third Mark:";
cin>>third;
}
حالا میخوام یه تابع بنویسم که معدل رو برام حساب کنه (دقت کن که من ورودی های first،second و third رو بهش میدم و خروجی معدل رو میگیرم) در ضمن تعریف تابه باید بیرون از main باشه چون یه تابع رو نمیشه تو یه تابع دیگه تعریف کرد بلکه فقط میشه صداش زد یا فراخونیش کرد
کد:
include<stdio.h>
include<conio.h>
float avg(int a,int b,int c)
{
int sum;
float result;
sum=a+b+c;
result=sum/3;
return result;
}
void main()
{
int first,second,third;
float ans;
cout<<"Enter First Mark:";
cin>>first;
cout<<"Enter Second Mark:";
cin>>second;
cout<<"Enter Third Mark:";
cin>>third;
ans=avg(first,second,third);
cout<<"The average is: "<<ans;
}
صد درصد متوجه شدی که لازم نیست پارامترهایی که به تابع میفرستیم با پارامترهایی که تو تعریف تابع آوردیم هم نام باشه اما الزاما باید هم نوع باشن
به وسیله کلمه کلیدی return ما میتونیم مقدار result که در واقع مقدار معدل رو داره برگردونیم توی یه متغیر به نام ans و اونو چاپ کنیم
خیلی توضیح دادم دیگه خسته شدم