برنامه نویسی

  • شروع کننده موضوع
  • #21

zabolian

کاربر نیمه‌حرفه‌ای
ارسال‌ها
235
امتیاز
25
نام مرکز سمپاد
دبیرستان شهید اژه ای اصفهان
شهر
اصفهان
سال فارغ التحصیلی
1390
مدال المپیاد
۳ روز پیش ( ۲۴ اسفند ۸۸) مدال طلای المپیاد کامپیوتر گرفتم
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی نرم افزار
پاسخ : برنامه نویسی

الگوریتم شروع برنامه نویسی: :D

۱. شروع ( اراده کنید! )
۲. برید تو sgu عضو بشید. تو قسمتregister

۳. برید سوال ۱۰۰ رو حل کنید ( راحتترین سوال ممکنه، میگه دو تا عدد بخونید، جمعشون رو چاپ کنید ) واسه فرستادن جواب باید برید تو قسمت submit و واسه دیدن نتیجه ( اینکه درست حل کردید یا نه ) باید برید تو قسمت status online اینجا جلوی اسمتون نوشته که جوابتون درست بوده یا نه. میتونید روی اسمتون کلیک کنید تا نتایج submit های قبلتون رو ببینید

۴. یه سوال دیگه رو انتخاب کنید و حلش کنید. ( مثلا همون سوالایی که شمارشون رو تو چند تا پست قبل گفتم ). مثلا فرض کنید سوال ۱۲۷ رو میخواید حل کنید، اول میرید متن سوال رو میخونید، اگه منظورش رو نفهمیدید، مییان اینجا سوال میکنید، من در جواب بهتون خواهم گفت که منظور سوال اینه:
سوال ۱۲۷ میگه که یه عدد
k
بهت میدیم و یه عدد
N
و بعدش
N
تا عدد ۴ رقمی بهت میدیم که هیچ دوتایی یکسان نیست و رقم اول هیچ کودوم صفر یا ۸ نیست. حالا میخوایم اینا رو تو یه دفتر تلفن بنویسم به طوری که دو صفحه اول دفتر تلفن خالی باشه ( ما از صفحه سوم شروع به نوشتن کنیم ) و شماره ها به ترتیب کوچکتر به بزرگتر باشه و توی هیچ صفحه ای بیشتر از
k
شماره تلفن نباشه و تمام شماره تلفن هایی که توی یک صفحه اند رقم اولشون یکسان باشه. حالا شما کمترین تعداد صفحه ای که این دفتر تلفن نیاز داره رو تو خروجی چاپ کن!

۵. تا زمانی که تمام سوالات sgu رو حل نکردید این عمل را تکرار کنید : ( یه سوال انتخاب کنید و حلش کنید! :D )
۶. پایان

البته ببخشید که الگوریتمم استاندارد بیان نشد، حال نداشتم درستش کنم!

نکته: واسه انتخاب سوال راحت، یه راه اینه که هرکی هر سوالی حل کرد اینجا بگه، که بقیه بفهمند اون سوال رو میتونند حل کنند! ( یعنی ببینید دوستانتون چه سوالایی حل کردند ) یه راه دیگه اینه: توی سایت sgu جلوی اسم هر سوال، تعداد افرادی که اون سوال رو حل کردند رو نوشته، معمولا سوالایی که تعداد افرادی که حلش کردند بیشتره، راحتتره!

الان همتون برید سوال ۱۲۷ رو حل کنید، وقتی حل کردید، اینجا خبر بدید که ماها هم خوشحال بشیم. :D
 

eyekay

کاربر فوق‌حرفه‌ای
ارسال‌ها
797
امتیاز
495
نام مرکز سمپاد
شهید قدوسی قم،علامه حلی تهران
شهر
قم،تهران
مدال المپیاد
مدال نقره ی المپیاد ریاضی
دانشگاه
صنعتی شریف
رشته دانشگاه
نرم افزار
پاسخ : برنامه نویسی

ببخشید
وقتی می خوام طول یه آرایه رو به صورت ورودی از کاربر بگیرم بعد عناصر آرایه رو،چی کار کنم؟
اینطوری کردم ارور داد


int n;
cin>>n;
int a[n]; g
اون g رو برای این زدم که جهت حروف انگلیسی صحیح بشه وگرنه کاربردی نداره :D
 

M.M.Z

