راهنمای کوچک برنامهنویسی با codeblocks
۰- درآمد:
اگر شتاب دارید، میتوانید از این بخش گذر کنید.
در «پندهایی به دانشجویان کامپیوتر: چشمان خود را باز کنید» و چندین جای دیگر بارها گفتهام که دانشجویان باید بسیار کُد/برنامه بنویسند. اگر پیگیر بلاگ من باشید میدانید که من برنامهنویس یا گیک نیستم و رویکردم بیشتر مدیریتی است. آنچه مرا بر آن داشته تا این نوشته را بنویسم مسالهای که تازگی بسیار میبینم؛ چندی پیش دانشجویی که در پایان ترم ۳ و درس برنامهسازی پیشرفته بود از من خواست تا به رسم همسایگی پروژههای پایان ترم این درس را برایش بنویسم، که البته ننوشتم. تلاش کردم تا این کار را با هم انجام دهیم. پس از آنکه- برای آموزش- برنامهها را بر روی کاغذ نوشتیم، از او خواستم تا آنها را تایپ و اجرا کند. آنها را تایپ کرد ولی پس از آن چیزی گفت که برایم جالب بود: او تا آن روز حتا یک برنامه C/C++ را کامپایل/اجرا نکرده بود. به زودی دانستم که این مشکل بسیاری از دانشجویان است. جالبتر آنکه دانستم هنوز بسیاریTurbo C++ را برای این کار بکار میگیرند که البته بهتر است بگویم بکار نمیگیرند. ایرادی به این برنامه وارد نیست ولی دیگر زمان این برنامه گذشته است و محیطی دلچسب ندارد. ما هم زمان دانشجویی این برنامه را بکار میگرفتیم(ده-یازده سال پیش.) امروزه «محیط های یکپارچه برنامهسازی» (IDE) بسیار کاربر پسندتر به بازار آمده است. یکی از این محیطها Code::Blocks است که زیبا، ساده، بازمتن و رایگان است. بسیاری از دانشجویان به بهانه محیط بد سراغ برنامهنویسی نمیروند. دوستانی برآنند که باید برنامهنویسی و کامپایل را،دست کم برای مدتی، از خط فرمان انجام داد. من همین همین عقیده را دارم اما برای عاشقان برنامهنویسی. امروز میگویم مهم لذت از برنامهنویسی و ادامه آن است. اگر کسی لذت برنامهنویسی را حس کند، آنرا پی گرفته و در آن ژرفتر میشود. دلیل دیگری هم دارد: یکی از دغدغههای من بهعنوان مدیر/مشاور، بکارگیری (استخدام) نیرو است و فکر میکنم بارها گفتهام که نیروی کاربلد بسیار کم است، این پست را نوشتم شاید تعداد بیشتری علاقهمند شده و سراغ برنامهنویسی روند.
۱- آغاز: بارگیری و نصب
اگر کاربر ویندوز هستید به اینجا بروید. برای ویندوز دو نسخه موجود است که بهتر است شما نسخه همراه با کامپایلر MinGW را بگیرید. حجم این نسخه حدود ۲۰ مگابایت است. پس از بارگیری بر روی آن کلیک کنید. اگر پیشتر کامپایلری روی سیستم شما نباشد، نیازی به هیچ تنظیمی نیست و برنامه بهسادگی نصب میشود. پس از نصب میتوانید برنامه را از منوی Start اجرا کنید.
در لینوکس کار کمی آسانتر است. به طور کلی لینوکس بهشت برنامهنویسان است. بیشتر توزیعهای لینوکس آنرا در مخازن رسمی خود دارند. بهراحتی میتوانید برنامه را از مخازن نصب کنید. برای نمونه در اوبونتو کافی است در خط فرمان بنویسید:
sudo apt-get install build-essential codeblocksیادتان باشد که کامپایلر را هم نصب کنید، که من این کار را با نصب build-essential انجام دادهام. در اوبونتو برنامه از نشانی زیر اجرا میشود.
۲- اجرا:
به
بروید و Console application را بزنید. در گام دیگر زبانتان را (C/C++) بگزینید. در گام دیگر به ترتیب نام پروژه، پوشهای که میخواهید پروژه در آن ذخیره شده و نام فایل را بنویسید.(البته هنگام نوشتن نام پروژه، خودش نام فایل را میگزیند).
درگام دیگر نام کامپایلر را میخواهد که بهصورت پیش فرض GNU GCC Compiler است، اگر نیست آنرا انتخاب کنید. کار تمام است. پروژه ساخته میشود. زیر نام پروژه به زیر sources بروید و روی main.cpp کلیک نمایید. کد برنامه نمایش داده میشود. همانگونه که می بینید CodeBlocks خودش یک برنامه ساده برای شما نوشته است.
برای اجرای این برنامه کافی است دو کار انجام دهید. به منوی Build بروید و به ترتیب
Build ->Build
و سپس
Build->Run
را بزنید. یکمی برنامه را کامپایل میکند و دومی ،اگر در مرحله پیشین خطایی یافت نشود، برنامه را اجرا میکند. من متن را تغییر داده Build و Run را دوباره تکرار کردم. اینک میتوانید خروجی را ببینید.
حالا میتوانید برنامههایی را پیشتر نوشتهاید یا در کتابها دیدهاید را تایپ و اجرا کنید.
۳- بیشتر:
تا همین حد برای یادگیری و اجرای برنامهها کافی است. هرچه با این محیط بیشتر کار کنید، بیشتر با آن آشنا شده و ویژگیهای آن دستتان میآید. codeblocks ویژگیهای بسیار بیشتری دارد که با خواندن راهنمای آن با آنها آشنا میشوید. از برنامه نویسی با codeblocks لذت ببرید و تا آنجا که میتوانید برنامه بنویسید.
تبریک میگویم اکنون دیگر برنامهنویس شدید، پس وقت آن است که این نوشته را بخوانید.
اگر می خواهید بار دیگر که مطلبی نوشته شد، آگاه گردید. عضو خوراک (feed) این بلاگ شوید. همچنین می توانید مرا در تویتر دنبال کنید. «فهرست همه نوشتهها»ی من را اینجا ببینید.


















