آموزش ++c

تب‌های اولیه

22 پستها / 0 جدید
آخرین ارسال
آموزش ++c

سلام به دوستای خوبم Smile :Gol:
من می خوام زبان برنامه نویسی c++ رو اینجا اموزش بدم اگر استقبال شما رو ببینم مشتاق تر خواهم شد .

امروز فقط نرم افزار مورد نیاز رو برای اجرای کدهای c++ رو معرفی می کنم و کتاب که می خوام از روش به شما درس بدم .

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

این هم نرم افزار برای اجرای کدهای c++

http://qt-project.org/downloads

http://releases.qt-project.org/qt5.0...86-offline.exe

و این هم کتاب که دانلودش کنید :

http://qt-project.ir/node/12

تاریخچه ++C ؟

در دهه 1970 در آزمایشگاه‌های بل زبانی به نام C ایجاد شد . انحصار این زبان
در اختیار شرکت بل بود تا این که در سال 1978 توسط Kernighan و Richie شرح
کاملی از این زبان منتشر شد و به سرعت نظر برنامه‌نویسان حرفه‌ای را جلب نمود . هنگامی
که بحث شی‌گرایی و مزایای آن در جهان نرم‌افزار رونق یافت ، زبان C که قابلیت شی‌گرایی
نداشت ناقص به نظر می‌رسید تا این که در اوایل دهۀ 1980 دوباره شرکت بل دست به کار
شد و Bjarne Stroustrup زبان C++ را طراحی نمود .

C++ ترکیبی از دو زبان C و Simula بود و قابلیت‌های شی‌گرایی نیز داشت
از آن زمان به بعد شرکت‌های زیادی کامپایلرهایی برای C++ طراحی کردند .
این امر سبب شد تفاوت‌هایی بین نسخه‌های مختلف این زبان به وجود بیاید و از
قابلیت سازگاری و انتقال آن کاسته شود. به همین دلیل در سال 1998 زبان C++
توسط موسسۀ استانداردهای ملی آمریکا (ANSI) به شکل استاندارد و یک‌پارچه در‌آمد .
کامپایلرهای کنونی به این استاندارد پایبندند .

:Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol:

چرا ++C ؟

- زبان C یک زبان همه منظوره است.
- در این زبان عملگر‌هایی تعبیه شده که برنامه‌نویسی سطح پایین و به زبان ماشین را نیز امکان‌پذیر می‌سازد .
- چون C عملگرهای فراوانی دارد ، کد منبع برنامه‌ها در این زبان بسیار کوتاه است .
- زبان C برای اجرای بسیاری از دستوراتش از توابع کتابخانه‌ای استفاده می‌کند و بیشتر خصوصیات وابسته به سخت‌افزار را به این توابع واگذار می‌نماید .
- برنامۀ مقصدی که توسط کامپایلرهای C ساخته می‌شود بسیار فشرده‌تر و کم‌حجم‌تر از برنامه‌های مشابه در سایر زبان‌ها است .
- ++C که از نسل C است ، تمام ویژگی‌های جذاب C را به ارث برده است .
- سرانجام آخرین دلیل استفاده از C++ ورود به دنیای #C است .

:Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol::Gol:

جلسه اول ::Gol:

اموزش رو از یه کد ساده شروع می کنم

نقل قول:
<br />
#include<iostream></p> <p>#include<conio.h></p> <p>using namespace std;</p> <p>//main:generate some simple output</p> <p>int main()</p> <p>{</p> <p>cout<<"Helloworld"<<endl;</p> <p>getch();</p> <p>return0;</p> <p>}
<br />

به این کد توجه کنید :

فعلا سه خط اول رو نادیده بگیرید(این مفاهیم رو بعدا خواهم گفت )

خط چهارم : با این علامت شروع شده // ، که این علامت نشون میده این جمله موجود در کد ( main:generate some simple output ) یک کامنت ( comment ) است . شما وقتی یک برنامه رو می نویسید ، برای اینکه برنامه خوانایی بالایی داشته باشه از comment استفاده می کنید ، برای مثال فرض کنید شما می خواهید برنامه ای را که نوشتید به دوست یا استاد خود نشان دهید برای اینکه دوست یا استاد شما بخوبی متوجه موضوع برنامه ، نحوه کار برنامه و خروجی برنامه بشه باید یک سری توضیحاتی در برنامه قرار گیرد که این توضیحات می تواند همانند خط چهارم در کد قرار گیرد . وقتی که برنامه run می شود و compiler به علامت comment ( // ) برخورد می کند هر چیزی رو از شروع comment تا پایان خط نادیده میگیره .
به عبارتی این دستور وقتی کامپایل می شود نادیده گرفته می شود .و فقط برای خوانایی برنامه بکار می رود .در برنامه های بزرگتر و با زیاد شدن خطوط برنامه، توضیحات به فهم راحتتر برنامه برای برنامه نویس و دیگر کسانی که کد را مورد بررسی قرار می دهند کمک شایانی می نماید. به طور کلی

برای بوجود آوردن توضیحات در برنامه C++ از دو الگو می توان استفاده نمود :

اگر بخواهیم توضیحات را در یک خط قرار دهیم از علامت // قبل از توضیحات استفاده می کنیم. در مثال قبل ما از این الگو بهره بردیم.
در صورت زیاد بودن توضیحات واشغال چند سطر از برنامه توسط آن از علامت /* */ استفاده کرده و توضیحات را در بین آن قرار می دهیم.

/* my<br />
 first program<br />
 in c++ */<br />

حالا به خط پنجم دقت کنید :

