خوش آموز درخت تو گر بار دانش بگیرد، به زیر آوری چرخ نیلوفری را


آموزش زبان ++C : ساختار یک برنامه

آموزش زبان ++C : ساختار یک برنامه
نویسنده : امیر انصاری
یک برنامه کامپیوتری، دنباله ای از دستورات است که به کامپیوتر می گوید، چه کاری باید انجام بدهد.

سیستم یکپارچۀ سازمانی راهکار



بیانیه ها (Statements)


شایع ترین نوع دستورالعمل ها در یک برنامه بیانیه ها (Statements) می باشند. بیانیه (Statement) در زبان برنامه نویسی ++C کوچکترین واحد مستقل این زبان می باشد. اگر بخواهیم بیانیه را با زبان انسانها مقایسه کنیم، مشابه جمله می باشد. ما جملات را برای مطرح کردن ایده هایمان بیان می کنیم. در ++C ما بیانیه ها (Statements) را می نویسیم تا به کامپایلر بگویید می خواهیم کاری را انجام بدهیم. بیانیه ها (Statements) در زبان ++C معمولاً با یک علامت سمی کالن (semicolon = ;) خاتمه می یابند.

در زبان ++C انواع بیانیه های (Statements) مختلفی وجود دارد. موارد زیر برخی از رایج ترین انواع بیانیه ها (Statements) می باشند :

int x;
x = 5;
std::cout << x;

در اینجا int x یک بیانیه برای معرفی (declaration) متغیر است. این بیانیه خاص به کامپایلر می گوید که x یک متغیر است و قرار است در آن یک مقدار عدد صحیح (int) نگهداری شود. در برنامه نویسی، یک متغیر (variable) نامی است که به بخشی از حافظه تخصیص داده می شود تا مقدار خاصی را در آن نگهداری کنند. متغیرها قبل از آن که مورد استفاده قرار بگیرند، باید معرفی شوند. ما به زودی در مورد متغیرها بیشتر صحبت خواهیم کرد.

کد x = 5 یک بیانیه انتساب (assignment) می باشد. طی این بیانیه مقدار 5 به متغیر x نسبت داده می شود.

کد std::cout << x یک بیانیه خروجی (output) می باشد. این کد باعث می شود تا مقدار 5 که به متغیر x نسبت داده شده است، به خروجی (که در اینجا صفحه نمایش می باشد) ارسال گردد.

عبارت ها (Expressions)


کامپایلر همچنین قادر است تا عبارت ها (Expressions) را نیز محاسبه کند. یک عبارت (Expression) یک موجودیت ریاضی می باشد که به یک مقدار ارزیابی می شود. به عنوان مثال عبارت 2+3 به مقدار 5 ارزیابی می شود. عبارت ها (Expressions) می توانند شامل مقادیر (مثل عدد 2)، متغیرها (مثل متغیر x)، عملگرها (مثل عملگر +) و توابع (توابع بر اساس یکسری پارامترهای ورودی، مقدار خروجی برمی گردانند) باشند. عبارت ها (Expressions) می توانند منحصر بفرد (singular) باشند (مانند 2 یا مانند X) و یا اینکه ترکیبی (compound) باشند. مثال زیر چند عبارت ترکیبی را به شما نشان می دهد.

2+3, 2+x, x+y, or (2+x)*(y-3)


به عنوان مثال عبارت x = 2 + 3 یک بیانیه انتساب (assignment statement) صحیح می باشد. عبارت 2 + 3 به 5 ارزیابی می شود. سپس مقدار 5 به متغیر x منتسب می گردد.

توابع (Functions)


در زبان برنامه نویسی ++C ، بیانیه ها (Statements) معمولا در واحدهایی با نام تابع (Function) دسته بندی می شوند. یک تابع (Function) مجموعه ای از بیانیه ها (Statements) می باشد که به ترتیب و پشت سر هم اجرا می شوند. هر برنامه ++C الزاماً باید دارای یک تابع اصلی با نام تابع main باشد. هنگامی که یک برنامه نوشته شده با زبان ++C اجرا می شود، اجرای آن از اولین بیانیه موجود در تابع main آغاز خواهد شد. توابع (Functions) معمولاً به این منظور نوشته می شوند تا یک کار خاص را انجام بدهند. به عنوان مثال از تابعی با نام “max” این انتظار می رود که یکسری عدد ورودی را بگیرد و طی بیانیه هایی محاسبه کند که کدام عدد بزرگتر از بقیه است و آن را به عنوان خروجی تابع بازگرداند. یا از تابعی با نام “calculateGrade” انتظار می رود تا نمرات یک دانش آموز را محاسبه کند. بعدها در مورد توابع خیلی بیشتر وارد جزئیات خواهیم شد.

