تیم برنامه نویسی گروه تمدن

مرجع کامل فارسی برنامه نویسی به زبان سی پلاس پلاس

  • Increase font size
  • Default font size
  • Decrease font size

نوع داده و عملگرهاي اصلي

فرستادن به ایمیل چاپ مشاهده در قالب پی دی اف

به نام خدا

در اين بخش قصد داريم در موارد زير مطالبي را ارائه دهيم:

الف)انواع داده در سي پلاس پلاس

+ تعريف ثوابت

+متغير ثبات يا register

+ تعريف متغيرها در بلوك هاي مختلف

ب) عملگرها در سي پلاس پلاس

انواع داده در سي پلاس پلاس

داده ممكن به صورت هاي مختلف باشند مثل عدد، كاراكتر و... براي استفاده از يك داده از نوع عدد ما مي توانيم مستقيماً به كامپيوتر بگوييم براي مثال عدد 2 را براي ما چاپ كند و يا اينكه 2+3 را چاپ كند كه در واقع عدد 5 را چاپ مي كند اما در اينجا ما نمي توانيم مقدار حاصل جمع را نگه داريم. براي نگهداري يك داده مي بايست يك نماد به آن داده نسبت دهيم. اينگونه مي توانيم مقدار آن را نگه داريم. مثلا عدد 2 را به نماد a نسبت دهيم و بگوييم كه a را با عدد 3 جمع كن و مقدار آن را در b ذخيره كن.

نماد ها در سي پلاس پلاس محدود نمي باشند و هرچيزي مي تواند باشد، فقط مي بايست در تعريف آن ها به موارد زير توجه شود:

1. در نام نماد نمي توان از space استفاده نمود.

2. نماد ها نمي توانند شامل عملگرها(+، -و...) باشند.

3. نام يك نماد نمي تواند با يك عدد شروع شود.


در سي پلاس پلاس همانطور كه اشاره شده انواع مختلفي از داده وجود دارد،‌پس ابتدا به بررسي انواع اصلي داده ها مي پردازيم:

int: يا همان integer است كه شامل اعداد صحيح مي شود و 4 بايت حافظه اشغال مي كند.

float: همان اعداد اعشاري است. با 4 بايت حافظه اشغالي.

double: اين نوع هم مثل نوع قبل براي اعداد اعشاري به كار مي رود با اين فرق كه دقت بيشتري دارد.

char: شامل نوع داده كاركتري مي باشد كه كد اسكي* آن بين 0 تا 255 مي باشد. و تنها يك بيت حافظه مي گيرد.

bool: ارزش منطقي درست(true) و غلط(false) مي باشد و يك بايت حافظه مي گيرد.


حال كه انواع داده را شناختيد بايستي بدانيد كه نمي توان يك نماد را در آنِ واحد به دو نوع داده اي نسبت داد. از آنجا كه نمادها قابل تغيير هستند به آنها متغير مي گويند. طرز نسبت دهي متغير به نوع داده اي به شكل زير است:

نام متغير     نوع داده;


به عنوان مثال:

int a;
float b;  
double ab;    
char a1b;    
bool b0;

امكان دارد بر حسب نياز شما بخواهيد در زمان تعريف يك متغير، به آن مقدار اوليه دهيد. به اين منظور كافي است در مقابل نام آن يك علامت = بگذاريد و سپس آن را مقدار دهي كنيد:

int a=5;   
float b=1.232;
double ab=2;
char a1b='t';
bool b0=false;

تنها نكته قابل ذكر در نوع مقدار دهي يك متغير از نوع كاراكتري است كه بايد مقدار اوليه را در داخل  '   ' بگذاريم.

اگر شما بخواهيد چند متغير از يك نوع داده اي بسازيد كافي است با ذكر يك بار نوع داده اي و گذاشتن ويرگول بين متغيرها آن ها را تعريف كنيد. مثل زير:

int a=5, a1,a2,a3=4,a5=0;


 

تعريف ثوابت

