مبانی برنامه نویسی

کتاب‌های مبانی الگوریتم نویسی

  • نخستین درس در علم كامپیوتر (جلد اول)؛ ناشر : مركز نشر دانشگاهی، نویسندگان: فورسایت، كینان، اورگانیك، ستنبرگ؛ ترجمه : احمد توحیدی، محمد روغنی، ناصر قاسم آقایی، مصطفی كرمانی؛ ویراسته : عفت خضرائی، ابراهیم نقیب‌زاده مشایخ؛ تاریخ اولین چاپ : 1377؛ چاپ آخر : چاپ سوم - 1389.

  • الگوریتم و فلوچارت؛ شهریار رسولی؛ نشر: ارکان دانش (30 مهر، 1390).

کتاب‌های زبان C

  • مبانی کامپیوتر و برنامه نویسی به زبان C؛ محمد داورپناه جزی؛ نشر: دانشگاه صنعتی اصفهان، دفتر انتشارات (21 دی، 1390).

  • نظریه و مسائل برنامه نویسی به زبان ‭ C‬(سی)؛ نوشته بایرون اس؛ گاتفرید؛ ترجمه خدایار صادقی؛ ویراستار امیربانو قاسمی‌نژاد؛ قم: سازمان تحقیقات، آموزش و ترویج کشاورزی؛ ۱۳۷۱

کامپایل و اجرای برخط

کامپایلرها

در این بخش فهرست تعدادی از کامپایلرهای مناسب برای انجام تمرین‌ها و پروژه‌های درسی آورده شده است.

فهرستی از کامپایلرها

ویندوز

Pre-Built Binaries:

https://releases.llvm.org/download.html

https://github.com/llvm/llvm-project/releases/

ویرایشگرها

محیط‌های یکپارچهٔ اجرا (IDE)

یکی از مشکل‌هایی که اغلب برنامه نویسان در مبانی برنامه نویسی با آن روبرو هستند به کار بردن ابزارهایی است که بتواند کار آنها را ساده‌تر نماید و به سادگی بتوانند پروژه‌های خود را انجام دهند. البته گزینهٔ شخصی من برای نوشتن کدهای ساده به کار بردن ترکیب geany به عنوان ویرایشگر و کامپایلر gcc است.

به هر حال چون بیشتر برنامه نویسان مبانی علاقه‌مند هستند که بتوانند تمرین‌ها و پروژه‌های خود را انجام دهند در این بخش پیشنهادهایی به آنها می‌شود که به سادگی بتوانند کار خود را انجام دهند.

یکی از مسأله‌هایی که دانشجویان به آن توجه ندارند این است که نوشتن برنامه‌ها با ابزارهایی که روی رایانهٔ آنها نصب می‌شود و اغلب به کار می‌برند این است که شاید دیگران آن ابزارها را به کار نبرند و از سوی دیگر کسی که می‌خواهد برنامهٔ آنها را تحویل بگیرد نتواند آنها اجرا کند زیرا استاندارد را رعایت نکرده‌اند. بنابراین پیشنهاد می‌شود به صورت استاندارد برنامه نویسی کنند تا برنامهٔ آنها بتواند در هر جایی اجرا شود. همچنین به این توجه نمایند که در هنگام تحویل پروژه‌های‌شان بتوانند به سادگی برنامهٔ خود را بر روی رایانه‌هایی تحویل دهند که نیاز است که کامپایلر روی آنها نیست و باید در همان زمان برنامه را روی آن رایانه تغییر دهند و تحویل دهند. بنابراین پیشنهادهایی که برای نوشتن کد به کمک محیط‌های مجتمع اجرا دارم به ترتیب به قرار زیر است:

  • orwelldevcpp نسخه‌های تازه‌تری از DevCpp است. نسخهٔ قابل حمل آن در Portable orwelldevcpp گذاشته شده است.

  • codeblocks این نرم افزار به خوبی بر روی سیستم عامل‌های گوناگون نصب می‌شود و می‌تواند کار خود را انجام دهد. در بخش Downloads می‌توان نسخه‌‌های گوناگون آن را اجرا نمود.

  • Ch : یکی از محیط‌های جالب یکپارچه برنامه نویسی است که شاید بهترین ویژگی آن مفسر بودن آن برای زبان C است که به خوبی مشکل‌های کار با اشاره‌گرها را گزارش می‌کند و البته بدی آن این است که پس از گزارش اخطار برای یک اشاره‌گر یا بیرون زدن از آرایه برای آن حافظه‌ای اختصاص می‌دهد تا برنامه کار خود را ادامه دهد و شاید برنامه نویس متوجه نشود که مشکلی برایش پیش آمده است. این نرم افزار توانمند بر روی سیستم عامل‌های گوناگون اجرا می‌شود و دارای نسخه‌های گوناگونی است. نسخه‌ای که برای انجام کارهای آموزشی بسیار مناسب است ولی نمی‌توان آن را برای کارهای تجاری به کار برد نسخهٔ student آن است که همراه ویرایشگر ChIDE است.

  • Qt Creator

  • kdevelop

  • cbuilder

  • DevCpp : یکی از محیط‌های اجرای یکپارچه مناسب دیگر است.ولی چند سال است که به روز نشده است و البته مشکل‌هایی دارد. گمان می‌کنم 7پشتیبانی این نرم افزار از conio.h به دلیل استاندارد نبودن چندان خوب نیست.

  • Visual Studio Express : فقط برای سیستم عامل ویندوز است و البته نرم افزار سنگینی است که روی رایانه‌های قدیمی نمی‌تواند اجرا شود.

  • xcode : فقط برای سیستم عامل‌های شرکت مکینتاش است.

پردازنده‌های ویژه

در این بخش ابزارها و کامپایلرهایی گذاشته می‌شود که برای پردازنده‌ها و کنترلگرهای خاص به زبان C آماده شده‌اند.

برنامه‌های نمونه

#include<stdio.h>
int main(){
  printf("**********");
  printf("**********");
  printf("**********");
  printf("**********");
  printf("**********");
  printf("**********");
  printf("**********");
  return 0;
}

کامپایلر C و C++ به جاوااسکریپت

  • Emscripten : با این ابزار بسادگی می‌توانید برنامه‌های به زبان C را به زبان جاوااسکریپت تبدیل کنید.

  • Cheerp : این ابزار فقط برای زبان C++ است.

وب‌گاه‌هایی دربارهٔ زبان C