PDA

View Full Version : مشکل در ایجاد یک برنامه ساده



amir_80
یک شنبه 01 مرداد 1391, 19:45 عصر
با سلام

دوستان من مدتی میشه که دارم ++c کار میکنم و الان در نوشتن یک برنامه مشکل پیدا کردم

از کامپایلر xcode شرکت اپل استفاده میکنم

int main()
{enum ashia{sang,kaghaz,gheychi};
ashia a,b;
cout<<"enter two ashia:";
cin>>a>>b;
if(a==sang)
{if(b==kaghaz)cout<<"sang maghlob kaghaz"; if(b==gheychi)cout<<"gheychi maghlob sang";
}
if(a==kaghaz)
{if(b==sang) cout<<"sang maghlob kaghaz"; if(b==gheychi)cout<<"kaghaz maghlob gheychi"; }
if(a==gheychi)
{if(b==sang) cout<<"gheychi maghlob sang"; if(b==kaghaz) cout<<"kaghaz maghlob gheychi"; }
else cout<<"error";
return 0;
}

این برنامه همون بازی سنگ کاغذ قیچی خودمونه

این رو وقتی تو xcode اجرا میکنم تو خط ۵ام ارور میده

خطاشم میگه
invalid operands to binary expression('istream'(aka
'basic _istream<char>') and ashia


حالا به نظرتون مشکلش چیه؟اصلا کلا یکی این enum رو واسه من توضیح میده؟کلا باهاش مشکل دارم؟

یه سوال دیگه به نظرتون با روزی ۲ ساعت کار کردن طث چند وقت میتونم این ++c رو یاد بگیرم؟

#target
یک شنبه 01 مرداد 1391, 20:39 عصر
خط سوم رو به int a ,b تغییر بدید درست میشه
enum شمارشی هست که نام هایی که داخل کروشه نوشتید به ترتیب دارای ارزش 0 و 1 و 2 ... میشوند . (البته میشه مقدار رو خودتون هم تعریف کنید )

در ضمن اضافه کنم اون else آخر هم جای مناسبی نیست !


یه سوال دیگه به نظرتون با روزی ۲ ساعت کار کردن طث چند وقت میتونم این ++c رو یاد بگیرم؟
بستگی به خودتون داره . با چند ماه تمرین میتونید اصول رو یاد بگیرید . بعد بیشتر آشنایی با کتابخانه هست که اگر کلیت رو بدونید اونا رو لازم نیست به اون صورت یاد بگیرید هر وقت نیاز شد به رفرنسشون مراجعه میکنی

amir_80
یک شنبه 01 مرداد 1391, 21:34 عصر
جالبه دیگه error نمیده ولی برنامه که اجرا میکنم زمانی که میخوام اشیا رو وارد کنم اولی مثلا سنگ (یا هر چیز دیگه ای) رو مینویسم دیگه تو برنامه هیچی نمیتونم بنویسم برنامه پس از مدتی خارج میشه

چرا؟یعنی چی؟

احساس میکنم پیشرفتم کنده
خیلی به برنامه نویسی علاقه دارم ولی خیلی پیشرفتم کنده؟اخه چرا؟
همیشه اوایل کار ایجوری اعصاب خرد کنه ؟

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


در ضمن اضافه کنم اون else آخر هم جای مناسبی نیست !

چرا؟باید کجا بزارم؟


اقا یه سوال دیگه؟به نظرتون کلاس شرکت کنم؟مفیده ؟با توحه به اینکه شهرستان هستم

من الان دارم از روی کتاب جعفر نژاد قمی با چگونه برنامه بنویسیم deitel &deitel کار میکنم با کتاب برنامه سازی پیشرفته احمد فراهی ماله پیام نوره میخونم
با این که همه میگن این دیتله خیلی کتاب خوبیه ولی من اصلا از روی اون متوجه نمیشم

#target
یک شنبه 01 مرداد 1391, 22:01 عصر
چرا؟یعنی چی؟
اون اسامی sang , kaghaz ..... فقط در سورس کدتان معنی داره و این مقادیر الان برابر sang = 0,kaghaz = 1,gheychi = 2
یعنی شما در ورودی باید مقادیر عددی بدی برای سنگ مقدار صفر کاغذ یک و قیچی دو

همیشه اوایل کار ایجوری اعصاب خرد کنه ؟
آره ی کم راه بیفتی درست میشه

در مورد جای اون else
اون else فقط به if(a==gheychi) مربوط میشه پس اگر مقدار a برابر قیچی نباشد اون خطا نمایش داده میشود . ( حالا اگر a سنگ یا کاغذ باشد باز هم کلمه خطا چاپ میشود . که طبق منطق برنامه نباید اتفاق بیفته ) . این شاید بهتر باشه ! (ی مقدار مرتب هم کردم )
if(a==sang)
{
if(b==kaghaz)
cout<<"sang maghlob kaghaz";
if(b==gheychi)
cout<<"gheychi maghlob sang";
}
else if(a==kaghaz)
{
if(b==sang)
cout<<"sang maghlob kaghaz";
if(b==gheychi)
cout<<"kaghaz maghlob gheychi";
}
else if(a==gheychi)
{
if(b==sang)
cout<<"gheychi maghlob sang";
if(b==kaghaz)
cout<<"kaghaz maghlob gheychi";
}
else cout<<"error";
نه . کلاس اینا فکر نکنم لازم باشه همون کتاب احمد فراهی رو دیدم خوبه . ساده گفته برا شروع بهترین به نظرم !!