گاهي ممكن است نياز باشد به يك نماد يك مقدار دهيم كه در تمام طول اجراي برنامه مقدار آن ثابت بماند. اين كار به دو صورت قابل اجرا است.

1. در ابتداي برنامه يا همان header اين گونه بنويسيم:

# define  مقدار اوليه    اسم متغير

# define Num 10

2. آوردن كلمه const در main برنامه، به اين صورت:

const مقدار اوليه= اسم متغير    نوع متغير;

const int a=4;

بايد توجه داشت كه در تعريف ثوابت نمي توان روي آن متغيرهاي اعمال رياضي و... انجام داد. فقط مي توان از آن استفاده نمود.


متغير ثبات يا register:

در اين نوع مقدار دهي، حافظه تعلق گرفته در CPU ذخيره مي شود نه در memory (كه در اينجا ram مي باشد).

نوع تعريف آن به صورت زير است:

register     اسم متغير    نوع داده اي;

register int x;

اين كار باعث افزايش سرعت پردازش مي شود. چرا كه در حالت عادي ابتدا از ram متغير به cpu فرستاده مي شود و سپس روي آن پردازش صورت مي گيرد ولي در اينجا مستقيماً پردازش صورت مي گيرد. بايد توجه داشت كه حافظه رجيستر محدود است پس نمي توان تعداد زيادي متغير در آن تعريف كرد.



تعريف متغيرها در بلوك هاي مختلف

اگر هر تابع،‌كلاس،‌حلقه، دستور شرطي و ... را يك بلوك در برنامه نويسي در نظر بگيريم. مي توانيم در هر كدام از آنها يك متغير تعريف كنيم. اما بايد توجه داشت با پايان يافتن بلوك ها،‌متغيرها نيز از بين مي روند. بنابراين مي توانيم در يك برنامه در بلوك هاي مختلف متغيرهايي با نام يكساني داشت.مثال:

int main(){
int i;
for(int i=0;i<20;i++)
cout<<i;

for(int i=10;i>0;i--)
cout<<i;

return 0;
}//end main

 


عملگرها در سي پلاس پلاس

منظور از عملگرها نماد هايي مثل =و+و-و... است كه در يك يا چند متغير تأثير مي گذارد.انواع عملگر ها عبارتند از:

فرض كنيدa,b,c از نوع int  تعريف شده باشندو به ترتيب داراي مقدار اوليه 5و20و2 باشند:

عملگر هايي كه باعث تغيير مي شوند:

+: دو عملوند سمت راست و چپ خود را با هم جمع مي كند. مثال a+b كه مقدار آن 22 مي شود.

-: عملوند راست را از چپ كم مي كند. مثال b-a كه مقدار آن 18 مي شود.

*: عملوند راست و چپ را در هم ضرب مي كند. مثال a*b كه مقدار آن برابر 40 مي شود.

^: عملوند سمت چپ را به توان عملوند سمت راست مي رساند. مثال a^c كه مقدار آن برابر 32 مي شود.

/: اين عملگر نياز به توجه خاصي نسبت به عملگر هاي ديگر دارد.اين عملگر را در دو وضعيت مورد ارزيابي قرار مي دهيم:

وضعيت 1: اگر دو عملوند چپ و راست آن هر دو از نوع int باشند. حاصل برابر با خارج قسمت آن دو مي شود. براي مثال c/a كه برابر 2 مي شود.

وضعيت 2: اگر يكي از دوعملوند چپ يا راست از نوع اعشار باشند حاصل برابر تقسيم آن دو مي شود. مثلا اگر d از نوع float با مقدار 5 باشد حاصل

d/a برابر 2.5 مي شود.

%: دو عملگر چپ و راست بايد از نوع int باشد و مقدار برابر با باقيمانده مي شود. مثال c%a كه مقدار آن 1 مي شود.

=: كه مقدار سمت راست را در سمت چپ مي ريزد. مثال b=a كه مقدار b برابر 2 مي شود.