دیدگاه از طرف میلاد خواجوی:
عالی بود.
پیوند این نوشتار را برای دوستان دانشگاهیم ارسال کردم. امیدوارم همگی استفاده ببرند.
ارسال شده در فروردین ۶م, ۱۳۸۸ ساعت۱۲:۳۶ ب.ظ
دیدگاه از طرف مهرداد:
خوب بود! ممنون
منم منتظرم نسخهی نهایی KDevelop4 منتشر بشه! تا معرفی خوبی ازش بکنم!
به نظرم در حال حاضر یک IDEی کامل برای گنو/لینوکس است!
البته هنوز فرصت تست QtCreator رو هم نداشتم، اونم باید خوب باشه
ارسال شده در فروردین ۶م, ۱۳۸۸ ساعت۸:۵۲ ب.ظ
دیدگاه از طرف مجید:
به نظر من اولین و مهمترین کاری که تمام برنامه نویس ها براشون واجب هست یاد بگیرند، دباگ کردن هست (که یک IDE خوب بسیار مفید هست) که متاسفانه حتی خیلی از کسانی که خودشون رو هم برنامه نویس میدونن در این زمینه مشکل دارن و دباگ کردن رو فقط دیدن مقدار متغیر ها میدونند.
در زمینه ی IDE اصولا دو گروه برنامه نویس ازش استفاده نمیکنن
۱: تازه کار
۲: خیلی حرفه ای!
ولی در هر حال به نظر من یکی از فواید استفاده از IDE ، سرعت بخشیدن به برنامه نویسی هست و این که دیگر درگیر جزئیات بی اهمیت نباشیم . (که تازه کار ها باید با جزئیات آشنا بشوند و حرفه ای ها هم که با اونها آشنا هستند ! )
حتی آشنا بودن با کلید های میانبر یک IDE هم تاثیر زیادی در سرعت کار داره .
در محیط KDE هم که همون طور که مهرداد گفت KDEVELOP رو داریم که در نسخه جدیدش بسیار قوی عمل کرده (مخصوصا در زمینه ی ++c)
دانشجو ها هم که متاسفانه کاملا وابسته به نمره هستند و در این زمینه چی بهتر از پول خرج کردن و خریدن پروژه ! p:
راستی وقتی به دانشجو های کامپیوتر گیر میدی خیلی حال میکنم
ارسال شده در فروردین ۶م, ۱۳۸۸ ساعت۱۱:۴۲ ب.ظ
دیدگاه از طرف علی:
باید امتحانش کنم
ممنون ابزار مفیدی می تونه باشه
ارسال شده در فروردین ۷م, ۱۳۸۸ ساعت۵:۱۳ ب.ظ
دیدگاه از طرف ابراهیم:
Vim بیشتر به گروه خونم میخوره
خوشحالم که شما از جملهٔ مدیران ++Cگریز نیستید!
ارسال شده در فروردین ۷م, ۱۳۸۸ ساعت۶:۳۸ ب.ظ
دیدگاه از طرف مهدی فدایی:
سلام آقای غانم زاده، واقعا خسته نباشی،
من تازه با وبلاگ شما آشنا شدم، ولی تو همین چند ساعت بیشتر مطالب رو مرور کردم. واقعا عالی بودن.
من در دانشگاه امام رضا مشهد مهندسی نرم افزار میخونم و در حال حاضر ترم ۴ هستم. معدل کلم ۱۷٫۸۰ هست و تقریبا تمام درسهای تخصصی رو ۲۰ گرفتم.از ترم دوم هم شروع کردم به درس دادن در دانشگاه به عنوان استاد حل تمرین. ترم دوم حل تمرین درس برنامه سازی رشته برق و الکترونیک رو داشتم، ترم ۳ حل تمرین درس های مبانی کامپیوتر و برنامه سازی و ساختمان های گسسته هر دو رشته سخت افزار و نرم افزار و این ترم هم حل تمرین درس های ساختمان های داده، زبان ماشین و مدارهای منطقی هر دو رشته رو دارم. از دوران راهنمایی برنامه نویسی رو با زبان بیسیک شروع کردم، بعد به سمت ویژوال بیسیک اومدم، به پیشنهاد یکی از دوستان به سراغ زبان دلفی رفتم و تو این زبان چند پروژه عملی (بازاری) هم نوشتم. تو دانشگاه بود که با زبان C آشنا شدم و به دلیل شباهت بسیار زیاد #C با دلفی در حال حاضر با #C کار میکنم. البته جدیدا ASP رو هم شروع کردم. با زبان های جاوا و پایتون که شما انقدر رو اونا تاکید دارین هیچ آشنایی ندارم. میخواستم از شما راهنمایی بخوام که چه طور میتونم تو رشته ای که عاشق اونم پیشرفت کنم. ناگفته نماند که در دانشگاه ما تعداد برنامه نویس ها انگشت شمار هستند و همه دانشجو ها فقط به فکر پاس کردن درس ها هستند حتی اکثر کسانی که بالاترین نمرات رو میگیرند. فکر میکنم بهترین راه برای پیشرفت وبلاگ نویسی باشه. اما در چه رابطه و در چه شاخه ای از کامپیوتر؟ نظر شما چیه؟ البته این رو هم بگو که تجربه وبلاگ نویسی دارم. حدود ۲ سال پیش وبلاگی به آدرس http://irdelphi.blogfa.com/ ساختم. که بحث تخصصی اون زبان دلفی بود. البته به دلیل کم بودن استقبال زیاد دوام نیاورد. اساسن با کپی کردن مخالفم و دوست دارم علم تولید کنم. زبانم در سطحی هست که به سادگی بتونم ترجمه کنم. مدرک CPE دارم. خیلی خوشحال میشم اگر لطف کنید و بنده رو رانمایی بفرمایید. که از کجا شروع کنم.
کسبوکار نرمافزار:نخست اینکه خوشحالم. خوب پیش میروید همین راه را ادامه بدهید. جاوا بسیار بیشتر از دلفی به C# شبیه است. البته جدا از چارچوب. در مورد برنامه نویسی من کمی با زبانهای ویژوال (ویژوال استودیو و دلفی) مشکل دارم. با برنامه ویژوال و کاربر پسند مشکلی ندارم ولی اینگونه زبان البته بهتر است بگویم محیطها،به ویژه در آغاز کار، دانشجو را از ژرف شدن در برنامهنویسی دور میکند. وبلاگ نویسی هم لزوما باعث پیشرفت آدم نمیشود. باید دید هدف از آن چیست. اگر نوشته «پندهایی به دانشجویان کامپیوتر: چشمان خود را باز کنید» را با حوصله بیشتری بخوانید شاید مفید باشد. پس از خواندن این نوشته اگر باز پرسشی بود من صمیمانه در خدمتم.
اما اگر خواستید جاوا بیاموزید، پس از آموختن چیزهای آغازین کناب مهم
Effective Java: Programming Language Guide وبرایش دوم (سال ۲۰۰۸) را بخوانید. این کتاب کتابی است بایسته برای هرکسی است که جاوا می خواند. بدبختانه بسیاری را میشناسم که فکر میکنند جاوا میدانند و هنوز این کتاب را نخواندهاند.
ارسال شده در فروردین ۱۰م, ۱۳۸۸ ساعت۷:۵۲ ب.ظ
دیدگاه از طرف مهدی فدایی:
از راهنماییتون خیلی ممنون این کتاب و همچنین کتاب معرفی شده در مورد پایتون رو دانلود کردم. فکر میکنید بین جاوا، پایتون و روبی کدوم یکی در اولویت باشن؟
در مورد وبلاگ نویسی هم یعنی نظرتون اینه که این کار رو شروع نکنم؟
کسبوکار نرمافزار: یک،من در مورد بلاگ نویسی دیدی ندارم. تنها گفتم بستگی دارد. شرایط را بسنجید و بر اساس شرایط تصمیم بگیرید. ببینید شما هم اکنون برنامهنویسی بلد هستید. من آنجا برای کسانی که میخواهند برنامهنویسی را آغاز کنند این پیشنها را کردهام. البته منظورم این نیست که به درد شما نمیخورد. من پیشنهاد میکنم که هم در C++ ژرفتر شوید و برای یک زبان نو هم پایتون را پیشنها میکنم. زبان اینده داری است. البته شما هر زبانی را یاد بگیرید به راحتی در زبان های دیگر میتوانید استاد شوید. شرطش استادی در برنامهنویسی است. مهم این است که هر زبانی کار میکنید با آن حسابی برنامه بنویسید. اگر می]واهید پایتون یاد بگیرید تلاش کنید پایتون ۳ را یاد بگیرید.
راستی یک پرسش بیربط، چون نمیدانم میپرسم، دانشگاه امام رضا (ع) کجاست؟ مشهد؟
ارسال شده در فروردین ۱۱م, ۱۳۸۸ ساعت۱۱:۰۸ ب.ظ
دیدگاه از طرف مهدی فدایی:
در مورد وبلاگ باید بیشتر فکر کنم، شاید با یک وبسایت ساده شروع کردم. گفته شما را تایید میکنم؛ اساتید هم همیشه به این نکته تاکید دارند که دریایی با عمق یک بند انگشت نباشید. ولی چطور میتوان ژرفتر شد؟ من خود برای این کار سوالات ACM حل میکنم و در این مسابقات شرکت میکنم. آیا کافیست؟
دانشگاه امام رضا(ع) در مشهد است و یک دانشگاه غیر انتفاعی وابسته به آستان قدس میباشد. حدود ۱۰ رشته دارد که از رشته های مهندسی، مهندسی نرم افزار، سخت افزار، برق الکترونیک و برق مخابرات را دارا میباشد.
کسبوکار نرمافزار: همانگونه که در پندها گفتهام: در یک پروژه بازمتن (اپن سورس) مشارکت کنید. راهنمای کوچک من را دراین باره بخوانید.
ارسال شده در فروردین ۱۲م, ۱۳۸۸ ساعت۹:۵۴ ق.ظ
دیدگاه از طرف مهدی فدایی:
شاید گفتنش آسان باشد ولی پیدا کردن این طور پروژه ها آن هم در مشهد زیاد کار ساده ای نیست.
کسبوکار نرمافزار: پروژهی بازمتن را در اینترنت باید جستجو کنی نه در مشهد. و مشارکت نیز اینترنتی است. از این گذشته من در مشهد دست کم دو نفر را میشناسم که به شکلی جدی در پروژههای بازمتن مشارکت میکنند. آنها بلاگ هم دارند اینجا را ببین. همینطور به جلسههای گروه کاربران لینوکس مشهد برو.
ارسال شده در فروردین ۱۲م, ۱۳۸۸ ساعت۱۲:۱۸ ب.ظ
دیدگاه از طرف مهدی فدایی:
متوجه شدم!
فقط یک سوال! مشارکت در این پروژه ها به چه صورته؟! هرکس میتونه شرکت کنه؟!
ارسال شده در فروردین ۱۲م, ۱۳۸۸ ساعت۱۰:۴۴ ب.ظ
دیدگاه از طرف محمد:
آقای مهدی فدایی،
باید به مسؤول اون پروژه (یا در پروژههای بزرگ، در قسمتی از سایت پروژه که برای کمککنندگان ساخته شده) درخواست همکاری بدید و احتمالاً استقبال میکنند.
برای پیدا کردن پروژههای متنباز میتونید در سورسفورج (sourceforge.net) دنبال پروژههای متنباز بگردید. احتمالاً در مورد هر موضوعی که بگویید حداقل یک پروژه وجود دارد که نرمافزاری در آن زمینه مینویسد. به خصوص از قسمت جستجو و مرورش استفاده کنید:
http://sourceforge.net/softwaremap/trove_list.php?form_cat=18
در قسمت «Help Wanted» سورسفورج هم پروژههایی که نیاز به کمک دارند درخواست کمک میدهند و میتوانید به آنجا هم نگاه کنید ولی به آن اکتفا نکنید چون ممکن است پروژهی خوبی در آنجا آگهی نداده باشد.
اگر در وب دربارهی «Contributing to Open Source Projects» جستجو کنید مطالب مفیدی پیدا میشود. راهنمای آقای غانمزاده (http://bos.opatan.com/216/contribute-to-open-source-projects/) و راهنمای صفحهی http://barnamenevis.org/forum/showthread.php?t=129102 را هم اگر بخوانید خیلی کمک میکنند.
پیشنهاد میکنم کلاً در این مورد سعی کنید مقداری در وب بگردید و با فرهنگ مشارکت در پروژههای متنباز آشنا بشید، خیلی کمک میکند.
ارسال شده در فروردین ۱۲م, ۱۳۸۸ ساعت۱۱:۴۷ ب.ظ
دیدگاه از طرف محیا فتوت:
تبریک می گم عالی بود لطفا یک دوره آموزش برنامه نویسی به زبان #cهرچه سریعتربرایم ایمیل بفرمایید.
ارسال شده در خرداد ۸م, ۱۳۸۸ ساعت۱۲:۲۲ ب.ظ
دیدگاه از طرف سلمان:
سلام
من هم C++ تدریس میکنم و این IDE رو به سر کلاس معرفی کردم
ولی فکر کنم باید کامپایلر دیگری قبلاً نصب شده باشه و این IDE بیشتر یک رابط کاربر خوبه.
نمیدونم این توربو چی داره که هنوز هم بعضی ها بعد از سی سال به اون علاقمندند؟
کسبوکار نرمافزار: بله همانطور که گفتهام. اگر در ویندوز هستند بهتر است نسخهای که همراه MinGW است را بگیرند که در واقع همان کامپایلر است.
در مورد توربو هم والا نمیدانم چرا اینگونه است ولی حدث میزنم کسانی که آن را معرفی میکنند از تغییر گریزانند و البته حوصله اینکه بروند ببیند چه چیزهای جدیدتری آمده را ندارند.
ارسال شده در تیر ۲۳م, ۱۳۸۸ ساعت۷:۳۵ ب.ظ
دیدگاه از طرف علی:
با تشکر از مقاله مفیدتون برای اون دسته از دوستانی که می خواهند از یک IDE کوچک و تروتمیز لذت ببرند و به ۱۰ زبان مختلف از جمله پایتون و سی و سی ++ برنامه بنویسند و از تعجب بقولی شاخ در بیارند من Geany رو بهتون پیشنهاد می کنم سایت توسعه دهنده جینی این هست http://www.geany.org واقعا در نوع خودش شاهکاره برنامه ای با حجم تنها ۳ مگابایت بزودی رو سایتم یک مقاله راجع بهش می نویسم در آخر اگه دوست داشتین به وبلاک من هم لینک بدین .
ارسال شده در مرداد ۲۴م, ۱۳۸۸ ساعت۱۲:۱۴ ق.ظ
دیدگاه از طرف منصور کریمی:
با عرض سلام و خسته نباشید می خواستم بدونم تفاوت این IDE ها در چیه؟ همشون که یه کار انجام میدن!
راستی یه سؤال دیگه من وقتی تو یکی از سایت های خارجی خوندم کهC++ به خاطر سرعتش تو ساخت بازی های خیلی کاربرد داره ! ولی تو کدوم محیط ازش استفاده می کنن؟ اصلاً مگه برنامه هایی که محیطشون گرافیکی نیست چه جوری و کجا ازش استفاده میشه؟
ارسال شده در شهریور ۵م, ۱۳۸۸ ساعت۱۱:۵۱ ب.ظ
دیدگاه از طرف منصور کریمی:
راستی یادم رفته بود جواب سؤالتون رو بدم که چرا از Turbo c++ هنوزم استفاده میشه چون به نظرم تنها کامپایلری که گرافیک رو می شه در این محیط اجرا کرد چون تو محیط های دیگه می خواستم اجرا کنم جواب نمی داد
ارسال شده در شهریور ۶م, ۱۳۸۸ ساعت۱۲:۱۶ ق.ظ
دیدگاه از طرف البرز کرمی:
با عرض سلام و خسته نباشید از راهنمای تان ممنونم من لیسانس مهندسی نرم افزار از جهاد دانشگاهی کرمانشاه هستم ولی هنوز بطو درست و حسابی با برنامه نویسی آشنا نیستم و خودم از این مسله خیلی ناراحتم وخیلی هم دوست دارم برنامه نویسی یاد بگیرم اگه لطف کنین و مرو راهنمایی کنین خیلی ممنون می شم اینکه از کجا و با چه زبانی بی صبرانه منتظر جوابتون هستم.
ارسال شده در اسفند ۵م, ۱۳۸۸ ساعت۱۱:۲۷ ق.ظ
دیدگاه از طرف کسبوکار نرمافزار:
سلام
این نوشتهی من را بخوانید:
http://bos.opatan.com/160/advice-for-computer-students/
ارسال شده در اسفند ۵م, ۱۳۸۸ ساعت۱:۰۰ ب.ظ
دیدگاه از طرف البرز کرمی:
سلام خسته نباشید از اینکه جوابمو دادین خیلی سپاس گذارم امید وارم در آینده بیشتر از راهنمایی هاتان استفاده کنم.
ارسال شده در اسفند ۶م, ۱۳۸۸ ساعت۸:۵۹ ق.ظ
دیدگاه از طرف البرز کرمی:
من نوشته های شما را با دقت خواندم اما مطالبش بیشتر در ارتبط با دانشجویانی بود که هنوز در سشون تمام نشده اما من این ترم گذشته در سمو تمام کردم معدلمم بد نیست در حدود ۱۵ است.
ارسال شده در اسفند ۸م, ۱۳۸۸ ساعت۹:۲۴ ق.ظ
دیدگاه از طرف البرز کرمی:
سلام خسته نباشید میشه یه کتاب خوب حالا پایتون یا جاوا معرفی کنین که تهیه کنم.
ارسال شده در اسفند ۹م, ۱۳۸۸ ساعت۱۰:۱۸ ب.ظ
دیدگاه از طرف کسبوکار نرمافزار:
نمیدانم در چه حد جاوا میدانید. اگر تازه میخواهید یاد بگیرید کتاب پایه در بازار بسیار است ولی اگر آشنایی متوسطی با جاوا دارید، بهترین کتاب:
Joshua Bloch , Effective Java, Second Edition
است. میتوان گفت کسی که این کتاب را خوب فهمیده و به خوبی بهکار میبرد خیلی خوب جاوا میداند
در مورد پایتون هم:
http://diveintopython3.org/
ارسال شده در اسفند ۱۴م, ۱۳۸۸ ساعت۱:۳۴ ب.ظ