انجمنهای فارسی اوبونتو
جامعه کاربران => معرفی نرمافزار => نویسنده: gilanema در 04 تیر 1389، 07:20 بظ
-
توی اوبونته چطور برنامه نویسی کنیم؟ زبان سی
-
اینجا رو ببین
http://forum.ubuntu.ir/index.php/topic,6589.0/topicseen.html
-
IDE های مختلفی هست، مثل anjuta و netbeans و codeblocks و ...
یا میتونی از کامپایلر gcc که تحت ترمینال اجرا میشه استفاده کنی. ونیاز به نصب نیست، همراه ابونتو نصب هست. که کلا همه نیازهاتو برآورده میکنه.
مثلا تو gedit کد خودت رو بنویسی بعد از اینکه ذخیرش کردی بنویسی
gcc myCode.c
بعد یه خروجی بهت میده به اسم a.out
برای اجراش هم دستور پایین رو میزنی
./a.out
برای اینکه بیشتر با gcc آشنا بشی، بزن:
man gcc
-
سلام
من تازه میخوام شروع به برنامه نویسی کنم و رفتم یه کتاب آقای جعفر نژاد گرفتم ولی هرچی کد توی کد بلاک میزنم کامپایل نمیکنه باید چیکار کنم تا درست بشه
-
کد هایی که تو اون کتاب هستش مربوط به سی توربو هستش ؛ بعضی از دستورات فرق میکنه و نمیشه تو لینوکس کامپایل کرد ؛ با امدکی تغییر برنامه هاش کار میکنه ؛
-
سلام
من تازه میخوام شروع به برنامه نویسی کنم و رفتم یه کتاب آقای جعفر نژاد گرفتم ولی هرچی کد توی کد بلاک میزنم کامپایل نمیکنه باید چیکار کنم تا درست بشه
نویسنده قحط بود؟ اون هنوز رو کامپیوتر خونشون داس نصبه. من یه سری قرار بود سی درس بدم، گفتم کتاب مرجع معرفی کنم فقط با دیدن سرفصلاش پشیمون شدم.
-
چه کنمجونم و بی تجربه به نظر شما هرچی خوب هست بگین تا من برم تهیه کنم فقط اگر برای لینوکس باشه خیلی خیلی بهتره چون من دیگه کلا ویندوز رو پاک کردم ارزش هم نداره بخاطر یه برنامه مثل توربو سی دوباره نصبش کنم
-
1- سری مجلات حلقه اوبونتو تا یه حدی آموزش C در gcc رو گفته بود که برای مبتدی عالی بود!
2- بنظرم اگر کتاب چگونه برنامه نویسی C++ دایتل دایتل رو بگیری عالیه! چون یه توضیحاتی درمورد C داره و اینکه C++ رو هم یاد می گیری!
-
حتی برای ویندوز هم پیشنهاد میشه C استاندارد یاد بگیرید، نه C توربو یا هر چیز دیگهای!(GCC از توابع استاندارد C پشتیبانی میکنه!)
-
مطمئن هستین یه دیتل دیتل بگیرم حله یا فقط یه هزینه اضافیه بدش باید بشه دکر اتاقم ؟؟؟ ??? چون من میخوام تو لینوکس برنامه نویسی کنم
-
مطمئن هستین یه دیتل دیتل بگیرم حله یا فقط یه هزینه اضافیه بدش باید بشه دکر اتاقم ؟؟؟ ??? چون من میخوام تو لینوکس برنامه نویسی کنم
منم تا حالا وقت نکردم بشینم یه زبان برنامه نویسی رو بخونم با اینکه خیلی علاقه دارمولی شنیدم که این دایتل و دایتل خیلی توپه
اولش نوشته یکیشون جونه با تفکرات مدرن و یکی پیر ب تفکرات قدیمی و این دوتا خوب با هم مچ شدن ( حالا چه ربطی به قضیه داره ؟؟؟ ??? )
نمیدونم ولی فکر نکنم ضرر کنی
-
سلام
من تازه میخوام شروع به برنامه نویسی کنم و رفتم یه کتاب آقای جعفر نژاد گرفتم ولی هرچی کد توی کد بلاک میزنم کامپایل نمیکنه باید چیکار کنم تا درست بشه
چندتا نکته:
- به جای iostream.h بنویس iostream
- قبل از int main بنویس ;using namespace std
- از توابع و کتابخانههای مخصوص ویندوز استفاده نکن مثل conio.h و ....
-
نه دیتل و دیتل ترجمه آقای قلزم واقعا کتاب مناسب و کاملی برای یادگیری زبان C++ هست و براحتی میتونید توی لینوکس برنامه نویسی یاد بگیرید . من خودم از طریق همین کتاب این زبان رو یاد گرفتم و الان به راحتی توی لینوکس برنامه نویسی می کنم . اما اگر زبان انگلیسیتون قویه زبان اصلیش رو بگیرید بهتره اما ترجمه آقای قلزم بسیار عالیه .
-
سلام
من تازه میخوام شروع به برنامه نویسی کنم و رفتم یه کتاب آقای جعفر نژاد گرفتم ولی هرچی کد توی کد بلاک میزنم کامپایل نمیکنه باید چیکار کنم تا درست بشه
چندتا نکته:
- به جای iostream.h بنویس iostream
- قبل از int main بنویس ;using namespace std
- از توابع و کتابخانههای مخصوص ویندوز استفاده نکن مثل conio.h و ....
این که C++ نه C .
-
آدم وقتی می خواد یه زبان برنامه نویسی یاد بگیره بهتره قوی ترینش رو یاد بگیره . وقتی c++ هست دیگه واسه چی c
-
آدم وقتی می خواد یه زبان برنامه نویسی یاد بگیره بهتره قوی ترینش رو یاد بگیره . وقتی c++ هست دیگه واسه چی c
قویترین؟ علتش چیه؟ هر کدوم مزایایی دارن. مثلا استعداد C++ توی باگ پروری :) بینظیره. در حقیقت مثلا قابلیت سربارگذاری اپراتورها چیزیه که من بهش میگم تبدیل اپراتورها به باگ.
این مصاحبه انگلیسیه. ولی بخونیدش حتما واجبه، مصاحبه ای با آقای استراستوپ (درست نوشتم؟) درباره دلایل اینکه C++ رو ایجاد کرد.
http://harmful.cat-v.org/software/c++/I_did_it_for_you_all
خصوصا اینجا رو :
# Stroustrup: Well, one day, when I was sitting in my office, I thought of this little scheme, which would redress the balance a little. I thought 'I wonder what would happen, if there were a language so complicated, so difficult to learn, that nobody would ever be able to swamp the market with programmers? Actually, I got some of the ideas from X10, you know, X windows. That was such a bitch of a graphics system, that it only just ran on those Sun 3/60 things.. They had all the ingredients for what I wanted. A really ridiculously complex syntax, obscure functions, and pseudo-OO structure. Even now, nobody writes raw X-windows code. Motif is the only way to go if you want to retain your sanity..
# Interviewer: You're kidding...?
# Stroustrup: Not a bit of it. In fact, there was another problem.. Unix was written in 'C', which meant that any 'C' programmer could very easily become a systems programmer. Remember what a mainframe systems programmer used to earn?
-
ببینید c++ توی شی گرایی واقعا قویه و c این قابلیت رو نداره . بعد این overloading اپراتورها واقعا جزو مزایای این زبان هست و نشان دهنده انعطاف پذیر بودن این زبانه . یکی از مهمترین دلایل برتری یک زبان انعطاف پذیری اونه .
-
قبول، قرار بود این قابلیت بینظیر C++ باشه. ولی خوب، مثلا گوگل چی درباره این قابلیت میگه؟ اینجا رو بخونید (این صفحه قواعد کدنویسی در گوگل رو توضیح میده)
http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml?showone=Operator_Overloading#Operator_Overloading
چون از اونطرف ممنوعه دیدنش (مگه فیل کش داشته باشید) اینه متنش :
Operator Overloading
link ▽
Do not overload operators except in rare, special circumstances.
Definition: A class can define that operators such as + and / operate on the class as if it were a built-in type.
Pros: Can make code appear more intuitive because a class will behave in the same way as built-in types (such as int). Overloaded operators are more playful names for functions that are less-colorfully named, such as Equals() or Add(). For some template functions to work correctly, you may need to define operators.
Cons: While operator overloading can make code more intuitive, it has several drawbacks:
* It can fool our intuition into thinking that expensive operations are cheap, built-in operations.
* It is much harder to find the call sites for overloaded operators. Searching for Equals() is much easier than searching for relevant invocations of ==.
* Some operators work on pointers too, making it easy to introduce bugs. Foo + 4 may do one thing, while &Foo + 4 does something totally different. The compiler does not complain for either of these, making this very hard to debug.
Overloading also has surprising ramifications. For instance, if a class overloads unary operator&, it cannot safely be forward-declared.
Decision:
In general, do not overload operators. The assignment operator (operator=), in particular, is insidious and should be avoided. You can define functions like Equals() and CopyFrom() if you need them. Likewise, avoid the dangerous unary operator& at all costs, if there's any possibility the class might be forward-declared.
However, there may be rare cases where you need to overload an operator to interoperate with templates or "standard" C++ classes (such as operator<<(ostream&, const T&) for logging). These are acceptable if fully justified, but you should try to avoid these whenever possible. In particular, do not overload operator== or operator< just so that your class can be used as a key in an STL container; instead, you should create equality and comparison functor types when declaring the container.
Some of the STL algorithms do require you to overload operator==, and you may do so in these cases, provided you document why.
See also Copy Constructors and Function Overloading.
اون تیکه اولش رو که بولد کردم ببینید (البته من خودم c++ کار میکنم. ولی این حرف رو قبول ندارم که چون C++ بعد از C اومده از C بهتره. امروز دو ساعت داشتم با یکی بحث میکردم که GIT دلیل نمیشه که SVN رو بگذاریم کنار. هر کدوم یه جایی کاربرد داره، در خیلی موارد SVN بهتر هم هست الانم گویا دچار همین بحث شدم برای C و C++ )
-
+1
واقعا توجیه شدم . ممنون از توضیحاتتون . بله هر کدوم در جای خود کاربردهایی دارند و هر کی متناسب با کاری که از زبان می خواد اونو یاد می گیره . ولی در کل c++ قابلیت هایی داره که c در مقابلشون حرفی برای گفتن نداره از جمله شی گرایی و ...
-
شما برای کسی که میخواد برنامه نویسی رو یاد بگیره
حالا برای کنجکاوی و اینکه مثلا از لینوکس بیشتر سر در بیاره و خلاصه برای یه کاربر عادی کدوم رو پیشنهاد میکنید ؟
منتظر نظراتتون هستم مخصوصا نظر دو دوست خوبم فرود جان و علی جان
-
اگه برای کنجکاویه، یه زبون سطح بالاتر بهتره. تو ایران پایتون زیاد طرفدار داره (ولی من هنوز نفرت دارم از اینکه فاصله خالی جزئی از قواعد زبان باشه) و اگه راستشو بخواید بدجوری شیفته Ruby شدم.
به هر حال Perl, Python , Ruby به نظر من خیلی بهترن برای اینطور کارها. خیلی سریع به نتیجه میرسی، کاملا از سیستم عامل مستقل هستن و ....
-
پیشنهاد من کتاب « زبان برنامه نویسی C »
نویسنده: ریچی
یکی از بهترین کتابهای زبان C هست. ترجمش رو میتونید از مهندس قلزم در بازار تهیه کنید. این کتاب ترجمهی خوبی داره و توسط خالق زبان C نوشته شده. سعی کنید کتابهای مادر که صرفا ترجمه شده هستن و اصولی ترجمه شدن رو بخونید. کتابها و ترجمه های جعفر نژاد فقط به درد نمره گرفتن توی دانشگاه میخوره و از ترجمه و محتوای جالبی برخوردار نیست.
داخل لینوکس هم سینتکس استاندارد هست. فقط بعضی توابع یا پیش پردازنده ها اینجا یا نیست یا اسمشون فرق میکنه که باید در اینترنت سرچ کنید.
-
دوست عزیز آقای یعقوبی! پیشنهاد میکنم این متن رو از وبلاگ امیرضای عزیز بخونی...
چرا ++C جایگزین C نشد؟ (http://amirreza.wordpress.com/2010/05/14/%DA%86%D8%B1%D8%A7-c-%D8%AC%D8%A7%DB%8C%DA%AF%D8%B2%DB%8C%D9%86-c-%D9%86%D8%B4%D8%AF%D8%9F/)
-
ممنون آقا " مهدی... " واقعا به اطلاعاتم اضافه شد . ببینید مثلا شما می خواید برنامه نویسی یه پروژه عظیم رو رهبری کنید . مطمعنا شما خودتون تنهایی اینکار رو نمی کنید ، چند نفر برنامه نویس استخدام می کنید . حالا شما توی برنامه نویسی c راحت تر تقسیم کار می کنید یا توی c++ . شما توی c++ می تونید به راحتی به هر کی یه کلاس بدید و هر کی عملیات هاش رو توی اون انجام بده . و در جواب اون آقا که گفتند private به چه دردی می خوره باید بگم که توی همین مثال قبل برنامه نویس A توی برنامه اش از متغیر X استفاده میکنه . بعد دقیقا برنامه نویس B هم از همون اسم برای یکی از متغیرهاش استفاده میکنه به همین دلیل ....
-
ممنون آقا " مهدی... " واقعا به اطلاعاتم اضافه شد . ببینید مثلا شما می خواید برنامه نویسی یه پروژه عظیم رو رهبری کنید . مطمعنا شما خودتون تنهایی اینکار رو نمی کنید ، چند نفر برنامه نویس استخدام می کنید . حالا شما توی برنامه نویسی c راحت تر تقسیم کار می کنید یا توی c++ . شما توی c++ می تونید به راحتی به هر کی یه کلاس بدید و هر کی عملیات هاش رو توی اون انجام بده . و در جواب اون آقا که گفتند private به چه دردی می خوره باید بگم که توی همین مثال قبل برنامه نویس A توی برنامه اش از متغیر X استفاده میکنه . بعد دقیقا برنامه نویس B هم از همون اسم برای یکی از متغیرهاش استفاده میکنه به همین دلیل ....
الان چند نفر دارن روی پروژه ای مثل هسته لینوکس کار میکنن؟ اونهم C هستش. کار تیمی سختی های خودشو داره اما نشدنی نیست.
-
خوب من که نگفتم کار گروهی رو نمیشه با c انجام داد میگم اگه با c++ انجام بشه خیلی راحت تره . حالا دوباره نگید خوب برنامه نویسای حرفه ای چرا سختی میکشن ولی از c استفاده می کنن چونکه اتفاقا این سوال منم هست و هنوز به جوابش نرسیدم ولی باز میگم که کار گروهی با c++ راحت تره .
ولی اصلا ما چرا داریم بحث می کنیم خود کسی که می خواست برنامه نویسی یاد بگیره باید بیاد یکی رو انتخاب کنه . چون فکر کنم دعوای بین c و c++ منتهی میشه به آیا اول مرغ بود یا تخم مرغ ؟!!
-
دوستان منو چه به برنامه نویسی!! واسه اطلاعات عمومیتون معرفی کردم ;)
-
خوب من که نگفتم کار گروهی رو نمیشه با c انجام داد میگم اگه با c++ انجام بشه خیلی راحت تره . حالا دوباره نگید خوب برنامه نویسای حرفه ای چرا سختی میکشن ولی از c استفاده می کنن چونکه اتفاقا این سوال منم هست و هنوز به جوابش نرسیدم ولی باز میگم که کار گروهی با c++ راحت تره .
ولی اصلا ما چرا داریم بحث می کنیم خود کسی که می خواست برنامه نویسی یاد بگیره باید بیاد یکی رو انتخاب کنه . چون فکر کنم دعوای بین c و c++ منتهی میشه به آیا اول مرغ بود یا تخم مرغ ؟!!
تقریبا ۱ هزارم درصد مشکلات درباره این چیزهاست. بیشترین مشکلات چیزای دیگست. استیل مشترک برای کد نویسی منو فقط تو همین پروژه تا به حال سه مرتبه تا مرز جنون برده. حتی مشکل Indent گذاری برای کد عذاب آوره که با یه نفر کار کنی که این چیزا رو بلد نیست. وگرنه کد نویسی اصلا مشکلی نیست، البته اگه افرادی که باهاشون کار میکنی قبلا برنامه نویسی یا دست کم کارای خودشونو بلد بوده باشن.
من برای اینکه پروژه هام متمرکزن و معمولا یه تیم متمرکز دارم از SVN استفاده میکنم. یه جوجه تازه به دوران رسیده تازه اومده تو گروه، گیر داده که SVN قدیمیه ۲ روز تیم رو از پروژه انداخته عقب با بحثهای بیخود در صورتی که حتی قواعد نام گذاری اولیه متغیرها رو بلد نیست. بدیشم اینه که خواهرزاده دوستمه و این کلی بدتر از اونیه که شما میگید.
-
منم با چنین افرادی یه زمانی سر کله میزدم . اون فکر می کرد خیلی بارشه ولی .... . بیخیال کلا از بحث تاپیک دور شدیم به هر حال " صلاح مملکت خویش خسروان دانند " باید برنامه یاد گیرنده ببینه با چه برنامه ای حال میکنه . ما خوبی ها ، بدی ها و برابری های این دو زبان رو گفتیم حالا .......... << اما شاکرا ، اما کفورا >>
-
از این بحث شما بنده خیلی استفاده کردم
ممنون
-
البته موضوع دیگری هم هست که بهتره بهش توجه بشه!
احتمالا اوایل سال آینده میلادی یعنی فقط چند ماه دیگر نسخه نهایی استاندارد جدید ++C یا همان C++0x به صورت رسمی منتشر خواهد شد. برخلاف استاندارد 2003 که تغییرات چندانی را ایجاد نکرد ، به نظر می رسد این استاندارد این زبان را تا حدی متحول خواهد کرد. بنابراین در صورتی که قصد دارید این زبان را یاد بگیرید بهتر است به این موضوع هم توجه کنید. البته این استاندارد قرار بود سال 2009 منتشر شود که تا کنون کار آن به تعویق افتاده است. اما موضوع مهم این است که چندی پیش متن آن نهایی شده است و تا جایی که اطلاع دارم فقط منتظر تایید کمیته استاندارد می باشد. جالب است بدانید اغلب بخش های آن نیز در GCC پیاده سازی شده است.
فکر می کنم پس از این استاندارد می بایست نقاط ضعف و قوت این زبان مورد بررسی مجدد قرار گیرد. ;)
موفق باشید.
-
البته موضوع دیگری هم هست که بهتره بهش توجه بشه!
احتمالا اوایل سال آینده میلادی یعنی فقط چند ماه دیگر نسخه نهایی استاندارد جدید ++C یا همان C++0x به صورت رسمی منتشر خواهد شد. برخلاف استاندارد 2003 که تغییرات چندانی را ایجاد نکرد ، به نظر می رسد این استاندارد این زبان را تا حدی متحول خواهد کرد. بنابراین در صورتی که قصد دارید این زبان را یاد بگیرید بهتر است به این موضوع هم توجه کنید. البته این استاندارد قرار بود سال 2009 منتشر شود که تا کنون کار آن به تعویق افتاده است. اما موضوع مهم این است که چندی پیش متن آن نهایی شده است و فقط منتظر تایید کمیته استاندارد می باشد. جالب است بدانید اغلب بخش های آن نیز در GCC پیاده سازی شده است.
فکر می کنم پس از این استاندارد می بایست نقاط ضعف و قوت این زبان مورد بررسی مجدد قرار گیرد. ;)
موفق باشید.
البته این از اول قرار بود ۲۰۱۰ بیاد. اسمشم به همین دلیل x0 هست. خود استراستوپ (به خدا نمیدونم تلفظ اسم این بابا چیه! Bjarne Stroustrup ) گفته امیدوار بوده که C++08 یا C++09 داشته باشه ولی نشده. به هر صورت بله، این نسخه جدید خیلی چیزها رو قراره به زبان اضافه کنه ولی هیچی کم نمیشه بنابراین ....