نکته مفید : ایده خوبی است که تابع main برنامه خود را در داخل فایلی با همین نام و پسوند cpp قرار بدهید. و یا اینکه تابع main خود را در داخل فایلی هم نام با پروژه تان قرار دهید. به عنوان مثال اگر مشغول نوشتن یک برنامه بازی شطرنج (Chess) می باشید، تابع main خود را در داخل فایلی با نام chess.cpp قرار دهید.

کتابخانه های کد و کتابخانه ی کد استاندارد ++C


یک کتابخانه کد، شامل یک سری کدهای از پیش کامپایل شده می باشد (برای مثال توابع) که به صورت بسته بندی شده (packaged up)، جهت استفاده مجدد در برنامه های مختلف، در اختیار برنامه نویسان قرار می گیرد. کتابخانه های کد (Libraries) یک روش رایج برای گسترش توانایی برنامه های شما می باشد. به عنوان مثال اگر شما مشغول نوشتن یک بازی هستید، ممکن است بخواهید تا از کتابخانه های کد مربوط به گرافیک و صوت استفاده نمایید.

هسته اصلی زبان ++C در واقع بسیار کوچک و حداقلی می باشد (و شما در مورد این هسته در طول این دوره آموزشی همه چیز را خواهید دانست). با این حال، همراه با ++C یک کتابخانه کد با نام کتابخانه کد استاندارد (C++ standard library) نیز ارائه می شود، این کتابخانۀ کد شامل قابلیت های بیشتر برای شما می باشد. کتابخانه استاندارد ++C به بخش های مختلفی تقسیم شده است (گاهی اوقات به هر کدام از این بخشها نیز کتابخانه های جداگانه ای می گویند، هر چند که آنها فقط بخشی از کتابخانه استاندارد ++C می باشند)، هر کدام از این بخش ها بر روی ارائه قابلیت ها و کارکردهای خاصی متمرکز شده اند. به عنوان مثال بخشی از این کتابخانه استاندارد iostream نام دارد که بر روی قابلیت ها و کارکردهای مربوط به ارسال مقادیر به خروجی (مانیتور) و دریافت مقادیر از کاربر (صفحه کلید) تمرکز دارد.

نگاهی به یک برنامه نمونه


حالا که یک درک مختصر از بیانیه ها (Statements)، عبارت ها (Expressions)، توابع (Functions) و کتابخانه های کد، پیدا کردید، بیایید دوباره یک نگاهی به برنامه "سلام دنیا!" بیندازیم :

#include "iostream"

int main()
{
std::cout << "Hello world!";
return 0;
}

در خط 1 از این برنامه، یک نوع خاص از بیانیه ها (Statements)، با نام دستورات پیش پردازنده (preprocessor directive) استفاده کرده ایم. دستورات پیش پردازنده (preprocessor directive) به کامپایلر می گویند تا یک کار خاص را انجام بدهد. در این مورد ما به کامپایلر گفته ایم تا محتویات هدر iostream را که بخشی از کتابخانه استاندارد ++C می باشد، به برنامه ما اضافه کند. هدر iostream به ما این امکان را می دهد تا بتوانیم از قابلیت های نوشته شده در کتابخانه iostream استفاده کنیم، قابلیتی که ما در این کد از آن استفاده کرده ایم، اینست که متنی را در خروجی (صفحه نمایش) چاپ کنیم.

خطهای 2 و 3 و 4 خالی می باشند. خط های خالی توسط کامپایلر نادیده گرفته می شوند.

در خط 5 تابع main معرفی شده است. در مورد تابع main در همین درس نکاتی را دانستید، این تابع یک تابع الزامی می باشد که باید در هر برنامه ++C وجود داشته باشد.

در خط های 7 و 13 به کامپایلر گفته می شود که کدام قسمت از کدها مربوط به بدنه تابع main می باشند. همه آن چیزهایی که مابین آکولاد باز در خط 7 و همینطور آکولاد بسته در خط 13 وجود دارند، بخشی از تابع main می باشند.

در خط 9 اولین بیانیه تابع main وجود دارد. اجرای برنامه ++C ما، از این خط آغاز خواهد شد. از آنجا که بیانیه ها (Statements) در زبان ++C معمولا با علامتی سمی کالن خاتمه می یابند، در اینجا نیز در انتهای بیانیه این علامت را مشاهده می کنید. کد std::cout یک شیء (object) خاص می باشد که متنی را در صفحه نمایش چاپ می کند. نماد << یک عملگر می باشد (درست مانند عملگر + که در ریاضیات از آن استفاده می کنیم)، نام این نماد عملگر خروجی می باشد. شیء std::cout می داند که هر چیزی را که بعد از نماد عملگر خروجی قرار داشته باشد، باید به صفحه نمایش ارسال کند، در اینجا ما متن “Hello world!” را برای ارسال به صفحه نمایش قرار داده ایم.