فعلا int موجود در کنار کلمه main رو نادیده بگیرید ، کلمه main مکان شروع اجرای برنامه را مشخص می کند . وقتی یک برنامه اجرا می شود compiler از اولین خط موجود در main شروع یه اجرا کردن میکنه تا اخرین جمله موجود ، که در کد بالا این خط ( cout

به خط هفتم دقت کنید :

cout شی خاصی است که به وسیله سیستم فراهم شده که شما به وسیله ان می توانید message مورد نظر خود را در صفحه نمایش نشان دهید .
به این symbol دقت کنید : >> این symbol برای cout به کار برده میشه که بتوانید message خود را در صفحه نمایش نشان دهید .

endl : با نوشتن این کلمه در این دستور باعث میشه که cursor صفحه نمایش شما به خط بعد منتقل بشه ، و اگه شما بعد از این دستور دوباره Message جدیدی را با استفاده از cout نوشتید message شما به خط بعد منتقل می شود در حالی که اگر این کار را نمی کردید Message جدید شما در ادامه همان خط نمایش داده میشد .

به این symbol دقت کنید : ( ; ) به این symbol سی می کالن گفته می شود ما این symbol را در پایان هر دستور قرار می دهیم .

به این symbol دقت کنید : ( {} ) همیشه محتویات main در داخل این اکولادها قرار می گیرند .

result کد بالا در این صفحه نمایش نشان داده می شود : Smile


برخی از ویژگیهای دستورات C++

هر دستور باید به ; ختم شود.
حداکثر طول یک دستور،255 کاراکتر است.
هر دستور می تواند در یک و یا چند سطر نوشته شود.
در هر سطر می توان چندین دستور را نوشت.( این کار توصیه نمی شود. )
توضیحات می توانند بین */ و /* در چندین سطر و یا بعد از // و در فقط یک سطر نوشته شوند.

نکته:Case sevsitive است ، یعنی نسبت به کوچکی و بزرگی حروف حساس بوده وبین این دو تمایز قائل است. توصیه می شود که برنامه ها را با حروف کوچک بنویسید. While برابر نیست باWHILE

فعلا خطوط هشت و نه را هم نادیده بگیرید در جلسات بعد توضیح خواهم داد .


جلسه دوم : :Gol:

به این کد دقت کنید :

نقل قول:
</p>
<p>
<br /> #include<iostream></p> <p>#include<conio.h></p> <p>using namespace std;</p> <p>int main(){</p> <p>cout<<"Hello,world(:"<<endl;</p> <p>cout<<"Howareyou?"<<endl;</p> <p>getch();</p> <p>return0;}
<br />

[=arial]به این symbol ( " ) ، کوتیشن ( quotation ) می گویند .عبارتی که در بین این دو کوتیشن ( دبل کوتیشن ) قرار میگیرد string ( رشته ) می گویند مثل خط پنجم کد[=arial]

[=arial]cout<<"Hello,world(:"<<endl;

[=arial]
[=arial]که عبارت Smile Hello , world یک string هست . چون از ترتیبی از حروف تشکیل شده است . string می تواند شامل حرف ، عدد ، نقطه و هر علامت خاص دیگری باشد .

result کد بالا در این صفحه نمایش نشان داده می شود :

[=monospace]


[=monospace][=arial]به result کد بالا دقت کنید خروجی ما در دوخط نشان داده شده است و ان هم به دلیل وجود endl هست که در جلسه اول توضیح داده ام . گاهی اوقات لازم است که هر دو string برخلاف result کد بالا در یک خط نمایش داده شوند . در این صورت باید در این کد تغییراتی ایجاد کنیم ، کد جدید را مشاهده کنید : Smile

[/CODE]

نقل قول:
<br />
#include<iostream></p> <p>#include<conio.h></p> <p>using namespace std;</p> <p>int main(){</p> <p>cout<<"Goodbye,";</p> <p>cout<<"cruelworld:("<<endl;</p> <p>getch();</p> <p>return0;</p> <p>}
<br />


و این هم result کد جدید :


نکته : space ( فاصله ) در داخل کوتیشن بر خروجی برنامه تاثیر می گزارد مانند خط پنچم کد

cout<<"Goodbye, ";

که بعد از کاما یک space داده شده و بعد کوتیشن بسته شده است که اگر به صفحه نمایش دقت کنید متوجه این space خواهید شد . ولی اگر خارج از کوتیشن space گذاشته شود تغییری در رشته ایجاد نخواهد کرد . و space در صفحه نمایش مشاهده نخواهید کرد . مانند کد های بالا که ما خارج از کوتیشن space می گزاریم و هر دستور را در یک خط می نویسیم . برای مثال من در این کد خارج از کوتیشن همه space ها را حذف می کنم و همه دستورات را در یک خط می نویسم خواهید دید که هیچ تغییری در صفحه نمایش ایجاد نخواهد کرد زیرا space در خارج از کوتیشن گذاشته شده است من اخرین کد را می نویسم تنها تغییری که ایجاد خواهم کرد space ها را حذف می کنم تا مشاهده تغییرات بشوید .

نقل قول:
</p>
<p>
#include<iostream>#include<conio.h>usingnamespacestd;intmain(){cout<<"Goodbye,";cout<<"cruelworld:("<<endl;getch();return0;}</p> <p>
<br />



همونطور که در صفحه نمایش می بینید هیچ تغییری در کد ایجاد نشد .

از شما دوستان خوب ممنون میشم که اگه ایده ای دارید در جهت تدریس من که بهتر بشه ممنونم توی تایپیک پیشنهادات و انتقادات اموزش c++ اون ها رو بازگوکنید . Smile

[=monospace]

جلسه سوم : :Gol:

مقدار ، ارزش(value) : با یک مثال شروع می کنم به این جمله دقت کنید " Hello, world " ، این یک مقدار string هست زیرا با توجه به جلسه قبل که گفته شد هر چیزی که بین دبل کوتیشن قرار گیرد یک string هست . نوع های دیگری هم به غیر از string مانند اعداد صحیح (int) و کاراکتر ( character ) و .....

integers شامل همه اعداد صحیح مثل 1و6و8655و .... می باشند . شما می توانید به این شکل یک خروجی از نوع int داشته باشید

<br /> cout<<17<<endl;</p> <p>
<br />

یک character می تواند شامل حرف ، عدد ، نقطه و هر علامت دیگری باشد به عبارت دیگر هر چیزی که بین single quotation قرار گیرد از نوع character هست مانند '1' ، 'r' ، '?' و .....
شنا به این شکل می توانید یک خروجی از نوع character داشته باشید

<br /> cout<<'}'<<endl;
<br />

پس حالا تفاوت بین این سه را شما بگویید ، "5" ، '5' ، 5 : "5" : این یک value از نوع string هست ، '5' : این یک value از نوع کاراکتر هست و 5 : این هم از نوع integer است .

متغیر ( variable ) : نامی مکانی در حافظه است که value در ان ذخیره می شود .انتخاب این نام اختیاری است .
تعریف متغیر ( declaration variable ) : برای مثال

char fred;
<br />

این جمله یک variable به نام fred از نوع character ایجاد کرده است .

مثال :

int bob;
<br />

این جمله یک variable به نام bob از نوع int ایجاد کرده است .

مثال :

int hour,minute;
<br />

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


جلسه چهارم :
:Gol:

مقداردهی( Assignment ) :

وقتی ما یک variable تعریف می کنیم تمایل داریم که value را به ان اختصاص دهیم . که این کار را با مقداردهی به variable انجام می دهیم .
مثال :

<br /> <br /> char firstLetter = 'a'; //give firstLetter the value 'a'</p> <p>int hour = 11; //assign the value 11 to hour</p> <p>int minute = 59; //set minute to 59
<br />

در مثال بالا ما سه مقداردهی را انجام داده ایم . comment مربوط به هر مقداردهی شیو های مختلف تشریح مقداردهی را که رایج است بیان کرده .

موقعی که ما یک variable تعریف می کنیم مکانی را در memory ایجاد می کنیم . که اسم ان مکان ، همان اسم متغیر هست . (تعریف متغیر مربوط به جلسه سوم )
موقعی که ما یک مقداردهی را مانند مثال بالا انجام می دهیم . یعنی یک value را در حافظه ایجاد شده قرار می دهیم .



به تصویر بالادقت کنید . به دلیل تعریف متغیر firstLetter در کدهای بالا ، مکانی در حافظه که اسم ان مکان همان نام متغیر است ، ایجاد شده و با مقداردهی character مورد نظر ( 'a' ) در حافظه ایجاد شده قرار می گیرد . و دوشکل بعد هم به همین گونه .

و حالا فکر میکنید چرا شکل هندسی مربوط به کاراکتر با شکل هندسی مربوط به int متفاوت است این یعنی اینکه هیچ وقت نمی شود مقدار string را برای character مقداردهی کرد . و مقداردهی باید با توجه به نوع متغیر باشد . مثال :

<br /> int hour = "Hello"; //wrong!!</p> <p><br /> int minute = "59"; //wrong!!
<br />

جلسه پنجم : :Gol:

چاپ متغیرها ( outputting variable ) :
شما می توانید value یک variable را با استفاده از چند دستور چاپ کنید . کد زیر را مشاهده کنید :

<br /> #include<iostream></p> <p>#include<conio.h></p> <p>using namespace std;</p> <p>int main(){</p> <p>int hour,minute;</p> <p>char colon;</p> <p>hour = 11;</p> <p>minute = 59;</p> <p>colon = ':';</p> <p>cout<<"thecurrenttimeis";</p> <p>cout<<hour;</p> <p>cout<<colon;</p> <p>cout<<minute;</p> <p>cout<<endl;</p> <p>getch();</p> <p>return0;</p> <p>}
<br />

result کد بالا را مشاهده نمایید :


در این برنامه دو integer variable به نام های hour , minute ایجاد شده است و یک char variable به نام colon ایجاد شده است .
وقتی ما درباره outputting variable صحبت می کنیم منظورمان چاپ value یک variable است . و برای چاپ اسم متغیر باید اسم متغیر را در بین کوتیشن قرار دهید . برای مثال :

cout<<"hour";
<br />

می توان چند variable را در یک دستور چاپ کرد و برنامه درج شده در بالا را اینگونه تغییر داد :

<br />
#include<iostream></p> <p>#include<conio.h></p> <p>using namespace std;</p> <p>int main(){</p> <p>int hour,minute;</p> <p>char colon;</p> <p>hour = 11;</p> <p>minute = 59;</p> <p>colon = ':';</p> <p>cout<<"thecurrenttimeis"<<hour<<colon<<minute<<endl;</p> <p>getch();</p> <p>return0;</p> <p>}
<br />

پایان Smile

جلسه ششم ::Gol:

کلمات کلیدی ( Keywords ) : در جلسات قبل من گفتم که شما می توانید هر نامی را برای variable تعیین کنید . اما این کاملا درست نیست . چون کلماتی در c++ از قبل رزرو شده اند . که کامپایلر به وسیله انها ساختار برنامه را تجزیه می کند . و اگر شما از این Keywords برای نام variable استفاده کنید . کامپایلر دچار اشتباه میشود . این کلمات Keywords نامیده می شود . که شامل int , char, void, endl .... می باشد .

لیست کامل این کلمات کلیدی در استاندارد c++ شامل شده است . که شما می تونید این ها رو از این ادرس دانلود کنید . http://www.ansi.org/

همچنین شما می توانید تفاوت این کلمات کلیدی با دیگر کلمات را از راه تفاوت رنگ ها با نوشتن در محیط برنامه نویسیتان متوجه شوید . برای مثال در محیط برنامه نویسی qt (به کد های بالا نگاه کنید ) کلمات کلیدی به رنگ خردلی هستند .

کلمات کلیدی :


این کلمات، کلمات کلیدی هستند و کامپایلر فقط این کلمات را می شناسد و هرآنچه غیر از کلمات کلیدی در برنامه C++ نوشته شود باید برای کامپایلر درست تعریف شود. در این بین توابعی برای گرفتن اطلاعات و یا چاپ اطلاعات و چیزهای دیگری وجود دارد که برای استفاده از آنها باید از فایل سرآیند مربوطه استفاده نماییم که از قبل نوشته شده اند مثل توابع cin, cout که توابع ورودی خروجی هستند که در فایل سرآیند iostream وجودارند و همچنین تابع getch که برای زدن یک کلید از صفحه کلید است و در فایل سرآیند conio قرار دارد .

این جلسه را تا امشب کامل خواهم کرد .

جلسه هفتم : :Gol:

برای انجام عملیات بر روی داده ها از عملگرها استفاده می کنیم. عملگرها نمادهایی هستند که عملیاتی مانند جمع،ضرب، کوچکتری و از این قبیل را روی داده ها انجام می دهند که عبارتند از :

operators( عملگرها ) : به چند دسته تقسیم می شوند .

1-انتساب ( Assignment ) ( = )
از این عملگر برای نسبت دادن یک مقدار به یک داده استفاده می شود .

<br />
#include<iostream></p> <p>#include<conio.h></p> <p>using namespace std;</p> <p>int main()</p> <p>{</p> <p>int a , b ; //a:?,b:?</p> <p>a = 10 ; //a:10,b:?</p> <p>b = 4 ; //a:10,b:4</p> <p>a = b ; //a:4,b:4</p> <p>b = 7 ; //a:4,b:7</p> <p>cout<<"a:";</p> <p>cout<<a<<endl;</p> <p>cout<<"b:";</p> <p>cout<<b;</p> <p>getch();</p> <p>return 0;</p> <p>}
<br />

result این برنامه :

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


2-عملگرهای محاسباتی ( Arithmetic Operators ) ( + , - , * , / , % )
پنج عملگر محاسباتی موجود در C++ عبارتند از :



با 4 عملگرد اول آشنا هستید اما آخرین که خوانده می شود ( مـد "با واو تلفظ کنید" ) عملوند سمت چپ را بر عملوند سمت راست تقسیم کرده و باقیمانده آنرا بدست می آورد .

<br />
<br /> #include<iostream></p> <p>#include<conio.h></p> <p>usingnamespacestd;</p> <p>intmain()</p> <p>{</p> <p>inta=11;</p> <p>intb=3;</p> <p>intc=a%b;</p> <p>cout<<"c:";</p> <p>cout<<c;</p> <p>getch();</p> <p>return0;</p> <p>}<br />

result این کد را مشاهده کنید :


یه کد دیگه رو به عنوان مثال مشاهده کنید :

</p>
<p>
#include<iostream></p> <p>#include<conio.h></p> <p>usingnamespacestd;</p> <p>intmain(){</p> <p>inthour,minute;</p> <p>hour=11;</p> <p>minute=59;</p> <p>cout<<"Numberofminutessincemidnight:";</p> <p>cout<<hour*60+minute<<endl;</p> <p>cout<<"Fractionofthehourthathaspassed:";</p> <p>cout<<minute/60<<endl;</p> <p>getch();</p> <p>return0;</p> <p>}
<br />

result کد بالا :


در result بالا خط اول که جواب عملیات 719 شده ، چیزی بوده که مورد انتظار ما بوده ، اما به خط دوم دقت کنید ایا 59 تقسیم بر 60 می شود صفر ؟ خیر جواب می شود 0.98333 ، پس چرا نتیجه صفر شده است ؟

موقعی که دو operand(عملوند ) ، integer باشند انگاه result انها هم integer هست . که این جواب به مقدار کم گرد می شود مثلا در همین مثال 59 تقسیم بر 5 می شود 0.98333 ، که گرد شده و به صفر تغییر پیدا کرده و نتیجه صفر نمایش داده شده است . حالا اگر بخواهیم مقدار دقیق بدون گرد شدن بدست اید مثلا همان مقدار 0.98333 در صفحه نمایش نشان داده شود باید چیکار کرد ؟ که این رو در جلسات بعد خواهم گفت .

3- عملگرهای ترکیبی ( Compund Operators ) ( =+ , =- , =* , =/ )

در واقع جواب این نوع از عملگرها برابر حاصل عمل عملگر، بر خود عبارت سمت چپ و عبارت سمت راست تساوی است . علت اینگونه نوشتار هم مختصرنویسی است.
عملگرهای ترکیبی دیگری نیز وجود دارند که در ادامه در موردشان بحث می کنیم مثل : => و = مثال:

<br />
<br /> #include<iostream></p> <p>#include<conio.h></p> <p>using namespace std;</p> <p>int main()</p> <p>{</p> <p>int a,b = 3 ; //a=?,b=3</p> <p>a = b ; //a=3,b=3</p> <p>a + = 2 ; //a=a+2=3+2=5</p> <p>cout<<a;</p> <p>getch();</p> <p>return 0;</p> <p>}
<br />
<br />

result کد بالا :


یکی از ویژگی های مفید زبان های برنامه نویسی در گرفتن محدوده بسته و محاسبه ان است . برای مثال ما چگونگی ضرب اعداد و چاپ انها را می دانیم و ما می توانیم این کار را در یک زمان انجام دهیم

<br /> cout << 17 * 3;
<br />


در واقع من نباید بگم در یک زمان چون ضرب قبل از چاپ عدد اتفاق می افتد.اما در واقع نکته هر عبارتی شرکت دادن
numbers, characters, variablesه می تونه استفاده بشه در این عبارات مانند

cout << hour*60 + minute << endl;
<br />

مانند شرکت دادن hour,minute
و شما می توانید هر عبارت دلخواهی را در سمت چپ این عبارت قرار دهید مانند

<br /> int percentage;<br /> percentage = (minute * 100) / 60;<br />
<br />

که در اینجا عبارت percentage است .

نکته:یک سری محدودیت هایی وجود دارد در قرار دادن عبارت در سمت چپ این محاسبه ، باید این عبارتی که در سمت چپ قرار می گیرد یک variable باشد زیرا این عبارت سمت چپ مکانی را در حافظه ایجاد می کند که value در ان قرار میگیرد.
برای مثال این عبارت سمت چپ مکانی را در حافظه ذخیره نمی کند و این غیر قانونی است .

minute+1 = hour<br />
<br />

4-عملگرهای افزایش کاهش ( Increase , Decrease ) ( ++ , -- )

این عملگرها یک واحد به عملوند خود اضافه می کنند و عمل اونها به اینکه در سمت چپ یا راست عملوند خود قرار بگیرند متفاوت است .
گر عملگر سمت راست یا چپ عملوند خود باشه در هر دو صورت یک واحد به عملوند اضافه می شود . اما تفاوت این دوحالت در عبارات محاسباتی خود را نشان می دهد . عبارات محاسباتی ترکیبی از متغیرها، ثوابت و عملگرها هستند مثل 4*5-5/10 و 6-x/y

<br />
<br />
#include<iostream></p>
<p>#include<conio.h></p>
<p>using namespace std;</p>
<p>int main()</p>
<p>{</p>
<p>int a,b = 3 ;     //A=?,B=3</p>
<p>a = ++b ;       //A=(++B)--->A=(B+1),B=B+1--->A=4,B=4</p>
<p>cout<<a;</p>
<p>getch();</p>
<p>return0;</p>
<p>}<br />
</p>
<p>


result کد :



در مثال بالا چون افزایش قبل B قرار دارد ابتدا یک واحد به B اضافه شده، پس در همینجا B می شود 4 و در پایان مقدار فوق در A قرار می گیرد .

مثال دیگه :

<br />
#include<iostream></p>
<p>#include<conio.h></p>
<p>using namespace std;</p>
<p>int main()</p>
<p>{</p>
<p>int  A,B = 3 ;     //A=?,B=3</p>
<p>A = B++ ;     //A=(B++)--->A=B,B=B+1--->A=3,B=4</p>
<p>cout<<A;</p>
<p>getch();</p>
<p>return 0;</p>
<p>}

result کد بالا :




اما در مثال بالا چون افزایش بعد از B قرار دارد اول مقدار B که 3 هست در A ریخته میشود و بعد یک واحد به B اضافه میشود .

و حالا جواب این برنامه را بدون نگاه کردن به جواب بگویید:

<br />
#include<iostream></p>
<p>#include<conio.h></p>
<p>using namespace std;</p>
<p>int main()</p>
<p>{</p>
<p>int a = 2 , b = 3 ;     //a=2,b=3</p>
<p>a += b++ ;    //a+=(b+1)--->a=a+(b+1)--->a=2+4=6</p>
<p>cout<<"a:";</p>
<p>cout<<a;</p>
<p>getch();</p>
<p>return 0;</p>
<p>}<br />
<br />

درسته جواب می شود a=5 Smile

5-عملگرهای رابطه ای و تساوی (Relational and equality operators) ( = = , =! , > , )

از این نوع عملگرها برای مقایسه دو عبارت استفاده میشود که کاربرد اونها بیشتر در عبارات شرطی است که بعدا در موردشون بحث می کنیم . فعلا اینو بدونید که این عملگرها در صورت درست بودن مقایسه، مقدار درستی و در غیر این صورت مقدار نادرستی را برمی گردانند .

<br /> int a = 10 , b = 7; //a=10, b=7<br /> (a == b) ; //a=10 and not equal to b so return false<br /> (a >= b) ; //a=10 greater than b so return false<br /> (a > b) ; //a=10 greater than b so return true
<br />

order of operations ( مرتبه عملگرها ) :

وقتی که بیش از یک operator در عبارت دیده شود ارزیابی مرتبه به اولویت قاعده ان ها بستگی دارد .

1-ضرب و تقسیم قبل از جمع و تفریق اتفاق می افتد. برای مثال 1-3*2می شود 5 و اگر بگوییم 4 اشتباه هست . و حالا این عبارت را خود بگویید 1-2/3 می شود 1- و نمی شود 1

2-اگر operators در اولویت یکسانی باشند از چپ به راست ارزیابی می شوند مثل این عبارت 60/59*100 که می شود 6000/59 و یعد تقسیم انجام می شود . ولی اگر این عبارت را اینگونه تفسیر کنید 100/1.01 یعنی از راست به چپ ارزیابی کنید اشتباه هست .

3-گاهی اوقات شما می خواهید به اولویت ها برتری بدید برای این کار شما می تونید از پرانتز ها استفاده کنید . عبارت در پرانتزها در اولویت اول قرار دارند . بنابراین 2*(3-1) ، اگر پرانتز در این عبارت ایجاد نشده بود می گفتیم جواب میشود 5- ولی چون پرانتز اعمال شده است و اولویت عبارت در پرانتز در اولویت اول قرار دارد جواب می شود4- ، و همچنین شما می توانید برای راحتی در فهم و خواندن عبارات از پرانتز استفاده کنید.

جدول زیر تقدم عملگرها را با اولویت از بالا به پایین به ما نمایش میدهد.

برای درک مطلب به بررسی مثالی می پردازیم :

<br /> a = 20-3*4+19%(3*(2+1));</p> <p>
<br />

20-3*4+19%(3*3)

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


20-3*4+19%9


با محاسبه مقدار اولین پرانتز، دوباره عبارت داخل آنرا بدلیل وجود پرانتز دوم و تقدم آن نسبت به دیگر عملگرها محاسبه می کنیم.


20-12+19%9


حالا از بین عملگرهای موجود * و % از تقدم بالاتری برخوردارند. بدلیل یکسان بودن تقدم این دو از چپ شروع کرده و با رسیدن به هر کدام از این دو عملگر مقدار عبارت را محاسبه میکنیم که در این مثال ابتدا * محاسبه می شود.



20-12+1


سپس نوبت به % میرسد

.8+1

اکنون عملگرهای + و – در عبارت باقی می مانند که بدلیل یکسانی تقدم اولین عملگر از چپ یعنی – ابتدا محاسبه می گردد.

و در پایان عملگر + محاسبه شده که در نهایت به جواب 9 می رسیم.

جلسه هشتم : :Gol:

Function

Floating-point : در جلسات قبل ما مشکلاتی داشتیم که در رابطه با مقدار دهی اعدادی که integer نبودند که در این جلسه به مقداردهی اعداد float (اعشاری ) بجای استفاده از کسر می پردازیم .
اعداد اعشاری هم می توانند به خوبی اعداد integer نمایش داده شوند . و حالا دو نوع floating- point وجود دارد که float و double نامیده می شوند شما می توانید floating-point variable ایجاد کنید و انها را مقداردهی کنید . برای مثال :

<br /> double pi;</p> <p>pi = 3.14159;
<br />

همچنین از این دستورات هم می توان استفاده کرد تنها تفاوتی که با کد بالا دارد این است که declaration , assignment مربوط به value هم زمان انجام می شود .

</p> <p>int x = 1;<br /> String empty = "";<br /> double pi = 3.14159;
</p> <p>

در حقیقت این کد متداول تر از کد اول است و ترکیب دو دستور declaration , assignment را initialization می نامند .
floating-point ها گاهی اوقات گیج کننده هستند زیرا بین floating-point , integer ها اشتراکی وجود دارد . برای مثال اگر شما value 1 را داشته باشید ایا این value می تواند integer باشد؟ یا floating-point ؟ یا هر دو ؟
به طور واضح c++ می تواند integer value 1 از floating value 1.0 تشخیص دهد. اگرچه هر دو یک عدد هستند . پس value 1 هم می تواند integer باشد و هم می تواند floating-point باشد .
ولی شما نمی توانید این دو نوع را به جای هم مقدار دهی کنید برای مثال :

<br /> int x = 1.1;
<br />

و این غیر قانونی است زیرا variable یک integer هست و value یک floating-point هست . اما نوع floating-point می تواند نوع integer را convert کند برای مثال :

<br /> double y = 1;<br />
<br />

که از نظر فنی کد بالا باید غیر قانونی باشه چون variable یک float است ولی value یک integer است .ولی c++ این اجازه رو میده که float بتونه integer رو convert کنه .که برعکسش رو مجاز نمی دونه . که این ارفاق خیلی مناسب هست اما گاهی اوقات می تونه باعث مشکلاتی بشه برای مثال :

<br /> double y = 1 / 3;
<br />

شما الان انتظار دارید که variable y مقدار 0.333333 رو دریافت کنه . که این است یک مقدار قانونی چون اعشاری است . اما در حقیقت مقدار 0.0 را می گیرد چون عبارت سمت راست تساوی نسبت دو عدد صحیح را بیان می کند . وبا توجه به جلسات قبل ما متوجه شدیم که تقسیم دو عدد صحیح همیشه یک عدد صحیح هست که در حقیقت این مقدار از رند عدد 0.333333 بدست امده و شده 0.0 که در اینجا اول مقدار 0 بدست می اید و چون بعد باید در variable y به جنس double در ریخته شود می شود 0.0
یک راه برای رفع این مشکل می تواند این باشد که ما دو عدد double را بر هم تقسیم کنیم .

<br /> double y = 1.0 / 3.0;
<br />

که حالا می تواند مقدار دقیق 0.333333 را به ما بدهد .پس می توان این نتیجه را گرفت که برای بدست اوردن مقدار دقیق یک تقسیم هر دو عدد را از نوع double نوشت .

حالا فک می کنید تفاوت float , double چیست ؟
نوع float برای ذخیره اعداد اعشاری مثل 12.5، 7805.11 بکار می رود.نوع double برای اعداد اعشاری بزرگتر از float استفاده می شود.

جلسه نهم ::Gol:

Converting from double to int :

c++ می تونه convert کنه int رو به double به صورت اتوماتیک ، چون هیچ اطلاعاتی در این انتقال حذف نمی شود .مانند :

float number=2;</p> <p>
<br />

از طرف دیگر convert کردن float به int نیاز به گرد کردن برشی دارد اگه معادل فارسیش رو درست گفته باشم چون معادل انگلیسیش میشه ( rounding off ) ، که c++ این عملیات رو به صورا اتوماتیک انجام نمیده .

ساده ترین راه برای convert کردن floating-point به int استفاده از typecasting هست . که typecasting همانند فراخوانی است . زیرا در این عمل یک type گرفته می شود و به type دیگر cast می شود.که قاعده typecasting شبیه فراخوانی توابع(function call) هست .برای مثال :

<br /> double pi = 3.14159;</p> <p><br /> int x = int (pi);</p> <p>
<br />

int function برمیگردونه مقدار int ، و x مقدار 3 را میگیرد . که همیشه این convert کزدن با rounding down همراه هست .

جلسه دهم ::Gol:

Math functions :

در ریاضیات شاید شما توابعی مانند sin و log دیده باشید و ارزیابی عبارت هایی شبیه (2 sin(П/و log(1/x )

که شما اول عبارت های داخل پرانتز را ارزیابی می کنید . که به این عبارت argument یک function گویند برای مثال П/2 است تقریبا 1.571 و 1/x است 0.1(اگر x=10 باشد ) . که شما می توانید ارزیابی این function ها رو خودتان انجام دهید .برای مثال sin 1.571 هست 1 و log 0.1 هست 1-

که این فرایندها به صورت مکرر به ارزیابی عبارت های پیچیده شبیه log(1/ sin(П /2)). به کار برده می شوند . که ما اول محاسبه می کنیم arguman داخلی ترین function و بعد function را محاسبه میکنیم .
C++ فراهم می کند مجموعه ای از ساختار function ها را که شامل عملیات ریاضی هست مانند

double log = log (17.0);<br /> double angle = 1.5;<br /> double height = sin (angle);
<br />

خط اول log را با logarithm 17.0 مقداردهی می کند که این function هست با base (پایه ) 10 .
خط دوم مقدار angle را با مقدار 1.5 مقدار دهی می کند..c++ فرض می کند که این مقدار هایی که برای function هایی مانند sin ,cos , tan , cot , acos , asin ,..….. استفاده می کنید بر حسب رادیان هست .
قبل از این که شما از این function ها استفاده کنید باید از این header file استفاده کنید
#include از این هم می تونید استفاده کنید و فرقی نمیکنه #include

Header file ها شامل اطلاعاتی مورد نیاز compiler درباره function ها هستند برای مثال وقتی ما از این header file استفاده می کنیم #include . این heard file دررباره input و output هست (i/o) ، که شامل object به نام cout هست .c++ شامل یک ویزگی قدرتمند هست که نامیده می شود namespace که به شما اجازه میده که پیاده سازی cout خودتون را بنویسید ، که این header file نقش یک انگشت شصت را دارد . که این را باید هر جا از #include استفاده کردید به کار ببرید یعنی همیشه باید با هم باشند . شبیه math header file که دربرگیرنده اطلاعاتی درباره math function ها هست . که شما می تونید این header file رو در اول برنامه include کنید

#include <cmath>
<br />

جلسه یازدهم ::Gol:

Adding new functions :
تاکنون ما از تابع هایی که در خود c++ طراحی شده است استفاده می کرده ایم . مانند log(); یا sin(); . اما از حالا خودتون می تونید یه function جدید add کنید و بسازید و صدا بزنید یعنی همان طور که function های قبلی را صدا می زدید حالا خودتون یک function جدید بسازید و صدا (call) بزنید .

ما قبلا یک function به نام main داشتیم . که این function که main نامیده می شود خاص هست زیرا برای compiler مشخص می کند که برنامه را از کجا اجرا کند . اما تعریف این function شبیه به function های دیگر هست .


</p>
<p>void NAME ( LIST OF PARAMETERS ) {<br />
STATEMENTS<br />
}<br />

مثال بالا یک function هست که می توانیم هر نامی که دوست داشتیم برای function خود انتخاب کنیم .البته بجز keywords و کلمه main ، چون نمی شود شما در یک برنامه چند function به اسم main داشته باشید .در کد بالا list of parameters اطلاعات مورد نیاز برای function را تعیین می کند .اما main هیچ parameter ای ندارد و با یک پرانتز خالی () مشخص شده است .
برای مثال ما می خواهیم یک function بنویسیم که هیچ پارامتری نداشته باشد .

<br /> void newLine () {<br /> cout << endl;<br /> }
<br />

این function نامیده شده است newline .که فقط یک جمله را در بر دارد.که output ان یک خط جدید ( (newline است که با ارزش endl مشخص شده است . ما همان طور که function ساخته شده در خود c++ تا بحال صدا می زدیم مثل math function ها ، این توابعی را هم که خودمان ساخته ایم را می توانیم در main صدا بزنیم .

<br /> int main ()<br /> {<br /> cout << "First Line." << endl;<br /> newLine ();<br /> cout << "Second Line." << endl;<br /> return 0;<br /> }
<br />

کد بالا می شود .Output


به space موجود در بین دو خط ایجاد شده دقت کنید که نتیجه call کردن function مورد نظر است .حالا اگه ما بخوایم space های بیشتری داشته باشیم باید چیکار کنیم .؟ ما می تونیم function مورد نظر رو چندین بار صدا بزنیم .

<br /> int main ()<br /> {<br /> cout << "First Line." << endl;<br /> newLine ();<br /> newLine ();<br /> newLine ();<br /> cout << "Second Line." << endl;<br /> return 0;<br /> }<br />
<br />

یا می تونیم یه function جدید بنویسیم و اسمش رو بزاریم threeLine() :

<br /> void threeLine ()<br /> {<br /> newLine (); newLine (); newLine ();<br /> }</p> <p>int main ()</p> <p>{<br /> cout << "First Line." << endl;<br /> threeLine ();<br /> cout << "Second Line." << endl;</p> <p>return 0;</p> <p>}
<br />

شما باید به چند چیز در این برنامه توجه کنید :
1-شما می تونید یه function رو چندین بار call کنید . در حقیقت این یک عمل متدال و مفید هست .
2-شما می تونید در یک function صدا بزنید یک function دیگر رو .در این مورد main صدا زده threeLine() و threeLine() هم newline رو صدا زده . که این هم متداول و سودمند است .
3-در threeLine() من سه جمله را در یک خط نوشته ام .این قاعده قانونی هست .اما بهتر این هست که هر جمله را در یک خط خودش قرار دهید و در سه جمله بنویسید .چون خوانایی برنامه شما رو راحت تر میکند .
4-ایجاد کردن یک function به شما این فرصت رو میده که نامی رو ارائه بدید به گروهی از جمله ها .function ها می تونن برنامه رو ساده تر کنن به وسیله پنهان کردن محاسبات پیچیده پشت یک دستور .
5-ایجاد کردن یک function می تونه برنامه رو کوچیک تر کنه به وسیله حذف کردن کدهای متوالی برای مثال یک راه کوتاهی برای چاپ کردن نه newLine این است که threeLine را سه بار صدا یزنیم .

جلسه دوازدهم ::Gol:

Definitions and uses : اگر همه تکه های کدهای جلسه قبل را در کنار هم قرار دهیم به این شکل می توان در کتار هم قرار داد

<br /> #include <iostream><br /> using namespace std;<br /> void newLine ()<br /> {<br /> cout << endl;<br /> }<br /> void threeLine ()<br /> {<br /> newLine (); newLine (); newLine ();<br /> }<br /> int main ()<br /> {<br /> cout << "First Line." << endl;<br /> threeLine ();<br /> cout << "Second Line." << endl;<br /> return 0;<br /> }</p> <p>
<br />

در این برنامه سه function تعریف شده است . به نام های threeLine , newLine , main .

در main یک جمبه وجود دارد که threeLine را صدا زده است و همچنین در threeLine سه بار newLine موردنظر call شده است .توجه کنید که این function ها در بالای برنامه تعریف شده اند به مکانی که قرار گرفته اند توجه کنید در c++ لازمه که function ها در بالا تعریف بشن .

Programs with multiple functions
:

به کد بالا دقت کنید . وقتی شما یک برنامه را می بینید از روی عادت ان برنامه را از بالا تا پایین می خوانید به فرض مثال در اینجا اول newLine و بعد threeLine و بعد هم main را می خوانید . که این خیلی گیج کننده است .زیرا این ترتیب اجرای برنامه نیست .اجرا کردن همیشه از اولین خط در main شروع میشه .صرفنظر از اینکه که main در کجای برنامه قرار دارد به فرض مثال بیایید فرض کنیم ما یک compiler هستیم و می خواهیم این برنامه را اجرا کنیم .اول به سراغ اولین خط در main می رویم اولین خط را اجرا می کنیم به سراغ خط بعد می رویم و می بینیم که threeLine صدا زده شده است . به سراغ threeLine می رویم و می بینیم که سه بار newLine صدا زده شده است هر بار به سراغ newLine می رویم و اجرایش می کنیم تمام که شد برمیگردیم سراغ threeLine و این را هم تمام می کنیم تمام که شد حالا به سراغ main می رویم و این را هم تمام می کنیم.

جلسه سیزدهم : :Gol:

Parameters and arguments :

تعدادی از function ها که ما تاکنون استفاده کرده ایم دارای پارامتر (parameters ) هایی بوده اند که value هایی هستند که شما به function ها اجازه می دهید از انها استفاده کنند . برای مثال اگر می خواهید مقدار sin یک عدد را بدانید . شما مجبورید که تعیین کنید ان عدد چه عددی است . سپس function به نام sin() که یک مقدار double را می گیرد را صدا می زنید و این پارامتر را به او می دهید که به این مقدار مورد نیاز function ، پارامتر گویند .

تعداد از functions بیش از یک پارامتر می گیرند شبیه pow() که دو عدد از جنس double را می گیرد که اولین عدد پایه و دومین عدد توان هست .
توجه کنید که در هر یک از این موارد ما نه تنها باید مقدار پارامتر بلکه نوع ان را باید متذکر شویم .برای مثال

<br /> Void print Twice (char phil) {<br /> cout << phil << phil << endl;<br /> }
<br />

این function فقط یک پارامتر را می گیرد به نام phil که از نوع char هست و این پارامتر هر چی باشه دو بار چاپ میشه طبق دستور نوشته شده .من نام phil رو انتخاب کردم برای پیشنهاد دادن و به طور کلی شما می تونید یه اسم گویاتر رو انتخاب کنید به انتخاب خودتان است .

وقتی ما یک function را صدا می زنیم باید اون char رو فراهم کنیم که می خواهیم به عنوان پارامتر برای function بفرستیم یا pass بدیم . برای مثال :

int main () {<br /> printTwice (’a’);<br /> return 0;<br /> }<br />
<br />

به مقدار value تعیین شده برای char گفته می شود argument . و ما اینگونه می گوییم که یک argument پاس داده شده است به یک function . که در این مورد value 'a' پاس داده شده به عنوان argument به printTwice که دو بار چاپ خواهد شد .

هشیار باشید که اگر بجای char value در مثال قبل ، از char variable استفاده شد از این variable به عنوان argument استفاده کنید . برای مثال :

int main () {<br /> char argument = ’b’;<br /> printTwice (argument);<br /> return 0;<br /> }
<br />

نکته : اسم variable که به عنوان argument پاس داده می شود هیچ ارتباطی با اسم پارامتر ندارد بر فرض مثال در مثال یاد شده اسم argument بود همان argument و اسم پارامتر phil ، که این دو اسم می توانند یکسان باشند یا متفاوت ، سلیقه خودتان است .

اما این مهمه که بدونید argument و پارامتر دو چیز یکسان نیستند جز در این پیشامد که اون ها دارای مقدار یکسان هستند .

Value ایی که شما فراهم می کنید به عنوان یک argument باید type یا نوع یکسانی با پارامتر function صدا زده داشته باشد . که این مسئله خیلی مهم هست . اما گاهی اوقات گیج کننده اسنت . زیرا گاهی اوقات c++ ، convert میکنه argument رو از یک type به type دیگه . و برنامه هیچ اری نمیده .

: :Gol: جلسه چهاردهم

: Parameters and variables are local

پارامترها و متغیر ها فقط در محدوده function خودشون موجودیت دارند . با توجه به کد جلسه قبل در داخل محدوده main چنین متغیری به نام phil شناخته شده نیست .اگر شما اصرار به استفاده از این متغیر در main داشته باشید compiler به شما ایراد خواهد گرفت .و همچنین در printTwice چیزی به نام argument شناخته شده نیست .

این متغیرهای شبیه argument به انها local گویند .برای مثال به این stack diagram توجه کنید .


هر موقع یک function صدا زده می شود .یک نمونه جدیدی از function ساخته می شود .هر نمونه ای جدید از function پارامتر و متغیر محلی ( local variable ) را در بردارد . در این مثال main یک local variable را دارد به نام argument . و هیچ پارامتری ندارد .و printtwice هیچ local variable ایی ندارد . و یک پارامتر به نام phil دارد .

: Functions with multiple parameters

قاعدهای برای بیان و فراخوانی function ها با چند پارامتر منبعی متداول برای اشتباه های رایج است .در قدم اول به یاد بیاورید که شما مجبور بودید چندین پارامتر را بیان کنید .. برای مثال :

void printTime (int hour, int minute) {<br /> cout << hour;<br /> cout << ":";<br /> cout << minute;<br /> }
<br />

بعضی ها ممکنه کد بالا رو به اشتباه اینگونه بنویسند : (int hour, minute),اما این شکل فقط برای معرفی کردن متغیر ها استفاده میشه .نه برای پارامتر ها .
یک جای گیج کننده دیگر که وجود دارد . این است که وقتی یک function را فراخوانی می کنید نباید نوع argument ها را در ان ذکر کنید .مانند :


int hour = 11;<br />
int minute = 59;</p>
<p>printTime (int hour, int minute); // WRON
G!

که کامپایلر در این مواقع ارر میدهد و باید اینگونه نوشت . printTime (hour, minute).

جلسه پانزدهم : :Gol:

The modulus operator:

Modulus operator روی عدد صحیح کار می کند و باقیمانده حاصل میشود. در c++ ، این oprator با این علامت نشان داده می شود (%) .برای مثال :

<br />
 
int quotient = 7 / 3;<br /> int remainder = 7 % 3;
</p> <p>

اولین operator ، تقسیم دو عدد صحیح را نشان می دهد که حاصلش 2 است و دومین operator که همان modulus operator هست عدد 1 حاصل می شود .

Modulus operator کاربردی های مفیدی را از خود نشان میدهد ، برای مثال شما می توانید با این operator چک کنید که ایا یک عدد بر عدد دیگر بخش پذیر است یا نه .که اگر x%y نتیجه اش شد صفر ، معلوم می شود x بر y

بخش پذیر است .

همچنین شما می توانید با استفاده از modulus operator رقم یکان یک عدد را بدست اورید . برای مثال x%10 رقم یکان عدد x را می دهد .و همچنین x%100 رقم یکان و دهگان عدد x را می دهد .

Conditional execution :

برای اینکه ما بتوانیم یک برنامه خوب را بنویسیم نیاز داریم به چک کردن شرایط ها و تغییر رفتار برنامه طبق ان conditional statements این توانایی رو به ما میده که ساده ترین فرم ان استفاده از if است.

<br /> if (x > 0) {<br /> cout << "x is positive" << endl;<br /> }<br />
<br />

در کد بالا عبارت داخل پرانتز را condition گویند . که اگر if موردنظر true باشد یعنی x>0 باشد جمله داخل براکت اجرا شود و اگر شرط false باشد یعنی condition برقرار نباشد .هیچ اتفاقی نیفتد .و این condition ها می تونه شامل هر comparison operators باشد مانند

<br /> x == y // x equals y<br /> x != y // x is not equal to y<br /> x > y // x is greater than y<br /> x < y // x is less than y<br /> x >= y // x is greater than or equal to y<br /> x <= y // x is less than or equal to y
<br />

این operator ها شاید برای شما اشنا باشد که c++ از ان operator ها استفاده می کنه که یه تفاوت کمی با symbol موجود در ریاضیات داره شبیه = و ... این یک error متداوله که بجای == از = استفاده کنید . به یاد بیاورید از جلسات قبل که = است یک assignment operator و == است comparison operator ، که هر مقداری که در دو طرف این comparison operator قرار میگیرد باید برابر باشد و یادتان باشد که در استفاده از این operator باید int را با int و double را با double مقایسه کنید و متاسفانه با این operator شما نمی تونید string ها را مقایسه کنید . که برای این مقایسه راه دیگری وجود دارد که در جلسات بعد خواهم گفت .

جلسه شانزدهم : :Gol:

Alternative execution :

دومین نمونه از conditional execution است alternative execution . در این موقعیت دو حالت وجود دارد . که condition مشخص میکنه که کدوم باید اجرا بشن .عبارتی شبیه این :

<br /> if (x%2 == 0) {<br /> cout << "x is even" << endl;<br /> } else {<br /> cout << "x is odd" << endl;<br /> }<br />
<br />

با توجه به کد بالا اگر باقیمانده موقعی که x بر 2 تقسیم می شود صفر شود ما می دانیم که x زوج است .و در این کد message مربوطه نمایش داده می شود .و اگر شرایط برقرار نبود یعنی false بود .دومین جمله نمایش داده خواهد شد . چون condition ما باید true یا false باشد . که دقیقا یکی از alternative اجرا خواهد شد .
از طرف دیگر شما می تونید برای این چک کردن عدد موردنظر که even هست یا odd کد خود را پنهان کنید به عبارتی ان را در یک function دیگر بنویسید .


<br />
void printParity (int x) {<br />
if (x%2 == 0) {<br />
cout << "x is even" << endl;<br />
} else {<br />
cout << "x is odd" << endl;<br />
}<br />
 

اگر شما می خواید از این function استفاده کنید باید اون رو در main صدا بزنید و عدد مورد نظر رو براش بفرستید .مانند :

printParity (17);
<br />

جلسات قبل رو به یاد بیاورید که با توجه به انها می گفتیم argument ها را هیچ وقت declare نمی کنیم و پارامتر ها باید declare بشن . در حالی که c++ می تونه چیزی مخالف با type موردنظر کار رو انجام بده .ولی شما باید مخالفت کنید و این کار رو نکنید . اشتباهی مانند :


<br />
int number = 17;<br />
printParity (int number);       // WRONG!!
!

بنام خدا
سلام
من این کد رو در محیط سی پلاس پلاس ویژوال کپی کردم :

#include

#include

using namespace std;

//main:generate some simple output

int main()

{

cout"Helloworld"endl;

getch();

return0;

}


در قسمت استاتوس این جمله رو دارم:
ctrl+r was passed waiting for second key of chord

صفحه ای که در آن کد هارا کپی کرده ام ازش عکس گرفتم تا بهتر اطلاعات بدم از کارم .
اشکالم اینه که برنامه ران نمیشه.
گفتنی هست من طبق متد شما که ویژوال استادیو 2010 هس رفتم و صفحه را باز کردم اما ویژوال من 2008 هست و در یکی از مراحل صفحات من با شما فرق داشت .
این تصویر محیطی که باز کردم :



آیا کلید فوری ایی داریم که به ما خط هایی که ارور در انها رخ داده است برویم ؟ اگر بلی . میشه بگید کدوم هس ؟
مثلن در سی شارپ با گرفتن کنترل و جی خطی که در آن خطا داریم نمایش اعلام میشود

TAVALOD1;455294 نوشت:
اشکالم اینه که برنامه ران نمیشه.

بین کلمه return و 0 باید یه فاصله باشه