=+: كه مقدار سمت چپ و سمت راست را باهم جمع مي كند و در سمت چپ مي ريزد. مثال b+=a كه مقدار b برابر 22 مي شود.

=-: كه مقدار سمت راست را از سمت چپ كم مي كند و در سمت چپ مي ريزد. مثال b-=a كه مقدار b 18 مي شود.

=* , =/, =%: كه توضيحاتش مثل دو نمونه قبل است.

++: كه تنها يك عملوند مي پذيرد. اگر عملوند در سمت چپ آن قرار گيرد در محاسبات طولاني ابتدا يك واحد به عملوند اضافه مي شود و سپس آن عملوند در محاسبات ديگر وارد مي شود. و اگر در سمت راست قرار گيرد ابتدا آن عملوند در محاسبه نقش خود را ايفا مي كند و سپس يك واحد به آن اضافه مي شود.مثال:

//(1)
 b=c*a++;

//(2)
 b=c*++a;

در شماره 1 حاصل b برابر 10 مي شود و سپس مقدار a برابر 3 مي شود.

در شماره 2 ابتدا a برابر 3 مي شود و بنابراين حاصل b برابر 15 مي شود.

--: مانند دستور قبل مي ماند با اين تفاوت كه از عملوند يك واحد كم مي كند.

!: مقدار صحيح را غلط و غلط را صحيح مي كند.

عملگرهاي مقايسه اي:

==: چك مي كند كه آيا مقدار چپ و راست با هم برابر است يا خير.

=!: چك مي كند كه آيا مقدار چپ و راست با هم نابرابر است يا خير.

>:چك مي كند كه آيا سمت چپ از راست كوچكتر است يا خير.

<:چك مي كند كه آيا سمت چپ از راست بزرگ  است يا خير.

=>: چك مي كند كه آيا سمت چپ از راست كوچكتر مساوي است يا خير.

=<: چك مي كند كه آيا سمت چپ از راست بزرگتر مساوي است يا خير.

&&: بين دو شرط مي آيد و زماني درست است كه هر دو شرط درست باشند.(همان "و" منطقي است)

||: بين دو شرط مي آيد و زماني درست است كه يكي از دو شرط درست باشند.(همان "يا" منطقي است). هركدام از اين خط ها با گرفتن دكمه shift و \  ايجاد مي شود.

تبديل انواع در سي پلاس پلاس در انجام محاسبات به طور خودكار:

اين بخش خيلي مهم است و بي توجهي به آن باعث بروز مشكلات بعدي مي شود. وقتي دو نوع داده اي مختلف را با هم در يك عبارت مي آوريم. مثلا جمع مي كنيم حاصل نوعي از داده است كه بزرگتر است. مثلاً وقتي int را با float جمع مي كنيم حاصل float مي شود.توجه داشته باشيد كه int به float تبديل نمي شود بلكه حاصل به صورت اعشاري خواهد بود.

وقتي يك مقدار اعشاري را برابر يك متغيري قرار مي دهيد كه از نوع int است مقدار صحيح آن عدد اعشاري در آن ريخته مي شود.

و....

شما مي توانيد خودتان به طور دستي امتحان كنيد و ببينيد مثلاً اگر يك مقدار صحيح را مساوي يك مقدار كاراكتري قرار دهيد چه اتفاقي مي افتد و ...

يادتان باشد هيچ آموزشي بدون تمرين مثمر ثمر نخواهد بود. پس هر چه زودتر شروع به تمرين عملي كنيد!!!

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

آخرین بروز رسانی مطلب در شنبه ، 25 خرداد 1392 ، 01:49  

نظرات 

 
سورس کد سی پلاس پلاسسورس کد سی پلاس پلاس سه شنبه 04 تیر 1392 ، ساعت 07:56
ممنون از مطالب خوبتون
پاسخ | پاسخ با نقل قول | نقل قول
 

افزودن نظر

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






کد امنیتی
بازنشانی