PDA

View Full Version : مشکل در نوشتن برنامه...



Sepehr M
چهارشنبه 07 دی 1390, 20:16 عصر
سلام دوستان راستش من چند روز پیش خواستم یه برنامه بنویسم تا یه سری جاهاشم پیش رفتم اما خب جابی نگرفتم...
برنامه ای که میخوام بنویسم اینه که اسم کشور رو بدی بعد برنامه نام پایتخت رو برات چاپ کنه به زبون C
یه نگاه به کدها بندازین و راهنمایی کنین ممنون میشم...چیز خیلی ساده ای هست اما خب من از پسش بر نیومدم کسی اینجا باشه که بتونه کمک کنه ممنون میشم!!!



#include <stdio.h>
#include <conio.h>
int main()
{
int a,b,Iran,Tehran,England,London,France,Paris;
printf("Enter The Country:%c");
scanf("%c",&a);
{
if (a=Iran)
b=Tehran;

if (a=England)
b=London;

if(a=France)
b=Paris;
}
printf("The Capital Of This Country Is:%c" ,b);
getche();
return 0;
}

storm_saeed
چهارشنبه 07 دی 1390, 20:51 عصر
شما وقتی می خواین اسم یک چیزی رو بدی باید متغیر رو char تعریف کنی
بهدشم اگه مثلا a == ایران بود بگو تهرانو چاپ کنه دیگه این کارا رو نمی خواد

Sepehr M
چهارشنبه 07 دی 1390, 23:22 عصر
سلام مرسی بابت پاسخ
یعنی من اینجا باید int رو بردارم جاش char بذارم؟
میشه یه خورده بیشتر توضییح بدید؟

quiet_programmer
پنج شنبه 08 دی 1390, 01:46 صبح
با سلام.

با روشی که تو داری پیش میری برای n تا اسم کشور باید n تا هم دستور مقایسه بنویسی. فرقی نمیکنه if باشه یا switch. (البته switch بهتره)

ولی خوب تو کتابخونه STL نوع داده ای به نام map داریم که معادل نوع Dictionary تو زبان C# و یا VB.NET هست. این نوع داده یعنی همون دیکشنری. که به ازای هر کلید منحصر بفرد میتونه چند جواب داشته باشه. مثلا اگه کلید رو واژه Car در نظر بگیریم مقدار متناظرش میشه مثلا "ماشین،اتومبیل و یا ..."

خوب میتونی یه map تعریف کنی با نوع string برای کلید و مقدار. یعنی هم نوع کلید string باشه و هم نوع مقدار. بعد کلید بشه نام کشور و مقدار بشه نام پایتخت اون کشور. دیگه نیازی به ایف و اوف نداری. خیلی راحت و شیک.

کافیه یه map in cpp گوگل کنی تا به نتیجه برسی. اگه نشد بگو تا یه کد نمونه برات بزارم الان خوابم میاد وگرنه اینکارو انجام میدادم.

یاحق.
موفق باشید/
شب بخیر:چشمک:

Sepehr M
پنج شنبه 08 دی 1390, 02:03 صبح
با سلام.

با روشی که تو داری پیش میری برای n تا اسم کشور باید n تا هم دستور مقایسه بنویسی. فرقی نمیکنه if باشه یا switch. (البته switch بهتره)

ولی خوب تو کتابخونه STL نوع داده ای به نام map داریم که معادل نوع Dictionary تو زبان C#‎ و یا VB.NET هست. این نوع داده یعنی همون دیکشنری. که به ازای هر کلید منحصر بفرد میتونه چند جواب داشته باشه. مثلا اگه کلید رو واژه Car در نظر بگیریم مقدار متناظرش میشه مثلا "ماشین،اتومبیل و یا ..."

خوب میتونی یه map تعریف کنی با نوع string برای کلید و مقدار. یعنی هم نوع کلید string باشه و هم نوع مقدار. بعد کلید بشه نام کشور و مقدار بشه نام پایتخت اون کشور. دیگه نیازی به ایف و اوف نداری. خیلی راحت و شیک.

کافیه یه map in cpp گوگل کنی تا به نتیجه برسی. اگه نشد بگو تا یه کد نمونه برات بزارم الان خوابم میاد وگرنه اینکارو انجام میدادم.

