PDA

نسخه کامل مشاهده نسخه کامل : درخواست کامپایلر C در ویندوز ۷



ashl7
22-09-2012, 09:58
سلام...من یادگیری برنامه نویسی رو تازه شروغ کردم...دنبال یک کامپایلر هستم که تو ویندوز ۷ کار کنه والی هر چی میگردم پیدا نمیکنم...چندتا فایل (borland incl)دانلود کردم والی به نظر نمیاد که نرم افزار باشن!!!!کد مینویسم والی نمیتونه بخونه!!!...visual studio زبان C رو کامپایل میکنه؟!
مرسی

Max.Pain
22-09-2012, 13:28
از ویژوال استودیو میتونید استفاده کنید اما اگه دنبال یه محیط ساده و سبک هستید از dev cpp compiler استفاده کنید.

ashl7
23-09-2012, 23:36
مرسی از جواب....من کامپایلر CodeBlocks رو گرفتم اینجا...خیلی خوبه

[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

ashl7
29-09-2012, 11:02
من چندتا سوال خیلی مبتدیانه داشتم ممنون میشم جواب بدین !!!! تازه شروع کردم برنامه نویسی رو...
اول اینکه return 0 که آخر برنامه میاد دقیقن به چه دردی میخوره؟! آخه چه باشه چه نباشه برنامه یکجور اجرا میشه!!!
و اینکه( ) int main و (void main(void و( )void main با هم چه فرقی داران؟!
چرا این برنامه درست اجرا نمیشه؟! چرا بعد از کامپایل همینطوری به نوشتن عبارات بدونه اینکه وایسه ادامه میده؟!

#include <stdio.h>

void main(void)
{
int i,j;
printf("how many:");
scanf("%d",j);

for(i=0; i < j ; i++)
printf(" \nlisa I Like you\n");
printf("that is all...\n");

}


پ.ن: هر کاری میکنم بد تایپ میکنه دستور رو!!!! ببخشید!!!!!

samasara
29-09-2012, 12:48
پ.ن: هر کاری میکنم بد تایپ میکنه دستور رو!!!! ببخشید!!!!!
در قسمت حالت پیشرفته از نوار ابزار گزینه ی warp رو اتخاب کن و دستورت رو داخل اون بزار!!
کد تو میشه:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

samasara
29-09-2012, 13:27
عزیزم شما می تونید از turbo c++ یا borland C++ استفاده کنی مشکلی ندارن با سون اما فول اسکرین نمی شن!! شاید باسیستم ها 64 بیتی هم یه مشکل کوچولو داخل یکسری از کدا داشته باشن اما قابل اجرا هستند !!
خودم الان gcc استفاده می کنم نسخه ی وندوزی هم داره اما داخل سون هم با بورلند سی کامپایل کردم !! فکر کنم این کامپایلر ها کامل با شن اما اگه چیزی خواستی باید فایل های دات اچ رو از یه جایی دان کنی و داخل فولدر include بزاری .:20:

اما داخل vs باید حتما شیئ بنویسی یعنی نمی تونی مثل cکار کنی باید دستورات به صورت c++ باشن

ashl7
29-09-2012, 22:16
مرسی از جواب...مشکلی با کامپایلر ندارم...یه سری برنامه نوشتم که راحت اجرا میشه...ولی در مورد این برنامه...مثلا اگر به j عدد ۴ رو بدیم، باید ۴ بار تایپ کنه lisa I like you...that is all........درسته؟! ولی این برنامه رو که کامپایل میکنم بی نهایت بار مینویسه اینو...صفحه همینطوری میره پایین!!!!!!!! یه مشکلی تو برنامه نوشتن هم هست، که من نمیدونم چیه!!!
نظری در مورد ساله اول و دومم ندارین؟! :31:

samasara
29-09-2012, 22:28
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می تونی از راه بالا هم به جواب برسی اینا مقدماتیه که شما رو در کار های بزرگ کمک می کنه!

samasara
29-09-2012, 22:37
اولا

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
رو باید به:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تبدیل کنی تا آدرس درست بشه!!
دوما هم باید فایل سرآمد زیرو به برنامت اضافه کنی تا تابع getch(); برا گرفتن یک کلید تا اتمام و پاک کننده ی صفحه نمایش clrscr(); اضافه کنید

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

پس برنامتون می شه

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

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

samasara
30-09-2012, 22:36
عبارت void(تهی) در واقع این رو به برنامه می گه که تابع چیزی رو برنمی گردونه مثال حتما دیدید ک یک سری توابع اگر کارشان را درست انجام دادن مقدارtrue واگرنه false رو برمی گردونه اما تابعی که از نوع void تعریف بشه هیچ چیزی رو برنمی گردونه دقیقا مثال clrscr خروجی نداره

از اوجایی که برنامه ی اصلی در سی به عنوان یک تابع تعریف می شه پس بید دارای مقدار باشه پس عبارت void می گه که تابع نازی نیست چیزی رو برگردونه!!

پس فرقی بین (void main(void و( )void main نیست

اما ( ) int main چون باید خروجی int داشته باشه عبارت return 0 رو در آخر برنامه قرار می دیم که یه سیستم بفهمونم که برنامه تموم شده(این سبک در سی++ اضافه شده نه سی)

اما حالا چه را اگر return 0 رو نزاریم مشکلی پیش نمیاد چون شما داخل تابع اصلی ارگومانی رو تعریف نکردین و کامپایلر اونو از نوع void در نظر می گیره پس با اتمام خط آخر برنامه رو تموم می کنه!!

عبارت return 0 در سی++ مهمه و شما حتما باید وقتی که از کامپایلر سی++ استفاده می کنید از ( ) int main و return 0 استفاده کنید

شاید در آخر هم سوالی پیش بیاد که چرا الان مشکلی با کامپایلر ندارین ؟ که در پاسخ اید بگم که شما از کمپالر c/c++ استفاده می کنید که در آن واحد با فراخوانی فایل های سرآمد صحیح می تونید از هر دوتش استفده کنید!!

god of war 2
30-09-2012, 23:11
سلام.




عبارت void(تهی) در واقع این رو به برنامه می گه که تابع چیزی رو برنمی گردونه مثال حتما دیدید ک یک سری توابع اگر کارشان را درست انجام دادن مقدارtrue واگرنه false رو برمی گردونه اما تابعی که از نوع void تعریف بشه هیچ چیزی رو برنمی گردونه دقیقا مثال clrscr خروجی نداره

از اوجایی که برنامه ی اصلی در سی به عنوان یک تابع تعریف می شه پس بید دارای مقدار باشه پس عبارت void می گه که تابع نازی نیست چیزی رو برگردونه!!

پس فرقی بین (void main(void و( )void main نیست

اما ( ) int main چون باید خروجی int داشته باشه عبارت return 0 رو در آخر برنامه قرار می دیم که یه سیستم بفهمونم که برنامه تموم شده(این سبک در سی++ اضافه شده نه سی)

اما حالا چه را اگر return 0 رو نزاریم مشکلی پیش نمیاد چون شما داخل تابع اصلی ارگومانی رو تعریف نکردین و کامپایلر اونو از نوع void در نظر می گیره پس با اتمام خط آخر برنامه رو تموم می کنه!!

عبارت return 0 در سی++ مهمه و شما حتما باید وقتی که از کامپایلر سی++ استفاده می کنید از ( ) int main و return 0 استفاده کنید

شاید در آخر هم سوالی پیش بیاد که چرا الان مشکلی با کامپایلر ندارین ؟ که در پاسخ اید بگم که شما از کمپالر c/c++ استفاده می کنید که در آن واحد با فراخوانی فایل های سرآمد صحیح می تونید از هر دوتش استفده کنید!!




شما یکسری از استاندارد های ++C , C رو تحریف کردید!!
طبق آخرین و حتی استاندارد های قبل از آخرین گفته شده که تابع main باید مقداری از نوع int برگرداند. یعنی به یکی از شکل های زیر تعریف شود:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
این قالب (تابع) بعد ها در استاندارد ++C شامل دو پارامتر اضافی هم شد که بصورت زیر درومد:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
حتی پاراماتر سومی هم که تحت پلتفرم هست هم به این قالب(تابع) اضافه شد.
و اما مقدار برگشتی که این تابع باید برگرداند طبق استاندارد C دو مقدار زیر برای برگشت تعریف شده است:

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
و طبق استاندارد ++C میتواند هر مقداری باشد ولی مقدار 0 به عنوان قرار دادی به منظور عدم خطا در برنامه و اجرای صحیح در نظر گرفته شده و هر مقدار غیر صفر به منظور خطا در اجرا تلقی میشود.
و در ضمن سرفایل :


conio.h
جزو سرفایل های استاندارد این زبان محصوب نمیشه و استفاده از اون در کدهاتون زیاد درست نیست.

samasara
01-10-2012, 13:16
آره حق با شماست من هنوز در عهد قبل به وجود آمدن ویژوال استدیو به سر می برم توضیحات شما در کامپایلر من جز خط کار دیگه ای نمی کنه !! به خصوص اون پارامتر های اضافی چون مقدار خالی هست خطای تعریف شدن اما خالی بودن رو می گیره!!!
و همین طور موارد دیگه ای هم اشاره کردن در سی قبل از سال 1998 زیاد به درد نمی خوره...
اما حق با شماست آخرین تغییرات حتی در داخل msdn ویژوال هم همین طوریه شما گفتید !!
در مجموع قصد من کمک به دوست قبلی بود!! و فکر نمی کنم اشتباهی در تعاریم داشتم!!
اما conio.h رو اجازه بدین که من قبول نکنم که جزو فایل های سی نمی شه استفاده کرد و استفاده از اون کار خطاییه چون درسته در ویژوال استدیو نیازی زیادی به اون نیست اما هنوز در پوشه ی include قرار داره!!
در ضمن من چون فایل سر آمد stdio رو در برنامه ی دوستمون دیدم فکر کردم ایشون هم از کامپایلر های تحت داس استفاده می کنند وتوضیحی که بلد بودم دادم!!

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

god of war 2
01-10-2012, 13:59
پیشنهاد میکنم یکبار سندهای استاندارد این زبان رو مطالعه کنید که برای یک برنامه نویس ++C ,C از اهمیت بالایی برخورداره:


C89
C99
C++03
C++11

اسامی اسناد استاندارد این زبان هستند که با یک سرچ میتونید محتوای آنهارو ببینید.
در ضمن بنده از کامپایلر MinGw استفاده میکنم و اطلاعاتی که گفتم مربوط میشه به بخش استاندارد این زبان که در تمام سیستم عامل ها به یک شکل هست و هیچ ارتباطی با Visual Studio ندارد. و اینکه در حال حاضر در سال 2012 هستیم:20: و استانداردهای سال 1998 و قبل از اون عملا هیچ کاربردی نداره.

samasara
01-10-2012, 18:04
دوست عزیز من فقط در ویکیپیدیا تونستم به یکی از این سندا به نام ISO/IEC 9899:2011 دسترسی داشته باشم که اونم در قسمت refreance پولیه!!! اگه شما در سیستمتون آماده دارین لطفا آپ کنید یا یه سایت که دان ش رایگان باشه معرفی کنید! اطلاعات من از دوکتاب سی جعفر نژاه و سی ++ سرابی یانجه در باریه برنامه نویسی استاندارد چزی نگفته!! کامپایلر شما باید gcc تحت وین باشه من با c/c++ turbo مینویسم و با همون بی کربرد برای کد نویسی با سی راحتم چون کارم رو کاملا انجام مده !! اما مطلبتون جالبه برام شاید اگه چیز جالبی داخلش دیدم به فکر مهاجرت بیفتم!
با گفته های شما اطلاعات من دیگه الان مدفون شدست و به درد کسی جز خودم نمی خوره پس شما دوست اول رو راه نمایی کنید تا مشکلش حل به شه و لینکا هم یادتون نره!
موفق باشد!

god of war 2
01-10-2012, 19:12
دوست عزیز من فقط در ویکیپیدیا تونستم به یکی از این سندا به نام ISO/IEC 9899:2011 دسترسی داشته باشم که اونم در قسمت refreance پولیه!!! اگه شما در سیستمتون آماده دارین لطفا آپ کنید یا یه سایت که دان ش رایگان باشه معرفی کنید! ا
بند ه این اسنادو بصورت پرینت شده تا هفته پیش در اختیار داشتم اما الان متاسفانه در اختیارم نیست (چندروزی دادم به استاد دانشگاه)
این اسناد در اصل پولی هستند ولی لینکهای دانلود هم دارند مثل نرم افزار های پولی ولی بدیش اینه که لینکها پیدا شده زود باطل میشن. اگر لینک سالمی پیدا کردم حتما براتون ارسال میکنم.(دلیل نگذاشتن لینک در پست قبلی هم همین بود)

اطلاعات من از دوکتاب سی جعفر نژاه و سی ++ سرابی یانجه در باریه برنامه نویسی استاندارد چزی نگفته!!
آقای سرابی رو من نمیشناسم ولی اگر از آقای جعفر نژاد بپرسین که ++C چیست ایشون قطعا نمیتونن بهتون جواب بدن!


کامپایلر شما باید gcc تحت وین باشه من با c/c++ turbo مینویسم و با همون بی کربرد برای کد نویسی با سی راحتم چون کارم رو کاملا انجام مده !! اما مطلبتون جالبه برام شاید اگه چیز جالبی داخلش دیدم به فکر مهاجرت بیفتم!
درسته gcc . مطمئنن اگر برنامه هایی که مینویسید از یک سطحی بالاتر بره در خیلی از موارد به مشکل میخورید و نیاز به یک استاندارد جدیدتر و امکانات بیشتر رو حس میکنید.

samasara
01-10-2012, 20:11
آقای سرابی رو من نمیشناسم ولی اگر از آقای جعفر نژاد بپرسین که ++C چیست ایشون قطعا نمیتونن بهتون جواب بدن!
منبع وقوی تری رو می تونید معرفی کنید؟ ممنونون می شم .

مطمئنن اگر برنامه هایی که مینویسید از یک سطحی بالاتر بره در خیلی از موارد به مشکل میخورید و نیاز به یک استاندارد جدیدتر و امکانات بیشتر رو حس میکنید.

درسته اگر برنامه سطح بالایی و کاربردی بخوام بنویسم مطمئنن سی تحت داس رو انتخاب نمی کنم!!! اونو برای یک سری از کار های مورد علاقه م به همراه n تا محیط برنامه نویسی دیگه استفاده می کنم ... !

کارایی ازش برمیاد که واقعا کمتر میشه از اونا در محیط های جدید پیدا کرد!!!

که البته الان کسی زیاد براش مهم نیست فقط معدود افرادی که در زمینه ی امنیت پایه کار میکنن و می خوان دسترسی بیشتری به سخت افزار داشته باشند ازش استفاده می کنن !!

یه شوخی ای که یعضی از دوستان می کنن اینه که ماکروسافت پروژه ی شبکه کردن کره ی ماه رو آغاز کرده اما خانوم داره خطا ها اولین برنامه ی اسمبلیشو می گیره !!!


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

بازم ممنون .

god of war 2
01-10-2012, 21:10
منبع وقوی تری رو می تونید معرفی کنید؟ ممنونون می شم .
سری کتابهای C++ How to Program از Deitel رو بهتون پیشنهاد میکنم که ترجمه های زیادی هم داره در ایران.(ترجمه دکتر حسین ابراهیم زاده قلزم بنظر میاد کاملترین باشه)


که البته الان کسی زیاد براش مهم نیست فقط معدود افرادی که در زمینه ی امنیت پایه کار میکنن و می خوان دسترسی بیشتری به سخت افزار داشته باشند ازش استفاده می کنن !!
شما در 11++C که آخرین نسخه موجود هست هم تمامی امکانات نسخه های قدیمی تر رو در اختیار دارید یعنی اینطور نیست که امکانات نسخه های قبلی حذف شده باشه و امکانات جدیدتر جایگزین بشه. امکانات و ویژگی های جدیدتر اضافه شده و برخی از ویژگی های قدیمی بهینه شده و الباقی دست نخورده مونده.

ashl7
04-10-2012, 09:10
ممنون از جوآبتون هم Samasara, هم God of War 2....ببخشید اگه دیر دارم جواب میدم...یه چند روزی به اینترنت دسترسی نداشتم...سوال های بیشتر تو راهه :31: