کلاس برنامه نویسی نخبگان جوان ( اموزش )
با سلام خدمت دوستان عزیز و گلم :
در اینجا ما قصد داریم کلاسی رو تشکیل بدیم به عنوان کلاس برنامه نویسی و توی اون روی الگوریتم نویسیه برنامه ها کار کنیم
یعنی یک برنامه رو چطور حل کنیم حالا هر برنامه ای باشه
چون قراره از صفر شروع کنیم این کلاس رو اول بزارید بگم الگوریتم چیه ؟؟؟
الگوریتم به روش حل یک مسئله گفته می شود به عنوان مثال :
شما قصد دارید این عبارت رو حساب کنید » 9 - (a / b )
خوب این مسئله چطور حل میشود :؟؟؟!!! [tafakor]
شما ابتدا باید a رو به b تقسیم کنیم و بعد نتیجه اونها رو از 9 کم کنید [tashvigh] این روش حل یا الگوریتم حل این مسئله بود
ولی اگه شما بیاید اول 9 رو مثلا از b کم کنید بعد عمل تقسیم رو انجام بدید و امثال این اشتباه هست روش حلتون ,پس الگوریتمتون اشتباه هست
ولی گاهی اوقات شما می تونید بیاین مخرج مشترک بگیرید و بعد این رو حل کنید [tafakor] این هم که همون شد ؟؟؟!!!
بله درسته همون میشه ولی ما توی درس برنامه نویسی به کوتاه ترین روش حل یا کوتاه ترین الگوریتم نمره می دیم
حالا مفصلا بعدا صحبت می کنیم دربارش نگران نباشید [cheshmak]
شرط کلاس ما اینه که یک طرفه نباشه یعنی من فقط بگم و توضیح بدم
من خیلی کوچیکتر از اونی هستم که بخوام به شما دوستان اموزش بدم [nadidan]ولی در حد توانم سعی می کنم کمکتون کنم
درسته ابتدا ما فقط توضیحات با مثال های ساده حل می کنیم ولی کم کم که بریم جلو به الگوریتم های قشنگی میرسیم
و یک نکته تا یادم نرفته اینکه دوست دارم انتقاد هاتون رو درباره ی درس بدونم تا روند درسمون روز به روز بهتر بشه
یکم بریم جلوتر سوال مطرح میشه و همگی روی روش حل سوال کار می کنیم نه فقط یک نفر کار کنه
ولی قبل از هر چیز باید یکم زبون برنامه نویسی c یا ++c رو کار کنیم فقط کافیه چند تا دستوراتی که من میگم رو یاد بگیرید با بقیه چیزهاش بعدا اشنا میشیم
ولی کسانی که علاقمند هستند و می خوان از صفر مطلق شروع کنن اگر یک کتاب برنامه نویسی ++c رو یک نگاه بندازن خیلی خوب میشه
اگه نکته ای سوالی چیزی هست در خدمتم وگر نه تا اخر شب اولین اموزش رو در همین جا قرار می دم
شاید اخر این اموزش ها یک مقاله ای درست کردیم از این تاپیک و به عنوان کلاس اموزش برنامه نویسی سایت نخبگان که یک گروه روش کار کردن ارائش بدیم با نام سایت نخبگان[golrooz]
پاسخ : کلاس برنامه نویسی سایت نخبگان جوان
با سلام به خدمت دوستان [golrooz]
البته من برنامه نویسی به زبان جاوا خوندم و تا حدی قوی هستم ولی ++C زیاد کار نمی کنم . حال اقا الیاس خودشون بعدا زحمت ترجمه برنامه رو از جاوا به ++C رو می کشند [golrooz]
public static void main(string [] args(
}
;Scanner in=new Scanner(system.in(
;int i
;int day
;int sum
;double average
for (int day=0;i++;i>30(
}
;sum+=int day
;(average=(sum/30
;(if (average<10
; (system.out.println(paeez
;else
; (system.out.println( no paeez
اما به زبان فارسی:
ما در اینجا سه متغیر به نام های day/sum/average داریم . که به ترتیب میانگین / جمع/روز را محاسبه می کنند .
ما در اینجا قصد داریم تا دمای روزهای مختلف رو جمع کنیم و سپس با استفاده از متغیر میانگین ، بفهمیم که ایا در میانگین دمای این ماه ، دما بالاتر از 10 بوده یا نه ؟
برای این کار از حلقهforاستفاده می کنیم . با استفاده از int day=0 به برنامه می فهمانیم که از روز اول باید از 0 شروع کنی . بعد i++یعنی دمای روزها را با هم جمع کن و در اخر سر دستوری داریم که کمتر از عدد 30 یعنی عدد ماه باشه .
در دستور sum+=int day ما به برنامه می خوایم بگوییم که دمای تمام روزها رو محاسبه کن .
در دستور پایینی یعنی میانگین هم می خوایم تا عدد جمع شده دما را تقسیم بر 30 کن و در داخل متغیر میانگین بریز .
حال می خوایم که اگه دمای میانگیا اگه از 10 بالاتر بود بنویسه پاییز اگه نه بنویسه پاییز نیست .
دستورات برنامه هم ماله جاواست .
با تشکر.
پاسخ : کلاس برنامه نویسی سایت نخبگان جوان
با سلام و عرض ادب خدمت شما و ممنون برای ایده های خوب تون برای برگزاری کلاس.
ممنون برای آموزش.
فقط کاش یه آمار بگیرید که بیشتر بچه ها آموزش پایه میخوان یا پیشرفته که اون را سریع تر پیش ببرید.
البته این نظر منه و اجباری دراون نیست مسلما!!
راجع به پاسخ ناپلئون بناپارت عزیز، اگه اجازه بدن چند مورد را بگم:
in اینجا چه استفاده ای شده ازش؟ فکر میکنم برنامهنیازی به ورودی نداشته.
یه موضوع دیگه اینکه سوال گفته میانگین ِ حداکثر دما و حداقل دما را جدا بدست بیاریم (برای 30روز) بعد ببینیم اگه اختلافش مساوی 10 بود پاییز هست درغیراین صورت "پاییز نیست"
اما شما یه میانگین را (نمیدونم حداقله یا حداکثر) گرفتید و گفتید اگه از 10کمتر بود ؛پاییزه اگه نه "نیست".
یه مسئله دیگه هم هست
اونم اینکه day را گرفتید خود شمارنده تون ،نه داده های مختلف.یعنی شما میانگین از29 ,...,0,1,2 گرفتید.
خیلی عذر میخوام برای جسارتم[khejalat].
پاسخ : کلاس برنامه نویسی سایت نخبگان جوان
کاملا حق با شماست ولی من در اطلاعیه اعلام کردم که اعلام امادگی کنن دوستان به خاطر همین بود
ولی اشکال نداره چون این اموزشمون سر جاشه و قبلا هم فکر اونجاش شده
انشا ا.... از چند روز دیگه کلاس های پیشرفتمون شروع میشه
یعنی دو کلاس کنار هم
حرف های شما درسته درباره ی جواب درسته
ولی این اموزش بر این اساس پایه ریزی شده که دوستان جواب رو بدن
درست بود که خوبه نبود هم سعی می کنیم مشکلاتش رو بر طرف کنیم
این نیست که فرد بخاطر اینکه شاید جوابش نادرست باشه جواب رو مطرح نکنه
مهم مشارکته که باعث پیشرفت میشه
از جواباتون نترسید اونها رو مطرح کنید از سوالاتون نترسید بپرسید ( البته اگه دوست دارید یاد بگیرید )
و یک نکته ی دیگه اینکه لطفا اگه میشه نظرات , پیشنهادات , انتقادات درباره ی کلاس رو توی اطلاعیه که در امضای من هست مطرح کنید
پاسخ : کلاس برنامه نویسی سایت نخبگان جوان
اینم از جواب بنده فقط شرمنده اگه اکابری نوشتم [nishkhand]
من با ویژوال ماکروسافت 2008 نوشتم
#include <iostream>
using std ::cin;
using std ::cout;
using std ::endl;
int main ()
{
int ziad;
int kam;
int miangin;
cout << " Enter max & min temperature ";
cin >> ziad >> kam;
miangin = (ziad+kam)/2;
if (miangin == 10)
cout << " Mahe payeez ast " << endl;
if (miangin != 10)
cout << " Mahe payeez nist " << endl;
return 0;
}
پاسخ : کلاس برنامه نویسی سایت نخبگان جوان
با سلام مجدد خدمت دوستان گلم »:
من فقط ایراد های این جواب هارو میگیرم بعد انشا ا... فردا شب با هم حلش می کنیم
ممنونم از جواباتون
در باره ی سوال فرمانده ی عزیز خودمون دوست گلم استیو جواب رو دادن و ایراد ها رو گرفتن
یه نکته هست که فکر می کنم فرمانده سوال رو دقیق نخواندن
دوستان گلم برای حل سوال برنامه نویسی باید سوال رو چند بار بخوانید هر چی پیچیده تر باشه سوال رو باید بیشتر بخوانید
توی متن سوال دقت کنید
در جواب دوست گلم جوان ایرانی عزیز هم باید بگم که
سوال » ما توی کشورمون دو نوع درجه ی هوا داریم یکی حداقل و یکی هم حداکثر میانگین هر کدام از این دو نوع رو توی یک یک ماه بدست بیارید اگر تفاوت میانگین حداقل با حداگثر 10 درجه بود بگه ماه پاییز است وگر نه بگه ماه پاییز نیست
توجه کنید گفتیم میانگین هر کدام از حداقل و حداکثر رو توی یک ماه بدست بیارید
و اگر تفاوت میانگین های حداقل با حداکثر مساوبی 10 بود بگه پاییز
[golrooz]فهمیدن خود سوال 50 درصد راه حل هست [golrooz]
پاسخ : کلاس برنامه نویسی سایت نخبگان جوان ( اموزش )
;int day hot,day cool,i,sub,sum
;double = temperatore,ave_1,ave_2
;Scanner in=new Scanner ( System.in(
system.out.println("enter temperator);
;temperator=nextint()
if(temperator <0(;
;system.out.println(day cool)
else
;system.out.println(day hot)
for (int day cool;day cool++; day cool<0)
}
;sum+=day cool
;ave_1=(sum/daycool)
}
;for ( int day hot;day hot++; dayhot>0)
;sum+=day hot
;ave_2=(sum/day hot)
}
if(ave_1-ave_2=10)
system.out.println(paeez(
else
system.out.println( no paeez(
}
پاسخ سوال جلسه ی قبل و رفع اشکال جواب ها
با سلام خدمت دوستان گلم :
انشا ا... چند ساعت دیگه جلسه ی دوم کلاس رو شروع می کنیم ولی قبلش باید روی سوال جلسه ی قبل کار کنیم
سوالی که متوجه شدنش نصف حل مسئله هست
ما توی اون سوال گفتیم که
سوال » ما توی کشورمون دو نوع درجه ی هوا داریم یکی حداقل و یکی هم حداکثرمیانگین هر کدام از این دو نوع رو توی یک ماه بدست بیارید اگر تفاوت میانگین حداقل با حداگثر 10 درجه بود بگه ماه پاییز است وگر نه بگه ماه پاییز نیست
خوب اگه توجه کنید پر نکته هست این صورت سوال
نکته ی 1 » ما دو نوع ورودی داریم یکی حداقل و دیگری حداکثر
نکته ی 2 » میانگین هر کدام از این دو نوع را باید در یک ماه حساب کرد
نکته ی 3 » اگر میانگین حداقل با حداکثر 10 درجه بود بگه پاییزه
پس ما باید حداقل دما و حداکثر دمای هر روز رو از ورودی بگیریم و 30 روز رو با هم جمع کنیم و میانگین هر هر کدام از حداقل و حداکثر رو حساب کنیم
ما باید 30 روز دماهاش رو از ورودی بگیریم و با هم جمع کنیم این 30 روز رو پس :
ما متغییر هامون رو اینطور تعریف میکنیم
sum hot برای جمع دما های حداقل 30 روز
sum cool برای جمع دماهای حداکثر 30 روز
hot برای دمای حداقل هر روز
cool برای دمای حداکثر هر روز
avg hot برای میانگین دمای حداقل 30 روز
avg cool برای میانگین دمای حداکثر 30 روز
خوب مراحل رو اینطور مینویسیم
1 ) بخوان دمای حداقل روز 1
- بخوان دمای حداکثر روز 1
- دمای حداقل روز 1 را با sum hot جمع کن
- دمای حداکثر روز 1 را با sum cool حمع کن
2 ) بخوان دمای حداقل روز 2
- بخوان دمای حداکثر روز 2
- دمای حداقل روز 2 را با sum hot جمع کن
- دمای حداکثر روز 2 را با sum cool حمع کن
3 ) بخوان دمای حداقل روز 3
- بخوان دمای حداکثر روز 3
- دمای حداقل روز 3 را با sum hot جمع کن
- دمای حداکثر روز 3 را با sum cool حمع کن
4 ) بخوان دمای حداقل روز 4
- بخوان دمای حداکثر روز 4
- دمای حداقل روز 4 را با sum hot جمع کن
- دمای حداکثر روز 4 را با sum cool حمع کن
.
.
.
.
.
.
29 ) بخوان دمای حداقل روز 29
- بخوان دمای حداکثر روز 29
- دمای حداقل روز 29 را با sum hot جمع کن
- دمای حداکثر روز 29 را با sum cool حمع کن
30 )بخوان دمای حداقل روز 30
- بخوان دمای حداکثر روز 30
- دمای حداقل روز 30 را با sum hot جمع کن
- دمای حداکثر روز 30 را با sum cool حمع کن
خوب در این مراحل اطلاعات رو بدست اوردیم
حال مرحله ی بعد
31 ) تقسیم مجموع دمای حداقل 30 روز یا sum hot بر 30 برای بدست اوردن میانگین ( avg hot= sum hot / 30 )
- تقسیم مجموع دمای حداکثر 30 روز یا sum cool بر 30 برای بدست اوردن میانگین حداکثر 30 روز (avg cool = sum cool / 30
32 ) تفاضل میانگین حداقل با میانگین حداکثر 30 روز یا ( avg = avg cool - avg hot )
33 ) اگر تفاضل این دو برابر با 10 بود ( avg == 10 )
بگه پاییز
وگر نه بگه
پاییز نیست
پایان
خوب اگه توجه کنید ما مرحله ی 1 تا 30 رو هی تکرار می کردیم
پس می تونیم اینجا یک حلقه ی 30 تایی تشکیل بدیم که 30 بار این کار ها رو انجام بده
این یک روش حل
حال روش حل دوم
مرحله ی 1 :
ما باید یک حلقه که 30 بار تکرار بشه داشته باشیم برای 30 روزمون
مرحله ی 2 :
باید در هر بار تکرار حلقه دمای حداقل و حداکثر اون روز رو از ورودی بگیریم
مرحله ی 3 :
در هر بار اجرای حلقه باید حداقل اون روز رو با حداقل تمام روز های قبلی جمع کنیم و برای حداکثر ها هم همینطور
مرحله ی 4 :
هنگامی که حمع حداقل های 30 روز و حداکثر های 30 روز رو حساب کردیم باید میانگین ار هر کدام بگیریم
مرحله ی 5 :
اگر تفاضل میانگین حداقل با حداکثر برابر 10 شد بگه پاییز و گر نه هم بگه پاییز نیست
امیدوارم توضیحات سوال رو کامل داده باشم
اگه سوالی هست من در خدمتم
اگه جایی از این سوال رو متوجه نشدید بگید تا توضیح بدم
و یک نکته ی دیگه اینکه انشا ا... از چند جلسه ی دیگه من جواب ها رو با کد می نویسم مثل دوستان
دوستانی هم که می خوان با شکل کد بنویسن لطفا در تگ php که بالا قرار داده شده بنویسن که به هم نخوره مثل کد های دوستان
حال بریسم سر اشکالات جواب های دوستان
کد PHP:
using std ::cin;
using std ::cout;
using std ::endl;
int main ()
{
int ziad;
int kam;
int miangin;
cout << " Enter max & min temperature ";
cin >> ziad >> kam;
miangin = (ziad+kam)/2;
if (miangin == 10)
cout << " Mahe payeez ast " << endl;
if (miangin != 10)
cout << " Mahe payeez nist " << endl;
return 0;
}
جواب اول فرمانده ی عزیزمون رو که دادیم حالا میرسیم به جواب دوست عزیز جوان ایرانی عزیز
اولین مشکل اینکه برای یک روز دما رو گرفتن ( دمای حداقل و حداکثر رو )
دومین مشکل اینکه امدن میانگین دمای کم و زیاد رو گرفتن درصورتی که باید دمای کم و زیاد رو از هم میانگین هاشون رو کم میکردن
و مرحله ی اخرشون درسته درباره ی شرطشون
پس مشکل اساسی سر همون if هستش
در جواب دوم ژنرال عزیز خودمون باید بگم »:
کد PHP:
int day hot,day cool,i,sub,sum
;double = temperatore,ave_1,ave_2
;Scanner in=new Scanner ( System.in(
system.out.println("enter temperator);
;temperator=nextint()
if(temperator <0(;
;system.out.println(day cool)
else
;system.out.println(day hot)
for (int day cool;day cool++; day cool<0)
}
;sum+=day cool
;ave_1=(sum/daycool)
}
;for ( int day hot;day hot++; dayhot>0)
;sum+=day hot
;ave_2=(sum/day hot)
}
if(ave_1-ave_2=10)
system.out.println(paeez(
else
system.out.println( no paeez(
}
ما نگفتیم که بیاد تشخیص بده کدوم یکی حداقل دما هست و کدوم یکی حداکثر دما که شما امدید شرط رو اجرا کردید برای فهمیدن این مسئله
ما امدیم گفتیم هر روز 2 تا ورودی بگیره برای حداقل دما و حداکثر دما
مشکل دوم :»
شما در حلقه هاتون راستش متوجه نمیشم قراره چه کاری انجام بدید
وقتی حلقه داره تکرار میشه هیچ عدد تازه ای وارد حلقه نمیشه که بخواد با sum تون جمع بشه
و یک نکته ی دیگه اینکه شما باید شمارشگر حلقتون رو i در نظر بگیرید نه روز هاتون و i تون باید از 1 باشه تا 30 که دمای روز هارو بگیره
این حلقه ای که شما نوشتید فکر نکنم درست عمل کنه
و نکته ی دیگه ای هم هست درباره ی 2 حلقتون اینکه شما می تونید این دو رو ادغام کنید به این روش
کد PHP:
for ( int i = 0 ; i < 30 ; i++){
sum1+=daycool
sum2+=dayhot
}
یکم کد هایی که نوشتید اشکال داره اگه فکر می کنید درسته یا همینجا یا طی پیام خصوصی به من توضیح بدید شاید واقعا کدتون درست باشه
دوستان عزیز اگه میشه توی این چند جلسه ی اول فقط فارسی بنوسیند بصورت مرحله مرحله
اگه درباره جواب هاتون توضیح بیشتری می خواین بگید تا توضیح بدم
منو ببخشید بخاطر اینکه اشکالاتون رو میگم چون من کوچیک همتونم [nadidan][golrooz]