نوشتن اولین برنامه با ++C
آخرین به روز رسانی در پنجشنبه 02 مهر 1388 ساعت 16:18 نوشته شده توسط مدیر سایت شنبه 28 شهریور 1388 ساعت 22:30
سطح مقدماتی
ملزومات
همان طور که در مقاله قبلی گفتیم برای برنامه نویسی ++C نیاز به یک IDE داریم مثل ویژوال استودیو، C++ Builder، Cygwin، GCC یا هر چیز دیگری. لیکن ما پیشنهاد میکنیم ویژوال استودیو را استفاده کنید.
اولین تجربه در هر موضوع جدیدی که یاد میگیریم، بسیار شیرین و دلچسب است؛ اولین تجربهی خود را در دوچرخه سواری یا ماشین سواری به خاطر میآورید! حتما چنین است. البته برای شما شاید این اولین تجربه برنامه نویسی نباشد ولی واقعیت این است که برنامه نوشتن در محیط دل انگیز ویژوال استودیو یک تجربه فراموش نشدنی است.
از منوی فایل گزینهی New Project را انتخاب کنید، از قسمت نوع پروژه، Visual C++ و سپس Win32 را انتخاب کنید. از سمت راست، گزینهی Win32 Console Application را انتخاب کرده و در قسمت نام، نام مناسبی برای پروژه انتخاب کنید:
دکمه ی OK را بزنید و در قسمت بعدی نیز تنظیمات پیش فرض را پذیرفته و روی دکمهی Finish کلیک کنید. بدین ترتیب اولین پروژه شما ساخته شد. ویژوال استودیو به طور خودکار تعدادی فایل را در پروژه قرار میدهد. برای دیدن لیست فایلها کافیست گزینه ی Solution Explorer را از لیست منوهای کشندهی سمت چپ انتخاب کنید، دو تا فایل با پسوند .cpp و دو تا فایل با پسوند .h و یک فایل ReadMe.txt تولید شده است. فایل Stdafx.h شامل فایلهای سرآیهای است که به کرات استفاده میشوند و می توان گفت به منظور صرفه جویی در تایپ! ایجاد می شود. این فایل در اکثر فایلهای پروژه استفاده خواهد شد. فایل stdafx.cpp به منظور خالی نبودن عریضه و اینکه هر فایل سرآیه ای بهتر است فایل متناظر .cpp خودش را هم داشته باشد ایجاد شده است و چیز خاصی داخل آن نیست. فایل targetver.h اطلاعات نسخه ی ویندوز را در بردارد که باید متناسب با سیستمی که قصد دارید برنامه را روی آن اجرا کنید انتخاب شود و در نهایت فایل Exam-01.cpp که فایل اصلی برنامهی ماست! که همان اسمی است که برای پروژه انتخاب کردیم.
نکته: Solution اصطلاحی است که میکروسافت به مجموعهی چند پروژه در کنار هم اطلاق میکند.
چون اولین برنامه است، سعی می کنیم توضیح کاملی بدهیم که اگر تازه کارید به زندگی امیدوار شوید، لیکن در کل دنبال کردن چنین روندی دشوار است!
// Chap_01_01.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
نگاهی بیندازیم به متن برنامه؛ دو خط اول توضیحات است که در ++C با // شروع می شود. خط بعدی فایل stdafx.h را به برنامهی ما افزوده است و خط بعدی تابع اصلی برنامه است. در ++C استاندارد تابع اصلی با نام main مشخص می شود، لیکن میکروسافت به منظور پشتیبانی از یونیکد تابع _tmain را به جای main استفاده میکند. فعلا ذهنتان را درگیر این مسائل نکنید!
متن تابع main تنها شامل خط return 0; است که در بین دو آکلاد اسیر شده است. چاره ای نیست، چون همان طور که می دانید این گرامر ++C است که هر بلوک کد، مانند بدنه ی تابع، باید بین دو آکلاد باشد. تابع main باید متغیری از نوع int برگرداند، لذا وجود return 0; الزامی است.
این برنامه کوتاه، خیلی بی مصرف است چون هیچ کاری انجام نمیدهد، پس بهتر است یکی دو خط دیگر به برنامه اضافه کنیم:
#include "stdafx.h"
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
std::cout << "In the name of God!\nHi C++\n";
return 0;
}با استفاده از کلیدهای CTRL+F5 برنامه را اجرا کنید تا خروجی را ملاحظه کنید. دو خط در کنسول خروجی ظاهر میشود که ناشی از افزودن خط اول در تابع main است. عبارت std یک فضای نام است که در فایل سرآیهی <iostream> تعریف شده است. فضای نام به منظور جلوگیری از تداخل اسامی توابع همنام از کتابخانههای مختلف، به وجود آمده است؛ مثلا اگر تابع ()Draw در دو فایل Rect.h و Circle.h تعریف شده باشد و هر دوی این فایلها در برنامهی ما include شده باشند، برای اینکه هم خود ما و هم کامپایلر دچار مشکل نشود بهتر است برای هر کدام یک فضای نام به صورت زیر تعریف کنیم و سپس تابع Draw را به صورت ()Rect::Draw یا ()Circle::Draw فراخوانی کنیم.
namespace Rect
{
void Draw(){
...
};
} تابع cout که مخفف console output است همان طور که از نامش پیداست پارامتر خودش را روی کنسول چاپ می کند. در اینجا عبارت "In the name of God!\nHi C++\n" روی خروجی ظاهر می شود. نویسه ی n/ یک نویسه ی خاص است که بیانگر خط جدید است و سبب می شود رشته ی مورد نظر از این نقطه به بعد در خط جدیدی ظاهر شود.
نکته: در C++ هر دستور باید به یک نقطه ویرگول ; ختم شود.
نکته: برای توضیحات چند خطی میتوانیم از /* و */ استفاده کنیم:
/*
This is a multi line comments
Further comments go here…
*/امیدوارم از اولین برنامه خودتان لذت برده باشید.
-

