تماس درباره   صفحه اصلی
  زبان ++C > مقدمه  
 
 

مقدمه


تاريخچه
ساختار ساده يک برنامه
برخی از ويژگی های زبان
مراحل پياده سازی برنامه


تاريخچه

++C بر مبنای زبان برنامه نويسی C است. زبان C در سال 1972 در آزمايشگاه Bell Telephone نوسط Dennis Ritchie به عنوان زبان پياده سازی برای سيستم عامل يونيکس طراحی شد. مقدار زيادی از برنامه نويسی يونيکس با زبان C انجام شده است. C در نتيجه تکوين پروسه ای است که با يک زبان قديمی تر به نام BCPL شروع شده بود. زبان BCPL زبانی بر اساس زبان B بوده است که توسط Ken Thompson در آزمايشگاه Bell طراحی شده بود.

به دليل اينکه C زبان قدرتمند و انعطاف پذيری بود، سريعا گسترش پيدا کرد. برنامه نويسان شروع به استفاده از آن برای انواع برنامه ها کردند. سازمان های مختلف شروع به پياده سازی نسخه های C خود شدند. تا اينکه در سال 1983، ANSI استاندارد C را تنظيم کرد که به عنوان ANSI Standard C شناخته می شود. کامپايلرهای بعدی C از اين استاندارد پيروی کردند.

زبان برنامه نويسي ++C بر اساس زبان C توسط Bjarne Stroustrup ابداع شد. آنچه امروزه ++C ناميده مي شود از سال 1979 آغاز شده است. نسخه اوليه آن "C with classes" ناميده شد که بعدا به ++C تغيير کرد. ++C کليه ويژگی های زبان C را داراست. تفاوت بين آنها اينستکه ++C شي گرائی را پشتيبانی می کند. البته پيشرفت های ديگری هم دارد برای مثال کار با رشته ها و سروکارداشتن با خطاها در آن قوی تر است.

نسخه اول ++C ابتدا در AT&T در سال 1983 استفاده شد. اولين نسخه تجاری آن در اکتبر 1985 به بازار آمد. در سال 1998 ANSI و ISO متفقا ++C را استاندارد کردند. به همين دليل اغلب ++C محض را ANSI Standard ++C يا ISO Standard ++C می نامند.

با تکامل ++C يک کتابخانه استاندارد هم با آن شکل گرفت. اولين کتابخانه استاندارد ++C کتابخانه stream I/O بود که امکاناتی برای جايگزينی توابع قديمی C مانند printf و scanf مهيا کرد. بعد از آن مهمترين کتابخانه استاندارد کتابخانه Standard Template بود.

توجه داشته باشيد که کد C در کامپايلر ++C کامپايل می شود اما عکس آن صادق نيست و کد ++C لزوما در کامپايلر C کامپايل نمی شود.


ساختار ساده يک برنامه

برای آشنائی سريعتر با ساختار برنامه ++C يک برنامه ساده کوچک در اينجا ارائه می شود که ممکن است در وحله اول کاملا قابل درک نباشد. توضيحات بيشتر درباره برنامه در دنباله آن داده شده است.


مثال. برنامه Hello.cpp يک پيغام را روی صفحه نمايش می دهد.

/* HELLO.CPP */
#include <iostream>
using namespace std;
int main()
{
   //print hello word on the screen
   cout << "Hello World!\n";
   return 0;
}


تابع اصلی

در زبان C برنامه از يک سری تابع (function) تشکيل می شود (توضيحات بيشتر درباره تابع). هر برنامه الزاما يک تابع اصلی به نام main دارد که برنامه از آن شروع به اجرا می کند.

نوع برگشتی تابع در خط اعلان تابع و قبل از نام تابع تعيين می شود. که برای تابع اصلی معمولا نوع صحيح يا int درنظر گرفته می شود. چون برخی از سيستم عامل ها نيازدارند برنامه مقداری را به آنها برگرداند تابع main يک عدد صحيح را بر می گرداند تا سيستم عامل متوجه بشود که همه چيز درست است. البته در بعضی موارد تابع اصلی را می توان به صورت void main() هم تعريف کرد. کلمه void مشخص می کند تابع چيزی بر نمی گرداند.

مقداری که تابع بر می گرداند در مقابل دستور return نوشته می شود. اگر تابعی مقداری برنگرداند و از نوع void تعريف شده باشد نيازی به استفاده از دستور return در تابع نيست.

بدنه توابع و بلوک های کد مابين دو کروشه باز و بسته { } قرار می گيرند. کروشه مرز يک بلاک از کد را معين می کند. وقت کنيد که برای هر کروشه باز { يک کروشه بسته } بايد وجود داشته باشد.

int main()
{
   return 0;
}


فايل های ضميمه

