-
سلام دوستان:( برنامه ای هست مثل Microsoft Visual Studio برای ردهت که امکانات اونو داشته باشه ؟:(
-
Mono Developer
که برای نصب اون باید mono و mono runtime رو نصب کنی
توی اوبونتو که با نصب mono developer همه پیش نیازها از جمله اون دو برنامه ای که گفتم نصب میشه
فدورا رو نمی دونم پیش نیازها رو اتوماتیک نصب می کنه یا نه
البته مونو رو از لحاظ تعداد کامئوننتها نمی تونی با visual studio مقایسه کنی ولی کارایی و سرعت خوبی داره
-
سلام دوستان:( برنامه ای هست مثل Microsoft Visual Studio برای ردهت که امکانات اونو داشته باشه ؟:(
تامنظورت از امکانات چی باشد(متاسفانه من لااقل برنامه آزادی را نمی شناسم که تمام امکانات Visual Studio را داشته باشد).
اگر زبان برنامه نویسی را مشخص کنید شاید بشود بهتر راهنمایی کرد.
-
درود دوست گرامی،
اگر برنامه نویس .net هستید و حالا کاربر گنو لینوکس شدید و می خواهید برنامه نویسی کنید باید به شما بگویم که .net یک تکنولوژی انحصاری مایکروسافت است و IDE آن نیز فقط در ویندوز کار می کند. اما ناول یک سری کتابخانه و ابزارو IDE مشابه تکنلوژی .net با نام Mono ایجاد کرده که یک سری از قابلیتهای .net رو داره و یک سری دیگه پولی هستش و و البته باید بگم که بین گنو لینوکسی هامحبوب نیست. برنامه هایی چون Banshee هم با اون نوشته شدن که تو اوبونتو نسخهی بعدی هم دیگه اثری از مونو البته به طور پیش فرض نیستش.
پیشنهاد من برای شما رفتن به سمت زبانهایی مثل جاوا و یا یادگیری Python GTK و یا Qt و دیگر زبانهای مرسوم در دنیای گنولینوکس است. IDE هم اگر بخوایین Eclipse و NetBeans و QtCreator رو من خودم استفاده می کنم گزینههای دگه ای هم هستن که می تونید استفاده کنید. اگر هم دانش بالایی ندارید Gambas هست که زبانی شبیه بیسیکه. Lazarus و free pascal هم تقریبا معادل دلفی هستند.
موفق باشید، بدرود
-
Eclipse هست که امکانات بیشتری هم از ویژوال استودیو داره (این روو به عنوان فردی میگم که سالها با هرکدومشون کار کرده). ولی فکر نمیکنم زبانهای داتنت رو خوب پشتیبانی کنه.
Qt creator هم هست که تقریباً فقط برای برنامهنویسی با فریمورک کیوت هست و اونقدر محشره که میارزه بری و این فریمورک رو از اول یاد بگیری. گرچه فرق چندانی هم با سیپلاسپلاس استاندارد نداره
-
چگونه باید Mono Developer دریافت و نصب کرد ؟
آیا Mono Developer به صورت شی گرا میشه برنامه نویسی کرد ؟ مثلا تک باکس یا . . . داشته باشه ؟
-
چگونه باید Mono Developer دریافت و نصب کرد ؟
آیا Mono Developer به صورت شی گرا میشه برنامه نویسی کرد ؟ مثلا تک باکس یا . . . داشته باشه ؟
sudo apt-get mono develop
دوست عزیز چیزی که شما داری مثال میزنی میشه ویژوال نه شیگرا
mono developer یک ide هست که با فریمورک mono برای زبان C# در محیط گنو/لینوکس نوشته شده (به محیط bsd و mac هم پورت شده)
قابلیت شیگرایی به زبان بستگی داره نه ide و یا فریمورک
ویژوال بودن به فریمورک بستگی داره نه ...
فریمورک مجموعهای از کتابخانهها برای اهدافی خاص است
من قبلا C#رو توی محیط ویندوز و گنو کار کردم و به نظر من از لحاظ سینتکس از همه زبانهای برنامهنویسی دیگه بهتره ولی اگه میخوای برای گنو برنامه بنویسی پیشنهاد من C++ که کلی کتابخانه داره مثل QTکه دانیال بهزادی اشاره کرد و خدا تا دیگه مثل baost - STL و ...
-
من کلی مونو کار کردم !خوبه ها ولی بهتره تو گنولینوکس ولش کرد :P برای نصب هم درستش اینه که از یام استفاده بشه چون apt نداره و مونودولپ هم درست نوشته بشه ! :
sudo yum install mono-develop
و اسمش هم مونو دولوپر نیست!! مونو دولپ هست ! و نکته دیگه اینکه ویژوال رو با gtk فراهم میکنه ولی اگه بخوای هم میتونی خودت کد های ویژوالش رو بزنی ! که با ویژوال ویندوز بشه ! اگه ویژوال میخوای کار کنی و سی شارپ بهت توصیه میکنم یه پروژه با یه فرم خالی تو Visual Studio درست کنی و بعد توی گنولینوکس با مونو دولپ اونو بیاری و فقط کنترل هایی که میخوای اضافه کنی رو بنویسی که کار چندان سختی نیست ! ولی کسی برنامه با زبان های .net نوشته شده تو لینوکس رو تحویل نمیگیره! \\:D/
راستی شما از ردهت چرا استفاده میکنی ؟ رو سروری ؟ و اگه هستی و نسخه اصل از خودش نخریدی پیشنهاد میکنم که بری CentOS بریزی که آپدیت نخواهد داشت همچنین اینکه CentOS خود ردهت هست بدون پشتیبانی ولی با آپدیت!
-
من الآن دچار یه سوال عمیق فلسفی شدم :دی چرا میخوای داتنت کار کنی؟ از زندگیات سیر شدی آیا؟ :D
-
و اسمش هم مونو دولوپر نیست!! مونو دولپ هست ! و نکته دیگه اینکه ویژوال رو با gtk فراهم میکنه
آره ببخشید اشتباه از من بود monodevelop درسته
کتابخانه گرافیکیش gtk#
اسم بستش برای نصب توی اوبونتو monodevelop ولی ردهت رو نمیدونم
من الآن دچار یه سوال عمیق فلسفی شدم :دی چرا میخوای داتنت کار کنی؟ از زندگیات سیر شدی آیا؟ :D
به نظر من یکمی بی انصافیه مونو پروژوه کممانندیه مخصوصا که با C# میتونه کار کنه هرچند مایکروسافت شاید بعدا کمی دردسر ساز بشه
-
به نظر من یکمی بی انصافیه مونو پروژوه کممانندیه مخصوصا که با C# میتونه کار کنه هرچند مایکروسافت شاید بعدا کمی دردسر ساز بشه
نه. آخه داتنت خیلی غیراستاندارده و به شدت هم بینظمه. در مقابل مثلا Qt کاملا استاندارد و منطقیه، یادگرفتنش و کار کردن باهاش هم آسونتره
-
نه. آخه داتنت خیلی غیراستاندارده و به شدت هم بینظمه. در مقابل مثلا Qt کاملا استاندارد و منطقیه، یادگرفتنش و کار کردن باهاش هم آسونتره
QT هرچقدر هم استاندارد باشه برپایه سی پلاس پلاس نوشته شده و سی پلاس چند استاندارد و چندین کامپایلر با کامپایل بعضا متفاوت داره و از لحاظ سینتکس به سی شارپ نمیرسه
درسته که سی پلاس پلاس بسیار انعطاف پذیرتره و فریمورک - کتابخانه - ویرایش و ... خیلی زیادی براش وجود داره و این خوبه ولی برای اونهایی که میخوان تازه شروع کنن بسیار گیج کنندس برخلاف سی شارپ که بسیار یکدستتره و از ide بسیار خوبی بهره میبره
درسته که سی شارپ برای حفظ سازگاری تعدادی از کدهاش غیر استاندارده ولی بازهم به نظر من بهترین سینتکس رو داره
من الان یک ماهی میشه که سی پلاس رو شروع کردم (نه زیاد جدی) هنوز دارم با کتابخانهها و فریمورکهاش سروکله میزنم
-
برپایه سی پلاس پلاس نوشته شده و سی پلاس چند استاندارد و چندین کامپایلر با کامپایل بعضا متفاوت داره و از لحاظ سینتکس به سی شارپ نمیرسه
دقیقا کدوم قسمت Syntax منظورتونه؟ چون ++C و #C تقریبا Syntax مشابهی دارند!
-
QT هرچقدر هم استاندارد باشه برپایه سی پلاس پلاس نوشته شده و سی پلاس چند استاندارد و چندین کامپایلر با کامپایل بعضا متفاوت داره و از لحاظ سینتکس به سی شارپ نمیرسه
درسته که سی پلاس پلاس بسیار انعطاف پذیرتره و فریمورک - کتابخانه - ویرایش و ... خیلی زیادی براش وجود داره و این خوبه ولی برای اونهایی که میخوان تازه شروع کنن بسیار گیج کنندس برخلاف سی شارپ که بسیار یکدستتره و از ide بسیار خوبی بهره میبره
درسته که سی شارپ برای حفظ سازگاری تعدادی از کدهاش غیر استاندارده ولی بازهم به نظر من بهترین سینتکس رو داره
من الان یک ماهی میشه که سی پلاس رو شروع کردم (نه زیاد جدی) هنوز دارم با کتابخانهها و فریمورکهاش سروکله میزنم
پس چرا من با cpp+Qt شروع کردم؟! :D
اون چند استاندارد و چند کامپایلر که میگی هیچ مشکلی نداره.شما طبق آخرین استاندارد باید برنامتو بنویسی.و فایل اجرایی برنامه هم خودت درست می کنی منتشر می کنی.کسی که میخواد خودش کامپایل کنه مشکل خودشه که یک کامپایلر با بهترین و آخرین استاندارد ها پیدا کنه.معمولن gcc خودش ار بهترین و آخرین استاندارد ها استفاده می کنه.
یعنی چی از سینتکس به C# نمی رسه. تا جایی که من میدونم C# خیلی فرقی با c++ نداره و به نظر من واقعا آدم از اول یک چیز استاندارد یاد بگیره خیلی بهتره تا یک زبان غیر استاندارد که مایکروسافت از خودش در اورده (بر پایه C++).در ضمن از نظر سختی کار هم در مقایسه با C# جای نگرانی نیست. چون Qt خودش خیلی چیز ها رو به c++ اورده تا کار رو راحت کنه.
در مورد ide که من میونه خوبی باهاش ندارم ولی طبق شنیده هام eclipse و qt creator خیلی خوب عمل می کنن.
-
دقیقا کدوم قسمت Syntax منظورتونه؟ چون ++C و #C تقریبا Syntax مشابهی دارند!
یعنی چی از سینتکس به C# نمی رسه. تا جایی که من میدونم C# خیلی فرقی با c++ نداره و به نظر من واقعا آدم از اول یک چیز استاندارد یاد بگیره خیلی بهتره تا یک زبان غیر استاندارد که مایکروسافت از خودش در اورده (بر پایه C++
مگه سینتکس چند قسمت داره
C# بیشتر شبیه جاواست تا C++ هرچند جاوا هم شبیه C++ ولی تفاوت اینها زیاده فقط for و if و نبینید مثال میزنم توی C++ رشته نداریم برای پیاده سازی اون از اشارهگرها و یا template ها توی STL استفاده شده که اومدن لیستها و وکتورها و نقشهها و ... رو ساختن.
روش و نوع بکار بردن اینها با عناصر مشابه ولی توکار C# میشه تفاوت در سینتکس و برتریهای C# که سادهترین ومسخره ترینش میشه عدم استفاده از «ـ» در نام کتابخانهها و عناصر - الگوها - الگوریتمها و کامپوننتها و ... البته اینرو برای این میگم که عمق قیضیه روشن بشه وگرنه اینها ....
یعنی چی مایکروسافت از خودش درآورده پس C++ از کجا در اومده (اگه به فلسفه C# توجه کنی میبینی که همچین غیر استاندارد و من در آوردی نیست) سی پلاس از سی میاد سی از بی (شایدم دی یادم نمییاد) و ...
پس چرا من با cpp+Qt شروع کردم؟! :D
من از کجا بدونم. من یه دوست دارم که دوست دوستش خیار دوست داره ولی من بدم میاد نمیشه که همه مثل هم باشن
اون چند استاندارد و چند کامپایلر که میگی هیچ مشکلی نداره.شما طبق آخرین استاندارد باید برنامتو بنویسی.و فایل اجرایی برنامه هم خودت درست می کنی منتشر می کنی.کسی که میخواد خودش کامپایل کنه مشکل خودشه که یک کامپایلر با بهترین و آخرین استاندارد ها پیدا کنه.معمولن gcc خودش ار بهترین و آخرین استاندارد ها استفاده می کنه.
منم نگفتم مشکلی داره گفتم برای تازهکارها کمی (زیاد) گیج کنندس
در مورد ide که من میونه خوبی باهاش ندارم ولی طبق شنیده هام eclipse و qt creator خیلی خوب عمل می کنن.
این که دلیل نشد «میونم خوب نیست»!
شنیدهها رو هم نمیشه به حساب آورد مردم الکی زیاد حرف میزنن ولی تاکید میکنم من در مورد eclipse و qt creator حرفی نزدم و نمیگم بدن ولی با تاکید بسیار میگم visual studio بهترین ide هست که تا حالا باهاش کار کردم مخصوصا برای برنامههای بزرگ
-
مثال میزنم توی C++ رشته نداریم
رشته نداریم؟!
ممنون میشم یک خط کد به #C با همون رشتهای که توی ++C وجود نداره برامون بنویسی!
-
رشته نداریم؟!
ممنون میشم یک خط کد به #C با همون رشتهای که توی ++C وجود نداره برامون بنویسی!
C# میشه
sring strTest
توی سی پلاس
char *strTest
و با استفاده از stl
string strTest
-
رشته نداریم؟!
ممنون میشم یک خط کد به #C با همون رشتهای که توی ++C وجود نداره برامون بنویسی!
C# میشه
sring strTest
توی سی پلاس
char *strTest
و با استفاده از stl
string strTest
خوب پس رشته داریم که، چی میگید نداریم؟ ارتباطش با Syntax چی بود؟!
لازم به ذکره که string ارتباطی به STL نداره.
توی ++C اینجور نوشته میشه:
string strTest;
توی #C اینجور نوشته میشه:
string strTest;
دقیقا شبیه هم، تفاوت Syntax کجاست که من نمیبینم؟
-
خوب پس رشته داریم که، چی میگید نداریم؟ ارتباطش با Syntax چی بود؟!
لازم به ذکره که string ارتباطی به STL نداره.
دقیقا شبیه هم، تفاوت Syntax کجاست که من نمیبینم؟
یک سوال آیا شما برنامهنویسی میکنید و یا اینکه سرفا میخواید بی جهت از سی پلاس دفاع کنید (هر چند این اسمش دفاع نیست چون نمیدونستم اسمش چیه نوشتم دفاع)
string یکی از object های stl هستش البته در بعضی کامپالرها (فکر میکنم clang) این بصورت پیش فرض به ساختار سی پلاس اضافه شده البته اینرو مطمئن نیستم
همینی که باید هدر فایلش رو باید وارد کنی دلیلی بر اینه که جزیی از ساختار سی پلاس نیست
strinل رو شما پرسیدی و من در جواب شما روش تعریفش رو گفتم من به سینتکس ربتش ندادم
بزار یک نمونه خیلی ساده از سینتکس غیر استاندارد هم نشون بدم که دیگه بحثی باقی نمونه و این بحث بی ربط به این تاپیک رو تموم کنیم
vector<double> homework;
cin >> x
homework.push_back(x);
typedef vector<double>::size_type vec_sz;
vec_sz size = homework.size();
این یک نمونه کده که یک وکتور (یک نوع لیست) با نوع double تعریف میکنه و بعد دادهای که از ورودی دریافت شده رو به اون اضافه میکنه و در آخر یک نوع جدید تعریف میکنه که اندازه وکتور تعریف شده رو ذخیره میکنه
حالا همین توی C# میشه
List lstTest = new List ();
lstTest.Add(24);
lstTest.size()
آخری هم اندازه لیست رو میده که هر جا خواستی استفاده کنی
البته باز هم میگم مثالی که آوردم با استفاده از stl بود اگه از هیچ کتابخانهای نخوای استفاده کنی باید 200 خط کد بنویسی
تعصب در هر زمینهای اشتباهه چه لزومی و فایدهای داره من دائم بخوام بگم سی پلاس ............ ولی اگه واقعا نباشه
-
فکر کنم با دیدن این دو لینک موضوع مشخص بشه:
http://en.cppreference.com/w/cpp/keyword
http://msdn.microsoft.com/en-us/library/x53a06bb.aspx
string در #c کلمه کلیدی است ولی در ++c نیست.
حالا من نمی فهمم کلمه کلیدی باشد یا کتابخانه استاندارد چه فرقی می کند!
مهم اینه که به هر حال قابلیت های string در هر دو زبان است.
-
یک سوال آیا شما برنامهنویسی میکنید و یا اینکه سرفا میخواید بی جهت از سی پلاس دفاع کنید
بله، برنامهنویسی هم میکنم. قضیه دفاع از زبان خاصی نیست، فقط اشتباهاتی که بیان کردید رو دارم تصحیح میکنم. وگرنه من مخالف #C نیستم و به عنوان مثال توی همین انجمن هم گفتم که C و ++C رو برای شروع پیشنهاد نمیکنم.
string یکی از object های stl هستش
خیر! string یکی از Classهای C++ Standard Library هستش که اونم جزئی اصلی از خود ++C هستش. حالا اینکه ارتباط STL و C++ Standard Library چطوریه جای توضیحش اینجا نیست.
همینی که باید هدر فایلش رو باید وارد کنی دلیلی بر اینه که جزیی از ساختار سی پلاس نیست
خیر. شما توی C و ++C هر چیزی رو که بخواید استفاده کنید اول Header اون رو Include میکنید. به عنوان مثال یک چیزی که بخواید روی صفحه بنویسید باید iostream رو include کنید. توی C هم همینطوره و stdio رو include میکنید.
حالا همین توی C# میشه
List lstTest = new List ();
lstTest.Add(24);
lstTest.size()
برنامهای که شما نوشتید معادل برنامه #Cای که نوشتید نبود. بذارید من معادل ++C اون رو مینویسم: (و برنامهها رو با هم مقایسه کنید!)
list lstTest<double>;
lstTest.push_back(24);
lstTest.size();
البته باز هم میگم مثالی که آوردم با استفاده از stl بود اگه از هیچ کتابخانهای نخوای استفاده کنی باید 200 خط کد بنویسی
C++ Standard Library و STL هردو جزئی از ++C هستند. اون کتابخونه جدا که کلی از قابلیتها در اون هست و جزئی از ++C نیست Boost هستش.
تعصب در هر زمینهای اشتباهه چه لزومی و فایدهای داره من دائم بخوام بگم سی پلاس ............ ولی اگه واقعا نباشه
من هم با تعصب بیجا کاملا مخالفام و ++C رو بهترین زبان نمیدونم. (بهترین زبان معنا نداره، زبان عموما بر اساس نوع کار و چیزهای دیگه انتخاب میشه). ولی خوب اینکه در مقایسه یک زبان با یک زبان دیگه اطلاعات اشتباه دادن مثل اینکه در این زبان اصلا رشته وجود نداره، یا اینکه یک برنامه رو به سختترین حالت ممکن نشون دادن برای اینکه بگید یک زبان دیگه بهتره (برنامهای که خودتون داده بودید به عنوان جایگزین رو با برنامه من مقایسه کنید!) اشتباهه.
-
1- دوست عزیز آبجکت (شی) رو با کلاس مینویسن string با این ساختارش رو نمیتونی بگی کلاس چون با کلاس نوشته شده string یکی از آبجکتهای کتابخانه string هستش.
اگه کلاس باشه پس تکلیف برنامهنویسی شیگرا چی میشه
std::string is a typedef for a particular instantiation of the basic_string class template. Its definition is found in the <string> header and in the std namespace
2- string جز STL هستش اینم لینک منبع http://en.wikipedia.org/wiki/String_(C%2B%2B)
3- بزرگوار چیزی رو include میکنن که جزی از زبان نباشه iostream یک کتابخانست به این خاطر include میشه مثال درست cin و printf و float هستش که جز هسته سی پلاس هستند
۴- برنامه سی شارپ معادل سی پلاس بود و نه برعکسش هدف آوردن معادل برای سی پلاس بود و نه برای سی شارپ (دیشب خواستم تغییر بدم ولی فکر نمیکردم به این ایراد بگیری). توی سی شارپ وکتورها رو با لیست مینویسن
۵- «C++ Standard Library و STL هردو جزئی از ++C هستند» کی همچین حرفی زده !؟!؟ درسته از c++98 به اینطرف با هم استاندارد و توسعه داده میشن ولی باز هم به عنوان دو قسمت جدا از هم حتی توی c++11 هم کتابخانههای استاندارد و stl جز ساختار سی پلاس نیستند
The 1998 ANSI/ISO C++ standard consists of two parts: the core language and the C++ Standard Library; the latter includes most of the Standard Template Library (STL) and a slightly modified version of the C standard library.
http://www.mochima.com/tutorials/strings.html
Putting aside any string-related facilities inherited from C, in C++, strings are not a built-in data type, but rather a Standard Library facility
The C++ strings library includes support for two general types of strings:
std::basic_string - a templated class that encapsulates common string operations
Null-terminated strings - arrays of characters terminated by a special token
std::string std::basic_string<char>
template<> class char_traits<std::string>;
http://en.cppreference.com/w/cpp/string
لیست واژگان کلیدی سی پلاس
http://en.cppreference.com/w/cpp/keyword
لیست واژگان کلیدی سی شارپ
http://social.msdn.microsoft.com/search/en-us?query=string&x=0&y=0
-
فکر کنم با دیدن این دو لینک موضوع مشخص بشه:
http://en.cppreference.com/w/cpp/keyword
http://msdn.microsoft.com/en-us/library/x53a06bb.aspx
string در #c کلمه کلیدی است ولی در ++c نیست.
حالا من نمی فهمم کلمه کلیدی باشد یا کتابخانه استاندارد چه فرقی می کند!
مهم اینه که به هر حال قابلیت های string در هر دو زبان است.
ممنون که به اون دو تا لینک اشاره کردی
۹۹٪ مواقع وقتی که یک واژه در یک زبان به صورت واژه کلیدی ذخیره میشه نشان از وجود آن در ساختار اون زبانه
کتابخانهها برای تکمیل زبان بکار میره و جزیی از زبان نیستند و میتونی از اونها استفاده نکنی و یا حتی خود کتابخانه رو هم حتی اگه پیشفرض نصب شده باشه بدون مشکل حذف کنی
-
C++/Qt مشکلی رو که گفتید نداره و با QString به راحتی میشه با رشتهها کار کرد.
-
خوب من میخواستم فقط یک سری اشتباهاتتون رو اصلاح کنم که هم خودتون یک چیزی یاد بگیرید، هم اینکه برای دیگران مفید باشه، ولی انگار اصرار دارید که بگید حرف خودتون درسته، حتی مرجعهایی رو دادی که اونها هم حرف خودتون رو نقض میکنه.
1- دوست عزیز آبجکت (شی) رو با کلاس مینویسن string با این ساختارش رو نمیتونی بگی کلاس چون با کلاس نوشته شده string یکی از آبجکتهای کتابخانه string هستش.
میریم سراغ مرجع خودتون: (لینک (http://en.wikipedia.org/wiki/String_(C%2B%2B)))
In the C++ programming language, the std::string class is a standard representation for a string of text. This class alleviates many of the problems introduced by C-style strings by putting the onus of memory ownership on the string class rather than on the programmer. The class provides some typical string operations...
حالا شما بگو من اشتباه میگم که String یک Class هست ولی خوب درستش اینه که یک Class هستش و بقیه هم همین رو میگن!
2- string جز STL هستش اینم لینک منبع http://en.wikipedia.org/wiki/String_(C%2B%2B)
دوباره میریم به همون لینکی که خودتون دادید: (لینک (http://en.wikipedia.org/wiki/String_(C%2B%2B)))
سمت راست، بالا نوشته C++ Standard Library و زیرش نوشته Input/Output و Strings که همون Strings انتخاب شده. خوب این یعنی String جزئی از C++ Standard Library هستش.
زیر Standard Template Library نوشته شده algorithm, bitset, functional, ... که ربطی به string نداره. کافی نیست؟ میریم به این لینک، باز هم توی ویکیپدیا: لینک (http://en.wikipedia.org/wiki/C%2B%2B_Standard_Library)
The C++ Standard Library provides several generic containers, functions to utilize and manipulate these containers, function objects, generic strings and streams (including interactive and file I/O), support for some language features, and everyday functions for tasks such as finding the square root of a number.
3- بزرگوار چیزی رو include میکنن که جزی از زبان نباشه iostream یک کتابخانست به این خاطر include میشه مثال درست cin و printf و float هستش که جز هسته سی پلاس هستند
اگر اونجوری بخوای بگی cin و printf هم جزئی از ++C نیست، چون cin توی هدر istream و fprint توی هدر cstdio قرار داره. حداقل خودتون خودتون رو نقض نکنید.
زبان ++C بدون C++ Standard Library مثل #C بدون NET. میمونه. در ضمن include کردن و هدرفایلها ربطی به در زبان بودن یا نبودن ندارند، کلا کاربرد Headerها چیز دیگهای هست.
۴- برنامه سی شارپ معادل سی پلاس بود و نه برعکسش هدف آوردن معادل برای سی پلاس بود و نه برای سی شارپ
پس متوجه کار برنامه ++C نشدید، چون چیزی که نوشته بودید اصلا معادل نبود. وقتی میگید معادل، یعنی باید دقیقا برنامهتون کار برنامه دیگه رو بکنه. توی برنامه ++C میاد از Console ورودی میگیرید، توی #C خودتون ۲۴ رو دستی اضافه میکنید، توی ++C یک Type جدید تعریف میکنید، توی #C کلا بیخیال اون قسمت میشید؟ شما دو برنامه متفاوت نوشتید و گفتید یکسان هستند که ثابت کنید #C سادهتره. خوب این حرکت اشتباهه، ولی خوب کسی که کمی برنامهنویسی بلد باشه میتونه راحت بفهمه که اون دو برنامه معادل نبودند. حالا بذارید پس من معادل اون برنامه ++C رو به #C براتون بنویسم:
برنامه ++C:
vector<double> homework;
cin >> x
homework.push_back(x);
typedef vector<double>::size_type vec_sz;
vec_sz size = homework.size();
برنامه معادل #C:
List<double> homework = new List<double>();
x = Convert.ToDouble(Console.ReadLine());
homework.Add(x);
using vec_sz = System.Int32;
vec_sz size = homework.Count;
این برنامه معادل درستشه. خط به خط مقایسه کنید هم معادله. اگر بخواید هم بگید که نه، توی #C میشه این کار رو راحتتر انجام داد، خوب تو ++C هم میشه، کافیه برنامه معادل قبلیای که نوشتم رو بخونید. بد نیست برنامهی من رو با برنامه خودتون مقایسه کنید ;)
البته احتمالا من هر چی بگم شما آخر حرف خودتون رو میزنید. در کل انتظار داشتم کمی حرفهایتر جواب بدید. #C یک زبان High Levelتر از ++C هست و مزیتهای خودش رو داره. مثلا توی Syntax اون میتونیم چیزهایی مثل foreach رو ببینیم که به اون شکل توی ++C نیست. اینجور موارد چیزهایی بود که من انتظار شنیدن اونها رو داشتم، نه اینکه توی ++C رشته وجود نداره یا نوشتن دو برنامه غیر معادل که سعی کنید نشون بدید #C بهتره.
در کل فکر کنم چیزهایی که لازم بود رو گفتم، بیشتر از این بحث کردن روی همین مطالب کار خستهکنندهای هستش.
-
دوست عزیز شما اول بیا و کامل همه چیز رو بخون و فکر میکنم که منابع رو قبول داری پس در مورد منابع مشکلی نیست و بزار قدم به قدم جلو بریم
۱- اول با آرامش و دقت این متن رو بخون که نشون میده string یک داده built-in نیست
Putting aside any string-related facilities inherited from C, in C++, strings are not a built-in data type
۲- حالا دومی اصلا عجله نکن نشون میده string یکی از الگوهای (کلاس - آبجکت - شی و یا هر چیزی که دوست داری اسمش رو بزاری) کتابخانه STL هستش
std::string is a typedef for a particular instantiation of the basic_string class template. Its definition is found in the <string> header and in the std namespace
هدف از بحث این دو مورد بود اگه قبول کردی که بقیه رو نخون وگرنه برو بعدی
هدف از معرفی اون مرجع اون خط نبود چیزی بود که در پایین ذکر کردم پس بهش توجه کن(من نمیخوام تحلیل کنم که چرا گفته کلاس) دوست عزیز شما بهش بگو کلاس اگه ماشین هم ببینیم حتما باید بهش بگیم آهن چون از آهن ساخته شده ولی این مهم نیست به هر حال هر کسی ممکنه که هر چیزی رو به هر اسمی صدا بزنه
std::string is a typedef for a particular instantiation of the basic_string class template. Its definition is found in the <string> header and in the std namespace.[1]
typedef basic_string<char> string;
سمت راست، بالا نوشته C++ Standard Library و زیرش نوشته Input/Output و Strings که همون Strings انتخاب شده. خوب این یعنی String جزئی از C++ Standard Library هستش.
زیر Standard Template Library نوشته شده algorithm, bitset, functional, ... که ربطی به string نداره. کافی نیست؟ »
این چه تحلیلیه ! ! ! من ترجیح میدم که در موردش حرف نزنم
اگر اونجوری بخوای بگی cin و printf هم جزئی از ++C نیست، چون cin توی هدر istream و fprint توی هدر cstdio قرار داره. حداقل خودتون خودتون رو نقض نکنید.
زبان ++C بدون C++ Standard Library مثل #C بدون NET. میمونه. در ضمن include کردن و هدرفایلها ربطی به در زبان بودن یا نبودن ندارند، کلا کاربرد Headerها چیز دیگهای هست.
به cin و printf توجه نکرده بودم بله اونها هم جزیی از کتابخانهها هستند و نه جز هسته سی پلاس
عزیز من .NET یک فریم ورک هستش چه ربطی به ساختار و سینتکس داره حرف ما چیز دیگهای هستش (خود زبان برنامه نویسی و string)
میشه کاربرد هدرفایلها رو بگید شاید من رو از یک اشتباه بزرگ رهایی بدید
پس متوجه کار برنامه ++C نشدید، چون چیزی که نوشته بودید اصلا معادل نبود. وقتی میگید معادل، یعنی باید دقیقا برنامهتون کار برنامه دیگه رو بکنه. توی برنامه ++C میاد از Console ورودی میگیرید، توی #C خودتون ۲۴ رو دستی اضافه میکنید، توی ++C یک Type جدید تعریف میکنید، توی #C کلا بیخیال اون قسمت میشید؟ شما دو برنامه متفاوت نوشتید و گفتید یکسان هستند که ثابت کنید #C سادهتره. خوب این حرکت اشتباهه، ولی خوب کسی که کمی برنامهنویسی بلد باشه میتونه راحت بفهمه که اون دو برنامه معادل نبودند. حالا بذارید پس من معادل اون برنامه ++C رو به #C براتون بنویسم:
من پوزش میخوام که سی شارپ راه حلهای سادهای هم داره که کدنویسی رو کم میکنه
توی مقایسه هدف انجام کار مشابه هستش نه مشابه بودن کد
منظور از معادل این نیست که شبیه سازی کنیم وگرنه چرا این همه زبان به وجود میاد چرا باید از سی شارپ با اون فریمورک سنگینش و از STL و QT و ... استفاده کرد
واقعا به این چیزی که گفتید ایمان دارید
هدف از بحث یادگیری هستش نه اینکه کسی بخواد (من یا شما) حرفش رو به کرسی بشونه به نظر من برای استفاده کسایی که ممکنه بعدا این تاپیک رو بخونن به جمع بندی برسیو و تمومش کنیم و خواهش میکنم توی همین موضوع بمونیم
۱- string آیا جزیی از ساختار (هسته) سی پلاس پلاس هستش و یا یک template از STL
۲- سینتکس سی شارپ استاندارد تر است یا سی پلاس پلاس
۳- هر چیزی که با کلاس ساخته بشه (string) آیا باز هم باید کلاس خوانده بشه و یا چیزی که باهاش ساخته شده (شی - object)
اگه موافقی پاسخ اینها رو بده شاید من اشتباه کنم و این باعث بشه که من از اشتباه در بیام من تازه با اجزای استاندارد سی پلاس آشنا شدم
اگه دوستان دیگه هم مشارکت کنن ممنون میشم
-
کتاب «C++ Programming cookbook» فصل دوم «Herb Schildt's C++ Programming Cookbook»
The first type of string supported by C++ is the null-terminated string. This is a char array that contains the characters that comprise a string
const char *ptr = "Hello"
خلاصه پارسی :
string یک شی ( آبجکت ) از نوع basic_string که خود یک کلاس الگو تعریف شده بوسیله C++ میباشد
The second type of string is an object of type basic_string, which is a template class defined by C++. Therefore, basic_string defines a unique type whose sole purpose is to represent sequences of characters. Because basic_string defines a class type, it offers a high-
level approach to working with strings. For example, it defines many member functions that perform various string manipulations, and several operators are overloaded for string operations. There are two specializations of basic_string that are defined by C++: string
and wstring. The string class operates on characters of type char, and wstring operates on characters of type wchar_t. Thus, wstring encapsulates a wide-character string.
The string type is based on the template class basic_string, which is declared in the <string> header.
string(const Allocator &alloc = Allocator( ) )
-
کتاب «Programming with GNU Software» فصل 3: libstdc++ and the Standard Template Library
Of all the classes available to us in the STL, perhaps the most immediately useful is string.
Constructing a string object is easy
-
کتاب «The C++ Standard Library» فصل پنجم «The Standard Template Library»
The heart of the C++ standard library, the part that influenced its overall architecture, is the standard template library (STL).
You can also use strings as STL containers. By strings I mean objects of the C++ string classes (basic_string<>, string, and wstring), which are introduced in Chapter 11). Strings are similar to vectors except that their elements are characters
-
کتاب «Beginning programming with C++ for dommies» فصل 34 «Ten Features Not Covered in This Book»
In theory, the string class should do the same for C++. In practice, however, it’s not that simple. Because string is not an intrinsic type
string isn’t even a class. It’s an instance of a template class
-
کتاب «C++ Programming» فصل ۸ «User-Defined Simple Data Types, Namespaces, and the string Type »
the Standard C++ library did not provide a string data type. Compiler vendors often supplied their own programmer-defined string type, and the syntax and semantics of string operations often varied from vendor to vendor.
The data type string is a programmer-defined type and is not part of the C++ language
[/color]
-
در مورد ide که من میونه خوبی باهاش ندارم ولی طبق شنیده هام eclipse و qt creator خیلی خوب عمل می کنن.
این که دلیل نشد «میونم خوب نیست»!
شنیدهها رو هم نمیشه به حساب آورد مردم الکی زیاد حرف میزنن ولی تاکید میکنم من در مورد eclipse و qt creator حرفی نزدم و نمیگم بدن ولی با تاکید بسیار میگم visual studio بهترین ide هست که تا حالا باهاش کار کردم مخصوصا برای برنامههای بزرگ
خب از اونجایی که حدود دهساله دارم کار حرفهای میکنم فکر میکنم این صلاحیت رو داشته باشم که بگم بدون شک اکلیپس بارها از ویژوالاستودیو قویتره. با هرجفتشون هم کار کردم و بهشون تسلط دارم، با هردو هم تقریبا بار اول مجبور شدم و بدون علاقهی قبلی سمتشون رفتم. تازه اون زمانی که رفتم سمت اکلیپس به ویژوال استودیو مسلط بودم. مقایسهی ویژوال استودیو و اکلیپس مثل مقایسهی اینترنتاکسپلورر و فایرفاکسه
-
در مورد ide که من میونه خوبی باهاش ندارم ولی طبق شنیده هام eclipse و qt creator خیلی خوب عمل می کنن.
این که دلیل نشد «میونم خوب نیست»!
شنیدهها رو هم نمیشه به حساب آورد مردم الکی زیاد حرف میزنن ولی تاکید میکنم من در مورد eclipse و qt creator حرفی نزدم و نمیگم بدن ولی با تاکید بسیار میگم visual studio بهترین ide هست که تا حالا باهاش کار کردم مخصوصا برای برنامههای بزرگ
خب از اونجایی که حدود دهساله دارم کار حرفهای میکنم فکر میکنم این صلاحیت رو داشته باشم که بگم بدون شک اکلیپس بارها از ویژوالاستودیو قویتره. با هرجفتشون هم کار کردم و بهشون تسلط دارم، با هردو هم تقریبا بار اول مجبور شدم و بدون علاقهی قبلی سمتشون رفتم. تازه اون زمانی که رفتم سمت اکلیپس به ویژوال استودیو مسلط بودم. مقایسهی ویژوال استودیو و اکلیپس مثل مقایسهی اینترنتاکسپلورر و فایرفاکسه
اگز امکان دارد بعضی از برتری های اکلیپس بر ویژوالاستودیو یا حتی netbeans ذکر کنید؟
-
با netbeans زیاد کار نکردم و نمیتونم در موردش نظر بدم. اما اکلیپس با سیستم افزونههایی که اضافه کرده درست مثل فایرفاکس میشه تغییرات بنیادینی توش اجاد کرد. مثلا من خودم با یه افزونه کار کردم که کد C نوشته شده رو برای اجرا روی انواع میکروپروسسورهای AVR تبدیل و کامپایل میکرد، بعد اون رو به کمک avrdude روی انواع مختلف پروگرامرها روی خود میکرو رایت میکرد. همچنین با وجود پشتیبانی عالی از سامانههای مهار نسخه قابلیت پیشبردن پروژه به صورت تیمی و با زبانهای مختلف به خوبی توی اکلیپس پیادهسازی شده. سیستم دیباگینگش هم که از gdb استفاده میکنه خیلی بهتر از دیباگینگ ویژوالاستودیو کار میکنه و ار وقتی با این کار کردم دیگه نمیتون دیباگینگ ویژوال استودیو رو تحمل کنم. در ضمن اکلیپس آزاد و چندسکویی هم هست که تو هماهنگسازیهای کار تیمی خیلی کمک میکنه. و خوب یه سری مسائل سلیقهای مثل محیط زیباتر و اینا هم هست
-
من دو مشکل با eclipse دارم:
۱- در قسمت auto complete راهنمای دستورات نمایش داده نمی شود.
۲- ایجاد پروژه جدید (غیر از hello world) چگونه ممکن است.
-
من دو مشکل با eclipse دارم:
۱- در قسمت auto complete راهنمای دستورات نمایش داده نمی شود.
۲- ایجاد پروژه جدید (غیر از hello world) چگونه ممکن است.
فکر نمیکنم که اینجا به جواب برسی چون عنوان با پرسش تفاوت داره و فکر میکنم بهتره یک تاپیک نو درست کنی
-
فکر میکنم که بهتره از بحثهای انجام شده یک جمع بندی داشته باشیم که اگه کسی بعدا به این تاپیک مراجعه کرد گیج نشه
جمع بندی من اینه :
۰- string یک داده پیش ساخته (built-in) نمیباشد
۱- string یک typedef از basic_string میباشد
۲- basic_string یکی از template های STL است
۳- STL قلب کتابخانههای استاندارد C++ میباشد
۴- نه STL و نه SL هیچ کدام جز هسته C++ نمیباشند و به همین دلیل جزیی از آن محسوب نمیشوند و میتوان از کتابخانههایی دیگر که دارای واژگان کلیدی و یا مفاهیم مشابه با SL میباشند استفاده کرد و هیچگونه خللی ایجاد نخواهد شد
۵- از کلاس که اساس برنامه نویسی شیگرا در C++ است برای ایجاد شی (object) - کامپوننت و ... استفاده میشود و هر آنچه با کلاس ساخته شود لزوما کلاس نامیده نمیشود
۶- بهتر بودن یک IDE به خیلی عوامل بستگی داره ولی بظر من ویژوال استودیو بهترین IDE از نظر سرعت اجرا - امکانات - پایداری و ... میباشد و بهترین جایگذین اون در ردهت مونو است
۷- سینتکس سی شارپ بدلیل درون ساخت بودن تعدادی از انواع متغیرها - تابعها - الگوریتمها و ... و برتریهای ساختاری و نیاز به نوشتن کد کمتر در بسیاری از کدهای مشابه نسبت به سیپلاس بهتر است (نظر شخصی)
۸- سیپلاس بدلیل عدم نیاز به فریمورک - سرعت اجرا - منابع آموزشی بسیار - آزادی و ... از سیشارت دستکم برای گنو بهتراست
و اما در جواب دوستان :
خوب من میخواستم فقط یک سری اشتباهاتتون رو اصلاح کنم که هم خودتون یک چیزی یاد بگیرید، هم اینکه برای دیگران مفید باشه، ولی انگار اصرار دارید که بگید حرف خودتون درسته
کلا بهتره اول خودمون چیزی رو خوب بلد باشیم و بعد سعی در یاد دادن اون به دیگران کنیم مخصوصا اگه اون در مورد اصول اولیه چیزی باشه
البته احتمالا من هر چی بگم شما آخر حرف خودتون رو میزنید. در کل انتظار داشتم کمی حرفهایتر جواب بدید. #C یک زبان High Levelتر از ++C هست و مزیتهای خودش رو داره. مثلا توی Syntax اون میتونیم چیزهایی مثل foreach رو ببینیم که به اون شکل توی ++C نیست. اینجور موارد چیزهایی بود که من انتظار شنیدن اونها رو داشتم، نه اینکه توی ++C رشته وجود نداره یا نوشتن دو برنامه غیر معادل که سعی کنید نشون بدید #C بهتره.
اگه حرفهای بودم که توی بحث به این مسخرهگی و ابتدایی شرکت نمیکردم
اگه به تعریف سطحهای برنامهنویسی توجه کنی میبینی که هنوز سطحی که شما داری ازش میگی ( High Level تر) اختراع نشده و هر دو زبان سیپلاس و سیشارپ در یک سطح هستند.
سیشارپ هیچ چیز جدیدی نیاورده که یک سطح بالاتر قرار بگیره (درستتر بگم ایجاد کنه)
در مورد برنامه معادل هم انجام کار مشابه مدنظره و نه کد مشابه
من نمیخوام نشون بدم سیشارپ بهتره من فقط حرفم این بود که سینتکس سیشارپ استانداردتره و دم از برتری نزدم
نتیجه گیری اخلاقی:
سطح برنامه نویسی کاربرای این انجمن (من و ...) اینقدر بالا نیست که در مورد برنامه نویسی پرسش بشه پس بهتره به فارومهای تخصصی برای پرسش مراجعه بشه مثل
http://stackoverflow.com/
-
اگز امکان دارد بعضی از برتری های اکلیپس بر ویژوالاستودیو یا حتی netbeans ذکر کنید؟
یکی از برتریهای اون که به نظر من مهمه اینه که میتونید اون رو در محیطهای متفاوت از جمله گنو-لینوکس، ویندوز و مک داشته باشید. اینطوری شما به یک سیستمعامل خاص وابسته نیستید.
از طرفی، چون Eclipse یک پروژه آزاد هستش، ماژولهای بسیار بیشتری براش طراحی شده. یعنی اگر من بخوام برای Android برنامه بنویسم، محیط پیشنهادی اونها Eclipse هستش. در مورد PHP همینطوره، و خیلی محیطهای دیگه.
یک موضوع دیگه هم هست که توی ایران خیلی مساله بزرگی نیست، ولی خوب برای شخصی مثل من که خارج از ایران هست مساله بزرگیه. Eclipse رایگان هستش، ولی Visual Studio نه. (قیمت Microsoft Visual Studio Professional 2010 اینجا ۶۰۰ یورو هستش که میشه تقریبا ۱.۵ میلیون تومان)
-
در ضمن اکلیپس غلطیاب درجا داره. یعنی همون لحظه که داری کد رو مینویسی اگه اشتباهی بکنه بهت میگه. مثلا اگه اسم متغیر رو اشتباه بنویسی بعد از این که اسپیس رو بزنی که بری سر کلمهی بعد بهت میگه ما همچینی متغیری نداریم، یا اگه یادت بره ته خط سمیکالن بذاری خودش بهت میگه. یا مثلا اگه از یه تابعی استفاده کنی که کتابخونهاش رو include نکرده باشی بهت میگه این برای فلان کتابخونه هست و با زدن alt+Enter خودش میره کتابخونهاش رو برات میآره. و اینها همه سرخود هستن و براشون به کامپایلر مراجعه نمیکنه
-
سلام من واقعا درک نمی کنم چرا باید تو فرومهای این بخش این همه کلکل باشه مثلا میخواین بگین خیلی میدونید به جای این همه کلکل چهار تامطلب به درد بخور توی سایت بزارید واقعا متاسفم
-
من الآن دچار یه سوال عمیق فلسفی شدم :دی چرا میخوای داتنت کار کنی؟ از زندگیات سیر شدی آیا؟ :D
وقتی تو ایران زندگی کنی جز این که بخوای زبان های منسوخ شده رو بخونی چیزی نسیبت نمیشه الان سی شارپ رو تو مدارس درس میدن ولی تو دانشگاه ها هنوز دارن سی شارپ می کن و نمی خوان پایتن ( هنوز ندیدم محیط برنامش رو که قضاوت کنم ) اموزش بدن میان مطالبی که تو سال ۲۰۱۳ به روز بود رو اموزش میدن فک کنم سیستم اموزشی هم تو ۲۰۱۳ گیر کرده و پیشرفت نکرده