کاربر حرفه‌ای
ارسال‌ها
458
امتیاز
241
نام مرکز سمپاد
علامه حلی کرمان
شهر
کرمان
مدال المپیاد
المپیاد کامپیوتر(نقره سال90) :( damn it
دانشگاه
همین با هنر از سرمم زی
رشته دانشگاه
sleeping engineering
پاسخ : برنامه نویسی

من برنامه هامو تو محیط turbo c++ می نویسم.
اگه بخوام برناممو submit کنم چه محیطی رو انتخاب کنم؟
لطفا سریع خیلی گیرم.
 
  • شروع کننده موضوع
  • #24

zabolian

کاربر نیمه‌حرفه‌ای
ارسال‌ها
235
امتیاز
25
نام مرکز سمپاد
دبیرستان شهید اژه ای اصفهان
شهر
اصفهان
سال فارغ التحصیلی
1390
مدال المپیاد
۳ روز پیش ( ۲۴ اسفند ۸۸) مدال طلای المپیاد کامپیوتر گرفتم
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی نرم افزار
پاسخ : برنامه نویسی

به نقل از حامد مهدوی :
ببخشید
وقتی می خوام طول یه آرایه رو به صورت ورودی از کاربر بگیرم بعد عناصر آرایه رو،چی کار کنم؟
اینطوری کردم ارور داد


int n;
cin>>n;
int a[n]; g
اون g رو برای این زدم که جهت حروف انگلیسی صحیح بشه وگرنه کاربردی نداره :D

کلا این کار کار غیر استانداردیه! یعنی شما حق ندارید سایز یه آرایه رو برابر یه متغییر بزارید ( البته بعضی از کامپایلر های غیر استاندارد اشکال نمیگیرند، ولی نباید این کار رو بکنی، چون اکثر کامپایلر ها ازت اشکال میگیرند )
بهترین کار اینه که بدونی حداکثر مقدار n چقدره ( مثلا ۱۰۰۰ ) و سایز آرایه رو برابر همون حداکثر بزاری!
( البته با استفاده از مفاهیم حافظه پویا و چیزایی مثل vector میشه سایز آرایه رو متغییر فرض کرد، ولی خیلی زوده که شما این چیزا رو یاد بگیرید و البته فکر نکنم لازمتون بشه! )

به نقل از M.M.Z :
من برنامه هامو تو محیط turbo c++ می نویسم.
اگه بخوام برناممو submit کنم چه محیطی رو انتخاب کنم؟
لطفا سریع خیلی گیرم.

کامپایلر استاندار واسه C++ که توی سایتا هم ازش استفاده میکنند ( مثلا هم sgu و هم usaco ) اسمش MinGW است که من هرچی به خودم فشار آوردم دیدم حداقل این موقع شب مخم نمیشکه که طریقه نصب و استفاده ازش رو بهتون یاد بدم ( آخه برای استفاده باید کار با cmd رو هم بهتون یاد بدم، نصبش هم یه کم توضیحات داره ( میرفتیم توی properties توی mycomputer بعد میرفتیم یه جاهای عجیب قریب که من اگه الان ویندوز داشتم، یادم مییوفتاد، ولی چون الان لینوکس دارم و کلا روی لپ‌تاپم ویندوز نیست، اسم اون جاهای عجیب قریب هم تو ذهنم نیست که بهتون بگم ) خلاصه الان فقط لینک دانلودش رو بهتون میدوم :
http://www.tdragon.net/recentgcc
دیگه امیدوارم بقیش رو احسان بهتون بگه ( چون من امشب که کاری از دستم بر نمییاد و فردا هم احتمالا نمییام توی اینترنت )

ولی کلا حدس میزنم کامپایلر بورلند بیشتر شبیه این mingw باشه! ( البته بازم تو یه جاهایی با هم فرق دارند )
 
  • شروع کننده موضوع
  • #25

zabolian

کاربر نیمه‌حرفه‌ای
ارسال‌ها
235
امتیاز
25
نام مرکز سمپاد
دبیرستان شهید اژه ای اصفهان
شهر
اصفهان
سال فارغ التحصیلی
1390
مدال المپیاد
۳ روز پیش ( ۲۴ اسفند ۸۸) مدال طلای المپیاد کامپیوتر گرفتم
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی نرم افزار
پاسخ : برنامه نویسی

راستی، این یه IDE است مثل همون بورلند و اینا، تنها فرقش اینه که این استاندارده! میتونید از این استفاده کنید، استفاده کردن از این خیلی خیلی آسون تر از اونییه که من گفتم ( البته خودم تاحالا ازش استفاده نکردم :D )

این لینک دانلودش:
http://www.codeblocks.org/downloads/5
 

SeMeKh

کاربر فعال
ارسال‌ها
28
امتیاز
2
نام مرکز سمپاد
علامه حلی
شهر
تهران
مدال المپیاد
من و المپیاد؟
پاسخ : برنامه نویسی

البته فكر نكنم خيلي به استاندارد بودن ربط داشته باشه (بنده خدا Borland هم استاندارده) در واقع قضيه اينه كه از شما انتظار مي‌ره برنامه‌تون با ++g كامپايل بشه.
Code::Blocks رو من هم تاييد مي‌كنم. خيلي IDE خوبيه (به نظر من بهترين گزينه براي كد زدن تو ويندوزه) چون هم خيلي قدرتمنده، هم كار كردن باهاش آسونه. خلاصه اينكه هر كي برده راضي بوده. فقط حواستون باشه كه موقع دانلود، فايل 19MB رو انتخاب كنيد.

راستي، اگه خيلي عجله داريد، كامپايلر Dev هم ++g هستش. ولي به هيچ وجه (دقت كنيد: به هيچ وجه) توصيه نمي‌شه. فقط در حد 5 دقيقه.
 
  • شروع کننده موضوع
  • #27

zabolian

کاربر نیمه‌حرفه‌ای
ارسال‌ها
235
امتیاز
25
نام مرکز سمپاد
دبیرستان شهید اژه ای اصفهان
شهر
اصفهان
سال فارغ التحصیلی
1390
مدال المپیاد
۳ روز پیش ( ۲۴ اسفند ۸۸) مدال طلای المپیاد کامپیوتر گرفتم
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی نرم افزار
پاسخ : برنامه نویسی

به نقل از مهران :
البته فكر نكنم خيلي به استاندارد بودن ربط داشته باشه (بنده خدا Borland هم استاندارده) در واقع قضيه اينه كه از شما انتظار مي‌ره برنامه‌تون با ++g كامپايل بشه.

این مفهوم استاندارد رو خودم الان از خودم ابداع کردم :D و منظورم این بود که واسه استفاده توی این سایتا و ... استانداره! ( و البته من یادمه یه بار با یه چیزی یه برنامه نوشتم که توش میشد طول یه آرایه رو متغییر گرفت ( یادم نیست چی بود ) ولی این کار یه کار غیر استاندارده دیگه! )
 

SeMeKh

کاربر فعال
ارسال‌ها
28
امتیاز
2
نام مرکز سمپاد
علامه حلی
شهر
تهران
مدال المپیاد
من و المپیاد؟
پاسخ : برنامه نویسی

به نقل از محمد زابلیان :
این مفهوم استاندارد رو خودم الان از خودم ابداع کردم :D و منظورم این بود که واسه استفاده توی این سایتا و ... استانداره! ( و البته من یادمه یه بار با یه چیزی یه برنامه نوشتم که توش میشد طول یه آرایه رو متغییر گرفت ( یادم نیست چی بود ) ولی این کار یه کار غیر استاندارده دیگه! )
اين چيزي كه گفتي يه قابليت اضافه بر قابليت استاندارده، متضادش كه نيست. به هر حال، فكر كنم بهتره بحث رو بيخود پيچيده نكنيم تا گيج‌كننده نشه.
 
  • شروع کننده موضوع
  • #29

zabolian

کاربر نیمه‌حرفه‌ای
ارسال‌ها
235
امتیاز
25
نام مرکز سمپاد
دبیرستان شهید اژه ای اصفهان
شهر
اصفهان
سال فارغ التحصیلی
1390
مدال المپیاد
۳ روز پیش ( ۲۴ اسفند ۸۸) مدال طلای المپیاد کامپیوتر گرفتم
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی نرم افزار
پاسخ : برنامه نویسی

به نقل از مهران :
اين چيزي كه گفتي يه قابليت اضافه بر قابليت استاندارده، متضادش كه نيست. به هر حال، فكر كنم بهتره بحث رو بيخود پيچيده نكنيم تا گيج‌كننده نشه.

خوب اینجا جای سوال و جوابه دیگه :D مگه قانون نیست که طول آرایه عدد ثابت باشه؟ پس متغییر بودنش تضاده دیگه . به هر حال تهش بازی با کلماته و واسه کسی نون و آب نمیشه! (;
 

M.M.Z

کاربر حرفه‌ای
ارسال‌ها
458
امتیاز
241
نام مرکز سمپاد
علامه حلی کرمان
شهر
کرمان
مدال المپیاد
المپیاد کامپیوتر(نقره سال90) :( damn it
دانشگاه
همین با هنر از سرمم زی
رشته دانشگاه
sleeping engineering
پاسخ : برنامه نویسی

خیلی ممنون از راهنمایی هاتون.
پس من فعلا تو sgu کد می زنم گیر کردم میام ازتون می پرسم.
بازم ممنون
 

eyekay

کاربر فوق‌حرفه‌ای
ارسال‌ها
797
امتیاز
495
نام مرکز سمپاد
شهید قدوسی قم،علامه حلی تهران
شهر
قم،تهران
مدال المپیاد
مدال نقره ی المپیاد ریاضی
دانشگاه
صنعتی شریف
رشته دانشگاه
نرم افزار
پاسخ : برنامه نویسی

خب ،حل شد ،
یه سوال دیگه
می خوام یه آرایه رو روش دو تا عمل توی یه برنامه انجام بدم که تو دو تا عمل عناصر آرایه جابه جا میشن ،باید چی کار کنم که آرایه رو توی یه حافظه نگه دارم دو جا ازش استفاده کنم؟
 
  • شروع کننده موضوع
  • #32

zabolian

کاربر نیمه‌حرفه‌ای
ارسال‌ها
235
امتیاز
25
نام مرکز سمپاد
دبیرستان شهید اژه ای اصفهان
شهر
اصفهان
سال فارغ التحصیلی
1390
مدال المپیاد
۳ روز پیش ( ۲۴ اسفند ۸۸) مدال طلای المپیاد کامپیوتر گرفتم
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی نرم افزار
پاسخ : برنامه نویسی

به نقل از حامد مهدوی :
خب ،حل شد ،
یه سوال دیگه
می خوام یه آرایه رو روش دو تا عمل توی یه برنامه انجام بدم که تو دو تا عمل عناصر آرایه جابه جا میشن ،باید چی کار کنم که آرایه رو توی یه حافظه نگه دارم دو جا ازش استفاده کنم؟

:-\ منظور سوالت رو درست نفهمیدم. تو ۱۰۰ جا ازش استفاده کن، اشکالی پیش مییاد؟ ( اگه میتونی اون تیکه کدت رو بزار تا ببینم چی کار کردی و چی کار میخوای بکنی)
ولی اگه منظورت اینه که تو دو تا تابع ازش استفاده کنی، باید آرایه رو تو قسمت global تعریف کنی، یعنی آرایه رو بیرون قسمت main ( قبل از تعریف همه توابع ) تعریف کنی!
اگه منظورت اینه که تو عمل اول مقادیر توی آرایه عوض میشند ولی میخوای تو عمل دوم از همون مقدار قدیمی ها استفاده کنی، راهش اینه که دو تا آرایه بگیری!
اگه منظورت چیز دیگه ای بود، بگو!
 

eyekay

کاربر فوق‌حرفه‌ای
ارسال‌ها
797
امتیاز
495
نام مرکز سمپاد
شهید قدوسی قم،علامه حلی تهران
شهر
قم،تهران
مدال المپیاد
مدال نقره ی المپیاد ریاضی
دانشگاه
صنعتی شریف
رشته دانشگاه
نرم افزار
پاسخ : برنامه نویسی

نه ،دقیقا منظورم همین بود،ممنون ،
 
  • شروع کننده موضوع
  • #34

zabolian

کاربر نیمه‌حرفه‌ای
ارسال‌ها
235
امتیاز
25
نام مرکز سمپاد
دبیرستان شهید اژه ای اصفهان
شهر
اصفهان
سال فارغ التحصیلی
1390
مدال المپیاد
۳ روز پیش ( ۲۴ اسفند ۸۸) مدال طلای المپیاد کامپیوتر گرفتم
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی نرم افزار
پاسخ : برنامه نویسی

خواهش میکنم!
از sgu چه خبر؟ چقدر سوال حل کردید؟
 

eyekay

کاربر فوق‌حرفه‌ای
ارسال‌ها
797
امتیاز
495
نام مرکز سمپاد
شهید قدوسی قم،علامه حلی تهران
شهر
قم،تهران
مدال المپیاد
مدال نقره ی المپیاد ریاضی
دانشگاه
صنعتی شریف
رشته دانشگاه
نرم افزار
پاسخ : برنامه نویسی

من اون سوال شازو زدم قسمت اولشو(اونجا که مینیموم میانگین میده)


ولی تو سوال بالا که گفتی صفحه هر چی فکر کردم معنی صفحه ی اول و دومو نفهمیدم :D
 
  • شروع کننده موضوع
  • #36

zabolian

کاربر نیمه‌حرفه‌ای
ارسال‌ها
235
امتیاز
25
نام مرکز سمپاد
دبیرستان شهید اژه ای اصفهان
شهر
اصفهان
سال فارغ التحصیلی
1390
مدال المپیاد
۳ روز پیش ( ۲۴ اسفند ۸۸) مدال طلای المپیاد کامپیوتر گرفتم
دانشگاه
صنعتی شریف
رشته دانشگاه
مهندسی نرم افزار
پاسخ : برنامه نویسی

من شاز رو نخوندم و خبر ندارم چه سوالی بوده :D ولی سوال بالا منظورت چیه؟ اگه منظورت سوال ۱۲۷ sgu است، معنی خاصی نداره، یعنی تو بعد اینکه جواب رو به دست آوردی ۲ تا به جواب اضافه کن بعد جواب رو چاپ کن! ( کلا تو این سوالا سرکاری زیاد داره )
 

eyekay

کاربر فوق‌حرفه‌ای
ارسال‌ها
797
امتیاز
495
نام مرکز سمپاد
شهید قدوسی قم،علامه حلی تهران
شهر
قم،تهران
مدال المپیاد
مدال نقره ی المپیاد ریاضی
دانشگاه
صنعتی شریف
رشته دانشگاه
نرم افزار
پاسخ : برنامه نویسی

#include<conio.h>
#include<iostream.h>
void bubble(int [],int);
int main()
{
int i,sum;
const int k = 4;
int a[k];

for(i=0;i<5;i++)
cin>>a;

bubble(a,k);

for(i=0;i<5;i++)
sum=sum + (5-i)*a;
cout<<sum;
getch();
return 0;
}
این چه اشکالی داره؟فقط اینجا زاست به چپ شد راست به چپ بخونید
برای قسمت اول سوال شاز

که اون ثابتو با توجه با k ای که قراره بدن جابه جا می کنیم

مشکل تو اون bubble سرته ولی نمی فهمم چیه؟


ویرایش:آخ حواسم نبود
باید یه متغیر دیگم تعریف می کردم بعد sum/5 رو برابر اون قرار می دادم
اینطوری میانگین زمان پایان چاپ نمیشه
جمعشون چاپ میشه

ولی مشکل تو اون بابله نمی فهمم چرا



Error: Error: Unresolved external 'bubble(int*,int)' referenced from F:\BC5\BIN\NONAME00.OBJ
اینو میده
 

SeMeKh

کاربر فعال
ارسال‌ها
28
امتیاز
2
نام مرکز سمپاد
علامه حلی
شهر
تهران
مدال المپیاد
من و المپیاد؟
پاسخ : برنامه نویسی

خب، این داره می‌گه که تابع bubble رو تعریف نکردی.
 

eyekay

کاربر فوق‌حرفه‌ای
ارسال‌ها
797
امتیاز
495
نام مرکز سمپاد
شهید قدوسی قم،علامه حلی تهران
شهر
قم،تهران
مدال المپیاد
مدال نقره ی المپیاد ریاضی
دانشگاه
صنعتی شریف
رشته دانشگاه
نرم افزار
پاسخ : برنامه نویسی

من آماتورم
زیر دیپلم حرف بزن :D
 

SeMeKh

کاربر فعال
ارسال‌ها
28
امتیاز
2
نام مرکز سمپاد
علامه حلی
شهر
تهران
مدال المپیاد
من و المپیاد؟
پاسخ : برنامه نویسی

من هم هنوز دیپلم نگرفتم :D
در واقع باید تابع‌ت رو اینطوری تعریف کنی.
کد:
void bubble(int [],int)
{
	//Your BubbleSort code goes here
}

یا اینکه، به جای اینکه خودت تابع تعریف کنی، به جای bubble(a, k) بنویسی:
کد:
sort(a, a+k);

راستی، حواست رو جمع کن، که اول برنامه، algortihm رو include کنی.

پ.ن. کامپایلرت چیه؟
 
بالا