در این بخش به آموزش پایه ای زبان برنامه نویسی C و C++ با زبانی ساده و به روایت تصویر میپردازیم!
این آموزش جدای از توضیح و ارائه مفهوم های کلی بیشتر بروی ذکر نکات کلیدی وفنون و تکنیک های برنامه نویسی C تاکید دارد.
از آنجایی که زبان برنامه نویسی C تفاوت آنچنانی با زبان C++ ندارد به توضیحات کوتاهی درمورد زبان برنامه نویسی C بسنده میکنیم و بیشتر تمرکز خود را بروی زبان C++ میگذاریم.
این آموزش بصورت بخش به بخش و با روش توضیحی بسیار ساده از وبسایت کد فنجونی منتشر میشود.
برای اینکه برنامه نویسی را شروع کنید احتیاج به انتخاب یک زبان برنامه نویسی دارید؛ معمولا زبان C و C++ را در دانشگاه ها به عنوان زبان پیشفرض برنامه نویسی تدریس میکنند چرا که بر این عقیده هستند که بیشتر زبان های دیگر برنامه نویسی برپایه زبان C است بنابراین با درک و شناخت این زبان میتوانید به راحتی زبان های دیگر را هم یاد بگیرید.
البته زبان C و C++ شاید دیگر استفاده چندانی در برنامه های نوشته شده امروزی نداشته باشند و زبان های دیگری مانند Python، JavaScript، VB و… گرفته باشند.
نکته مهم دیگر در این آموزش این است که برخلاف دیگر منابع آموزشی که بیشتر بروی محاسبات ریاضی تاکید کرده اند، سعی داریم از قابلیت های مهم تر این زبان در مثال های خود استفاده کنیم.
در سال ۱۹۶۷ مارتین ریچاردز زبان BCPL را برای نوشتن نرمافزارهای سیستمعامل و کامپایلر در دانشگاه کمبریج ابداع کرد. سپس در سال ۱۹۷۰ کن تامپسون زبان B را بر مبنای ویژگیهای زبان BCPL نوشت و از آن برای ایجاد اولین نسخههای سیستمعامل یونیکس در آزمایشگاههای بل استفاده کرد. زبان C در سال ۱۹۷۲ توسط دنیس ریچی از روی زبان B و BCPL در آزمایشگاه بل ساخته شد و ویژگیهای جدیدی همچون نظارت بر نوع دادهها نیز به آن اضافه شد. ریچی از این زبان برای ایجاد سیستمعامل یونیکس استفاده کرد اما بعدها اکثر سیستمعاملهای دیگر نیز با همین زبان نوشته شدند. این زبان با سرعت بسیاری گسترش یافت و چاپ کتاب “The C Programming Language” در سال ۱۹۷۸ توسط برایان کرنیگان و ریچی باعث رشد روزافزون این زبان در جهان شد.
پیش نیاز های یادگیری زبان برنامه نویسی C
برای یادگیری زبان برنامه نویسی C بهتر است به زبان انگلیسی آشنایی داشته باشید چرا که در کار با کامپایلر و همچنین جستجو در منابع خارجی به آن احتیاج خواهید داشت.
مورد بعدی برای یادگیری علاقه، زمان کافی، صبر کافی و کنجکاوی است!
و اما بخش فنی کار انتخاب یک کامپایلر است.
قبل از اینکه (Compiler) را تعریف کنیم بهتر است بدانید که زبان برنامه نویسی C و C++ زبان های سطح بالا به حساب میآیند این نوع زبان ها به زبان محاوره ای نزدیک ترند و قابلیت های بیشتری نسبت به زبان های برنامه نویسی سطح پایین مانند اسمبلی دارند.
از آنجایی که در دنیای کامپیوتر چیزی جز 0 و 1 وجود ندارد بنابراین کاراکتری غیر از این دو عدد باید به رشته هایی متشکل از این دو عدد تبدیل شوند اینکار را کامپایلر برای شما انجام میدهد!
البته شاید بهتر بود چنین تعریفی از کامپایلر ارائه نمیدادیم چرا که ممکن است ایراد هایی بر این تعریف وارد شود اما تعریف آن آنقدر مهم نیست و بهتر است فقط بدانید که چه کاری انجام میدهد.
دستورات یا همان کدهایی را که به زبان C مینویسیم باید در محیط کامپایلر باشد، تا کامپایلر کد های ما را بررسی کنید و اگر خطا و مشکلی در آنها پیدا نکرد از زبانی که برای ما قابل فهم تر است به زبانی که برای کامپیوتر قابل فهم است ترجمه و پیکربندی کند.
بنابراین در این صورت مفهومی بنام Compile یا همان کامپایل بوجود میآید.
درواقع کامپایل همان تبدیل کدهای قابل فهم برای انسان به کدهای قابل فهم برای ماشین یا همان کامپیوتر است.
کامپایلر های معروف Visual Studio ساخته شده توسط شرکت مایکروسافت است و کامپایلر دیگر Dev CPP ساخته شده توسط شرکت Bloodshed است.
کامپایلر های دیگر هم وجود دارد که از بین آنها موارد ذکر شده بهترین ها هستند و در بین این دو مورد ما با کامپایلر Dev CPP برای راحتی کار و همچنین کم حجم بودنش کار میکنیم.
شروع کار را با معرفی اجزای یک برنامه از نگاه کدهای آن آغاز میکنیم.
شاید این تقسیم بندی را در منابع دیگر برای کدنویسی C و مشتقات آن ندیده باشید و فقط آن را در زبان HTML شاهد باشید اما میخواهیم کد های نوشته شده به زبان C را هم به دو بخش Header و Body به معنای سربرگ و بدنه تقسیم کنیم.
دلیل این تقسیم بندی از آن جهت است که کدهایی که در بخش Header قرار میگیرند برای کاربری که در حال کار با برنامه نوشته شده توسط شماست، قابل مشاهده نیست و تنها کدهای موجود در بخش Body ممکن است برای کاربر قابل مشاهده باشد.
هر کدی که در محیط کامپایلر مینویسید باید برای کامپایلر شناخته شده باشد و متوجه نحوه برخورد با آن کد باشد به همین دلیل فایل های بنام فایل های کتابخانه ای ایجاد شده است که تمام دستورات قابل استفاده در زبان C را در آن تعریف کرده اند، اما تمام دستورات در یک فایل وجود ندارد بلکه باید برای دسته ای از دستورات یک فایل کتابخانه ای جدا را استفاده و در واقع ضمیمه برنامه خود کنید!
شکل ضمیمه کردن فایل های کتابخانه ای در زبان C :
#include<stdio.h>
در کد بالا ما کتابخانه ای با نام stdio.h را به فایل برنامه خود اضافه کردیم تا دستورات بعدی ما از این کتابخانه شناسایی شود.
در بخش Header ممکن است کد های بیشتری قرار بگیرد که ما برای شروع کار تنها به ضمیمه کردن یک فایل کتابخانه ای بسنده میکنیم!
یک برنامه ساده برای چاپ یک جمله:
#include<stdio.h> main(){ printf(“ It’s a Test Program”); }
در چند خط بالاتر گفتیم که فایل های کتابخانه ای را برای شناساندن دستورات مورد استفاده به کامپایلر ضمیمه میکنیم؛ کتابخانه
stdio.h را به این خاطر به این برنامه ضمیمه کردیم که از دستور printf استفاده کردیم.
اما هر برنامه در زبان C حتما باید دارای یک تابع اصلی باشد، مفهوم تابع ها را در بخش های آینده بطور مفصل توضیح میدهیم اما تا به اینجا بدانید که تمام دستورات باید در داخل تابع اصلی یعنی main() قرار بگیرند.
مفهوم آکولاد در برنامه تعریف یک Scope و یا همان ناحیه است؛ به عنوان مثال تابع main در این برنامه و در تمام برنامه ها یک ناحیه دارد که با آکلود باز و بسته مشخص شده است؛ هر کدی و دستوری که در داخل این دو زوج آکولاد قرار بگیرد زیر مجموعه تابع main است.
همانطور که در مثال بالا قابل مشاهده است دستور
printf(“ It’s a Test Program”);
زیر مجموعه تابع اصلی است.
اما در نهایت خروجی این برنامه چاپ یک پیام در صفحه نمایش کاربر است و آن پیام
It’s a Test Program
است. بنابراین از اینجا مشخص میشود که printf دستور چاپ یک مقدار یا یک پیام متنی است و شکل نوشتاری آن هم که در بالا مشخص شده است.
اما نکته مهمی را باید بعد از نوشتن هر خط کد رعایت کنید و آن هم گذاشتن علامت ; در انتهای هر دستور است، این علامت به معنای انتها و اتمام دستور است.
تا این اینجا برای بخش یک این آموزش بسنده میکنیم! 🙂