یاحق.
موفق باشید/
شب بخیر:چشمک:


سلام عزیزم...خوبی؟ممنون بابت توجهت...
راستش من هنوز خیلی زبون C رو پیش نرفتم و اگر میبینی از if استفاده کردم چون هنوز سر وقت Switch و مطالب بعدی نرفتم اینم خواستم این برنامه رو بنویسم که یه خورده با کدها و اینجور چیزا اشناتر بشم...حالا اگه من فرضا بخوام فقط و فقط نام همین سه تا کشور رو بدم به برنامم و کشور دیگه ای تو کار نباشه باید چیکار کنم؟
البته دوست عزیز بالا یه توضییح مختصری دادند اما من باز هم دستکاری کردم ولی موقع پایتخت واس من فقط یه حروف M چاپ میشه...

اگه رو همین روشی که خودم پیش رفتم توضییح بدی و رو همین روش کاملش کنی بهتره...بازم ممنون!!!

quiet_programmer
پنج شنبه 08 دی 1390, 16:17 عصر
با سلام.

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

ولی خوب اگه میخوای کد خودت رو من اصلاح مکنم میدم ولی احتما سر درنیاری ازش. چون بعضیاشون برات نامفهموم خواهد بود.(با اینکه این کد رو برات مینویسم ولی زیاد باهاش کلنجار نرو اینکه بخوای زودتر بفمیش. همون سرفصلی که داری رو قدم به قدم برو جلو وقتی رسیدی به رشته ها اونجا میفهمی)

#include <stdio.h>
#include <conio.h>
#include <string.h>
int main()
{
char *a;
printf("Enter The Country:");
gets(a);
{
if (strcmp(a,"iran")==0)
printf("The Capital Of This Country Is:Tehran");
if (strcmp(a,"england")==0)
printf("The Capital Of This Country Is:London");
if(strcmp(a,"france")==0)
printf("The Capital Of This Country Is:Paris");
}
getche();
return 0;
}

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

یاحق.
موفق باشید/

Sepehr M
پنج شنبه 08 دی 1390, 17:07 عصر
دمت گرم...مرسی!!!

یه سوال...کجا میتونم فایلهای کتابخونه ای تو زبان C رو پیدا کنم و کاربردشون رو هم بخونم؟؟؟
سایت؟مرجع؟چیزی هست که بشه بهش رجوع کرد؟؟؟
میخوام یه جا باشه که کل هدر فایلهای زبان C رو معرفی کرده باشه به علاوه توضییحاتشون!!!

ممنون عزیز :چشمک:

quiet_programmer
جمعه 09 دی 1390, 00:28 صبح
با سلام.


میخوام یه جا باشه که کل هدر فایلهای زبان C رو معرفی کرده باشه به علاوه توضییحاتشون!!!حتما به سایت زیر سر بزن:

http://www.cplusplus.com/

توکه داری یادمیگیری cpp رو یادبگیری راحت تره. البته این نظر من بود. سایت بالا هم کتابخونه های c و هم cpp همراه با stl رو داره.
آها راستی نمیدونم چرا ولی ازت خوشم اومده. دلیلش هنوز برام مشخص نیست.وقتی به تو ج میدم بیشتر بهم میچسبه. به هر حال ارادت دارم بهت.:چشمک:

یاحق.
موفق باشید/

Sepehr M
جمعه 09 دی 1390, 01:20 صبح
دل به دل راه داره :بامزه:

شما تاج سری :قلب:

ahmad-hagh
دوشنبه 12 دی 1390, 00:01 صبح
چرا متغیر هاتو Int گرفتی؟؟
مگه طرف نباید اسم وارد کنه؟؟
a=Tran ya a==Iran پعنی چی؟؟

Sepehr M
دوشنبه 12 دی 1390, 00:03 صبح
خب نه فرضا که برنامه فقط قادر باشه پایتخت همون کشورها رو فقط تحویل بده...
من فعلا میخوا فقط واسه همین سه تا کشور جواب بده

ahmad-hagh
دوشنبه 12 دی 1390, 00:07 صبح
یعنی هر کشور یه عدد مخصوص داره که اون کشور رو مشخص میکنه؟؟
بابا یه متغیر بذار برا در یافت اسم
بعد با strcmp مقایسه کن ببین ایرانه یا افغانستان :دی
اوکی