ای کاش تمام قسمت های زبان پیشرفته سی پلاس پلاس همین بود.
خاستم بگم من از این بحث های شی گراء و غیره نفرت دارم چون اصلا نمی فهمم چیه .16 سالمه
-
|*** 2010-12-07 ساعت 17:41:37 *** حميد - كمك به يك مبتدي
با سلام، من هيچي از سي با دوتا مثبت نميدونم. اما خيلي دوست دارم برنامه نويسي رو شروع كنم. اما با اين توضيحاتي كه نوشتيد، من بيشتر گيج و سر در گم شدم.
اين دستورات را در كجاي ويژوآل ++c بايد بنويسيم؟
يك فايل نيو شامل قسمتهاي مختلف هست و من هركدوم رو انتخاب ميكنم و اين كدها رو وارد ميكنم، فاتال ارور ميده!
لطفاً كمكم كنيد. نميدونم برنامه نويسي رو با چه برنامه اي شروع كنم. آيا من ميبايست ويژوآل بيسيك هم بلد باشم تا ++C رو درك كنم؟ لطفاً راهنمائيم كنيد. من سنم بالاست اما وقت آزاد زياد دارم، اگر فرمولش دستم بياد، ميتونم علاقه نشون بدم.
من يك كتاب قطور ++c خريدم كه ترجمه شده آقاي "هاروي ديتيل است" اما هيچي ازش سر در نياورم!
ممنون از توجهتون
-
|*** 2010-12-15 ساعت 20:04:45 *** ali
سلام به همه دوستان
من کتاب برنامه نویسی به زبان ++c تالیف مهندس عین الله جعفرنژاد قمی خریدم
حرف نداره
رشته من نرم افزاره
هیچ علاقه ای به برنامه نویسی نداشتم اما از وقتی که این کتابو استادمون بهم معرفی کرده عاشق برنامه نویسی شدم
من ویراست سومش که مال پاییز 89 گرفتم
12000 تومان خریدم
امیدوارم یه مرجع خوبو بهتون معرفی کرده باشم
-
|*** 2011-01-24 ساعت 17:20:35 *** سعید - error
چرا هرچه امتحان میکنم error میده میگه
exam1.exe is not a valid win32 application
چطور باید این error رو رفع کنم لطفا کمک کنید
-
|*** 2011-01-26 ساعت 18:57:42 *** pareham - یک سوال
با درود فراوان در محیط ویژوال استودیو 2008 و قتی برنامه رو مینویسم با این پیغام مواجه میشم لطفا راه نمایی کنید:
Unable to start program f:\Documents and Settings\project c+++\My Documents\Visual Stdio 2008\projects\test01\debug\test01.exe
the system cannot find the file specified
-
|*** 2011-01-29 ساعت 22:25:49 *** مدیر سایت
برنامه شما حتما خطای کامپایل دارد. دکمه F7 را بزنید و بعد پنجره لیست خطاها (error list) را نگاه کنید و خطاها را رفع کنید. به پیغامهای کامپایلر هم لطفا توجه کنید و زودی دکمه ok را نزنید.
-
|*** 2011-04-16 ساعت 23:08:19 *** mshahvisi
برای رفع این خطا باید برای
debug->options and settings..->project and soulation->build and run
سپس on run when projects are out of date
رو باز و گزینه always build رو انتخاب کن
-
|*** 2011-02-28 ساعت 19:09:18 *** ناشناس - کمکم کنید
سلام استاد عزیز.
چند سوال داشتم:
1. من هم دقیقا برنامه ای که خودتان در بالا گفتید را کپی کردم اما باز هم همان پیغام زیر را میدهد! چه کنم؟
Unable to start program f:\Documents and Settings\project c+++\My Documents\Visual Stdio 2008\projects\test01\debug\test01.exe
the system cannot find the file specified
2.آیا دستورات ویژوال سی پلاس پلاس با دستورات سی پلاس پلاس فرق می کند؟ یعنی من که سی پلاس پلاس کار میکنم، باید ویژوال آن را هم یاد بگیرم یا نه؟ لطفا توضیح دهید؟
3.کجای این محیط ویژوال است؟ چرا مانند سی شارپ ، نمی توان در آن دکمه و... گذاشت؟ خواهشا توضیح دهید؟
-
|*** 2011-03-05 ساعت 10:47:06 *** مدیر سایت
سلام
اگر در دانشگاه ما هستید که حضوری بیایید بهتر است. اگر نه:
1. برنامه را با زدن دکمه rebuild solution از منوی build دوباره کامپایل کنید و لیست خطاها را در پنجره Error List چک کنید. خطایی که نوشته را ذکر کنید. (اگر Error List را نمی بینید، از داخل منوها پیدایش کنید)
2. خیر، یک سری کتابخانه اضافی است که میکروسافت تهیه کرده به نام MFC که با آن مثل #C می شود دکمه گذاشت و ... کاری که می کنید این است که موقع تعریف پروژه، نوع MFC Application را انتخاب کنید.
-
age rafti merikh didi daran ba zabane mfd barname nevici mikonan avalin kari ke mikoni chie?
1-search to google
2-search to manual ha
3-amoozesh zabane merikhi
4-search by: mfd book jafarnejad qumi
answere=4
faghad hamin
-
|*** 2011-06-09 ساعت 16:05:03 *** هوش مصنوعی - پیامی به مدیر سایت
جناب مدیر محترم این سایت:
سلام... رشته ی تحصیلی شما چیه؟
من دانشجوی IT هستم
حدود دو سال مشغول یادگیری و تمرین برنامه نویسی هست.
آموزش برنامه نویسی به اونایی که اسمش رو نمیتونن بخونند ایقدری که شما فکر میکننید راحت نیست پس وقت خودتون رو هدر ندید!!!
-
|*** 2011-06-30 ساعت 15:57:29 *** taman - در جواب به دوستمون هوش مصنوعی
سلام
شما که میگی دو سال مشغول برنامه نویسی هستی خداییش خودت که اول میخواستی برنامه نویسی یاد بگیری سی پلاس پلاسو چی میخوندی...؟ منم دانشجوی سال آخر نرم افزارم وهمیشه اینجور سایتارو تحسین میکنم که بدون هیچ چشم داشتی دارن به هم وطناشون خدمت میکنن این سایت و امثالهم برای همه کسانیه که میخوان از اول ++c رو شروع کنن پس این یعنی هرکسی با هر رشته ای که به برنامه نویسی علاقه داره میتونه واردش بشه و موفقم بشه
-
|*** 2011-07-26 ساعت 20:32:23 *** v2012 - re: کمکم کنید
ناشناس نوشت:سلام استاد عزیز.
چند سوال داشتم:
1. من هم دقیقا برنامه ای که خودتان در بالا گفتید را کپی کردم اما باز هم همان پیغام زیر را میدهد! چه کنم؟
Unable to start program f:\Documents and Settings\project c+++\My Documents\Visual Stdio 2008\projects\test01\debug\test01.exe
the system cannot find the file specified
2.آیا دستورات ویژوال سی پلاس پلاس با دستورات سی پلاس پلاس فرق می کند؟ یعنی من که سی پلاس پلاس کار میکنم، باید ویژوال آن را هم یاد بگیرم یا نه؟ لطفا توضیح دهید؟
3.کجای این محیط ویژوال است؟ چرا مانند سی شارپ ، نمی توان در آن دکمه و... گذاشت؟ خواهشا توضیح دهید؟
با سلام و خسته نباشید خدمت مدیر سایت:
Unable to start program
در مورد ارور ذکر شده باید بگم که من خودم ماهها این مشکل رو داشتم و همه اینترنت و فروم های اونو زیر و رو کردم ولی هیچ کس راه حلی براش پیدا نکرده بود. آخر مجبور شدم خودم چند تا روش رو امتحان کنم که به این نتیجه رسیدم این ارور فقط و فقط به خاطر ویروسی شدن ویندوز هستش . شما ابتدا یک اسکن کامل از کامپیوتر خوت با نرم افزار کسپری اسکای آپدیت شده انجام بده- بعد کل ویژوال استدیو رو از اول نصب کن و کدی که نوشتی رو یک بار دیگه امتحان کن. اگه ویروس کشی رو درست انجام بدی مطمئنا مشکلت حل میشه!
-
|*** 2011-10-12 ساعت 22:17:30 *** ناشناس
با سلام و خسته نباشيد!برنامه اي كه گفتين رو من با ميژوال استديو اجرا كردم خروجي كه به من داد به اين شكله '"G:\marrrri\average\Debug\average.exe"' is not recognized as an internal or ext
ernal command,
operable program or batch file.
Press any key to continue . . .
چطوري ميتونم روجي مطلوبمو به دست بيارم؟؟؟ايراد برنامه من كجاست؟؟
ممنون ميشم اگر به ايميلم بفرستين جوابو
maryam_bbv@yahoo.com