معمولا اولين عمل در هر برنامه C++ ضميمه کردن فايل های هدر است. فايل های هدر (include file) فايل هائی شامل تعاريف توابع يا کلاس ها هستند. اگر توابع يا متغيرهائی وجود دارند که در برنامه های مختلف مورد استفاده قرار می گيرند بهتر است در يک فايل هدر قرار داده شوند، سپس فايل هدر در هرجائی که از آن استفاده می شود ضميمه شود.

برای ضميمه کردن يک فايل به برنامه علامت # سپس include و نام فايل ضميمه در داخل < > ذکر می شود.

اولين خط برنامه Hello.cpp فايل هدر iostream.h را ضميمه برنامه می کند.

#include <iostream.h>

تعداد زيادی از فايل های هدر در ++C برای استفاده از توابع کتابخانه ای همراه با نصب کامپايلر در اختيار برنامه نويس قرار می گيرند. يکی از اين فايل ها فايل هدر iostream.h است که توابعی برای عمليات ورودی و خروجی دارد. اگر اين فايل در ابتدای برنامه ضميمه شود کليه کلاس ها و توابع تعريف شده در آن قابل دسترسی هستند.

پسوند .h مشخص مي کند يک فايل هدر است. اگر کامپايلر C را استفاده می کنيد پسوند .h بايد مشخص شود ولی در ++C نياز نيست. البته بهتر است که ذکر شود تا توسط کامپايلرها پشتيبانی شود.


نمايش پيغام

تابع cout برای نمايش داده ها و پيغام ها روی صفحه نمايش بکار می رود. اين توابع در فايل هدر iostream قرار دارد که بايد به برنامه ضميمه شده باشد.

cout << "Hello World!\n";

در زبان ++C يک رشته کاراکتری بايد بين دو علامت " " محصور شود

n\ به کامپايلر می گويد از يک خط جديد شروع کند.


فضای اسمی

فضای اسمی (namespace) اجازه گروه بندی مجموعه ای از توابع يا اشيای سراسری را تحت يک نام می دهد (توضيحات بيشتر درباره فضاهای اسمی). وقتی يک فايل هدر اضافه می شود محتويات آن در فضای اسمی استاندارد std قرار می گيرد. برای دسترسی به کتابخانه های استاندارد درون std بايد از عملگر :: استفاده شود.

مثال. وقتی iostream در برنامه ضميمه شده است برای دسترسی به تابع cout از اين کتابخانه بايد فضای اسمی std قبل از آن و بدنبالش علامت :: تعيين شود:

Std::cout <<"Hello World!\n";

البته به سادگی می توان با استفاده از عبارت using فضای اسمی مورد استفاده را در برنامه تعيين کرد و به عناصر درون std تنها با صدازدن نامشان دسترسی پيدا کرد.

وقتی پسوند .h اضافه می شود نيازی به اضافه کردن فضای اسمی استاندارد نيست ولی به طور معمول بهتر است که از استاندارد ANSI/ISO تبعيت بشود و فضای اسمی std توسط عبارت using تعيين شود.

نکته. کامپايلرهای قديمی عبارت using را قبول نمی کنند.


توضيحات

توضيحات (comment) عباراتی هستند که هنگام ترجمه ناديده گرفته می شوند. توضيحات شرح مرحله به مرحله از عمليات برنامه را برای برنامه نويس، يا هر فردی که روی کد برنامه کار می کند، ارائه می دهد.

در ++C دو روش برای ساختن توضيح وجود دارد؛ يک روش که برای توضيحات کوتاه است با علامت // شروع می شود. کامپايلر از اين علامت تا انتهای خط را به عنوان توضيح درنظر می گيرد.

روش ديگر که معمولا برای توضيحات طولانی تر استفاده می شود بستن توضيحات بين علائم /* */ است.

//print hello word on the screen
/* This is my first program in C++ */

نکته. توضيحات يک خطی به دنبال علامت // تنها در کامپايلرهای ++C قابل استفاده است.


برخی از ويژگی های زبان

زبان های برنامه نويسی مختلفی در دنيا وجود دارد که برای برنامه نويسی مناسب هستند. اما به چند دليل برنامه نويسان حرفه ای C را ترجيح می دهند. برخی از ويژگی های زبان C/C++ عبارتند از:

• ++C زبان برنامه نويسی قدرتمند و انعطاف پذيری است و محدوديتی برای کارهائی که می توان توسط آن انجام داد وجود ندارد. و برای پروژه هائی مانند ساخت سيستم های عامل، پردازشگرهای متن، گرافيک، صفحات گسترده و حتی کامپايلرهای زبان های ديگر بکار می رود.
• انواع مختلفی از کامپايلرهای C، C++، Visual C و برنامه های سودمند جانبی موجود هستند.
• ++C زبان قابل حملی (portable) است يعنی برنامه ای که به زبان ++C نوشته می شود با حداقل تغييرات روی هر سيستمی اجرا شود.
• زبان ++C دارای تعداد کمی کلمات کليدی است. ولی با آن می توان هر برنامه را نوشت.
• هر عبارت در ++C به يک سميکولن (;) ختم می شود. سميکولن برای کامپايلر يک دستور يا عبارت از کد را مشخص می کند.
• ++C حساس به متن است يعني بين حروف بزرگ و کوچک تفاوت قائل می شود. بنابراين دقت کنيد int main() با int Main() يکسان نيست. خيلی از اشتباهات مبتديان به دليل بی توجهی به اين نکته بروز می کند.


مراحل پياده سازی برنامه

آماده سازی منطق برنامه

قبل از نوشتن برنامه بايد مراحل حل مسئله را تعيين کنيد. ابتدا مشکل را شناخته، راه حل مربوط به آن را پيدا کنيد. سپس اقدام به نوشتن برنامه نمائيد.

تهيه کد برنامه

کد برنامه (source code) مجموعه عبارات يا دستوراتی است کامپيوتر را هدايت می کند تا عمل موردنظر شما انجام بپذيرد. از يک ويرايشگر متن برای وارد کردن کد برنامه استفاده کنيد. اغلب کامپايلرهای نظير Borland's Turbo C++ و Visual C/C++ همراه با يک محيط مجتمع (IDE) می آيند که اجازه تايپ، کامپايل و لينک برنامه را در يک محيط مناسب می دهند. در غيراينصورت از ويرايشگرهای متن ديگر مانند Edit، Notepad و Microsoft Windows می توانيد استفاده کنيد و برنامه خود را با فرمت ASCII روی ديسک ذخيره نمائيد.

کد برنامه را با پسوند cpp. ذخيره کنيد.

ترجمه کد برنامه

برای ترجمه يک برنامه C/C++ کامپايلرهای مختلفی وجود دارد. نسخه رايگان کامپايلر Borland C++ محيط مجتمع پياده سازی ندارد و يک کامپايلر خط فرمانی است يعنی بايد در محيط سيستم عامل DOS فرمان ترجمه برنامه صادر شود.

مثال. اگر Borland's Turbo C++ را استفاده می کنيد، برای ترجمه برنامه Hello.cpp فرمان زير را در خط فرمان سيستم عامل بايد وارد نمائيد:

bcc Hello.cpp

ترجمه برنامه در کامپايلرهای با محيط مجتمع (مانند Borland C++ 3.1) يا محيط گرافيکی (مانند Microsoft Visual C++) راحت تر صورت می گيرد. کافی است ازمنو گزينه Compile يا Run را انتخاب کنيد.

اگر کامپايلر خطائی در برنامه مشاهده نکرد فايل مقصد حاوی کد زبان ماشين برنامه هم نام برنامه و با پسوند obj. ايجاد می شود. اگر خطائی در برنامه وجود داشته باشد گزارش خطا توسط کامپايلر تهيه می شود در اينصورت بايد به کد برنامه مراجعه کرده خطا را برطرف کنيد.

تهيه برنامه اجرائی

وقتی از توابع کتابخانه ای استفاده می کنيد، فايل مقصد توليد شده بايد با کد مقصد تابع کتابخانه ترکيب شود تا فايل اجرائی نهائی شکل بگيرد. اين فرآيند linking نام دارد که توسط برنامه لينکر (linker) انجام می گيرد. اگر لينکر در اين فرآيند با مشکلی مواجه نشود، يک برنامه اجرائی روی ديسک هم نام برنامه و با پسوند exe. ايجاد می شود.

اجرای برنامه

با توليد برنامه اجرائی، می توانيد آنرا اجرا کنيد. بايد برنامه را تست کنيد تا مطمئن شويد درست کار می کند. اگر نتايجی متفاوت از آنچه انتظار داشتيد دريافت کرديد بايد به قدم اول برگشته علت خطا را پيدا کنيد و کد برنامه را اصلاح کنيد و مجددا برنامه را ترجمه، لينک و اجرا کنيد.

در اکثر کامپايلرها امکان انجام مراحل ترجمه، لينک و اجرا در يک مرحله وجود دارد، گرچه در اينجا به عنوان مراحل جداگانه مطرح شد.


مثال. اگر برنامه Hello.cpp موفق ترجمه و لينک شود فايل های Hello.obj که شامل کد زبان ماشين برنامه و Hello.exe که برنامه اجرائی توليد شده است روی ديسک ايجاد می شود. با اجرای برنامه جمله Hello, World! روی صفحه مشاهده می شود.


 


 


صفحه اصلی| PDF| درباره| تماس