خط 11 یک نوع بیانیه جدید دیگر می باشد که به آن بیانیه بازگشت (return statement) گفته می شود. وقتی اجرای یک برنامه به پایان می رسد تابع main با بیانیه return یک مقدار را که نشان دهنده موفقیت یا عدم موفقیت اجرای برنامه می باشد، برای سیستم عامل می فرستد.

در اینجا بیانیه return ما مقدار 0 را به سیستم عامل برمیگرداند که معنایش اینست که «همه چیز خوب پیش رفت!». معمولاً مقادیر غیر از صفر به این معنا می باشند که اشتباهی رخ داده است، و برنامه بی نتیجه مانده است. وقتی که به درس توابع (Functions) برسیم در مورد بیانیه return بیشتر صحبت خواهیم کرد.

تمامی برنامه هایی که در زبان ++C خواهیم نوشت، از این الگو تبعیت می کنند. ما در مورد جزئیات هر کدام از دستوراتی که اینجا دیدید، در درس های آینده صحبت خواهیم کرد.

نکته مهم : به خاطر داشته باشید که کاربران نرم افزار ویژوال استودیو باید خط کد زیر را در ابتدای همه برنامه هایشان اضافه کنند.

#include “stdafx.h”


نحوه نگارش (Syntax) و خطاهای نگارشی


در زبان انگلیسی یا هر زبان دیگری، قوانین نگارشی خاصی با اسامی نحو یا گرامر یا دستور زبان وجود دارند، که طبیعتاً هر شخصی با توجه به زبانی که صحبت می کند تا حدودی با این قوانین آشنایی دارد. به عنوان مثال، هر جمله با یک نقطه پایان می یابد. قوانین حاکم بر اینکه چگونه جمله ها ساختار بندی گردند را نحوه نگارش (Syntax) می نامند. به عنوان مثال اگر شما قرار دادن نقطه در پایان جمله را فراموش کنید و جمله بعدی را مستقیماً به آن بچسبانید، قوانین نحوه نگارش (Syntax) را زیر پا گذاشته اید.

زبان برنامه نویسی ++C نیز مانند زبان های معمولی دارای قوانینی برای نحوه نگارش (Syntax) می باشد. برنامه هایی که شما می نویسید باید این قوانین را رعایت کرده باشند تا کامپایلر بتواند به درستی آنها را درک کند. وقتی برنامه خود را کامپایل می کنید، یکی از وظایف کامپایلر اینست که مطمئن شود کدهای شما قوانین نحوه نگارش (Syntax) زبان ++C را رعایت کرده باشند. اگر این قوانین را رعایت نکرده باشید، کامپایلر تولید خطا می کند، که اصطلاحاً به اینگونه خطاها، خطاهای نگارشی (syntax error) می گویند.

به عنوان مثال، در پایان بیانیه ها (Statements) الزاماً باید علامت سمی کالن (;) قرار داده شود. بیایید ببینیم اگر سمی کالن را فراموش کنیم، چه اتفاقی می افتد.

#include "iostream"

int main()
{
std::cout << "Hello world!"
return 0;
}

اگر این کد را در ویژوال استودیو 2012 اجرا کنید با خطای زیر مواجه خواهید شد :

error C2143: syntax error : missing ';' before 'return'

البته در کنار متن خطا، اطلاعات بیشتری همچون شماره خطی که در آنجا خطا اتفاق افتاده است، فایل cpp مربوطه و ... نیز به شما نمایش داده می شود. تصویر زیر این خطا را در محیط ویژوال استودیو 2012 به شما نشان می دهد.

آموزش زبان ++C : ساختار یک برنامه
اینکه موقع نوشتن کدهای یک برنامه، دچار خطاهای نگارشی شوید، یک مسالۀ عادی است و برای هر برنامه نویسی، حتی حرفه ای ها ممکن است پیش بیاید. خوشبختانه با راهنمایی های کامپایلر این نوع خطاها به راحتی قابل شناسایی و قابل برطرف کردن می باشند.

برای مشاهده فهرست آموزش های این دوره آموزشی بر روی لینک زیر کلیک کنید :


آموزش قبلی : آموزش زبان ++C : اولین برنامه خود را بنویسید.

آموزش بعدی : آموزش زبان ++C : درج توضیحات در کد (Comments)



نمایش دیدگاه ها (0 دیدگاه)

دیدگاه خود را ثبت کنید:

انتخاب تصویر ویرایش حذف
توجه! حداکثر حجم مجاز برای تصویر 500 کیلوبایت می باشد.