انواع داده ها در C++ :
در C++ شش نوع داده وجود دارد. منظور از داده، متغیری است که در قالب متن یا عدد در طول برنامه مورد استفاده قرار می گیرد.
داده های موجود در C++ عبارتند از : char, int, float, double, void, bool ,string
نوع char برای ذخیره داده های کاراکتری مانند : ‘a’ , ‘z’ , ‘W’ بکار می رود.
از نوع int برای ذخیره اعداد صحیح مانند 128، 5، 4508 استفاده می شود.
نوع float برای ذخیره اعداد اعشاری مثل 12.5، 7805.11 بکار می رود.
نوع double برای اعداد اعشاری بزرگتر از float استفاده می شود.
از boolean برای ذخیره مقادیر منطقی استفاده می شود ( درستی یا نادرستی ).
نوع void هیچ مقداری را نمی گیرد
نوع دیگری از داده وجود دارد که برای استفاده از رشته ها مورد استفاده قرار میگیرد که string گفته میشود اما در برخی از نسخه های کامپایلر زبان برنامه نویسی C++ پشتیبانی نمی شود، لذا مجبور به استفاده از آرایه ای از کاراکترها برای این منظور خواهیم بود .
متغیرها
در طول برنامه نویسی، کاربران با متون و اعداد زیادی کار می کنند، به همین دلیل آنها را در متغیرها ذخیره می کنند. در واقع متغیر ها نامهایی برای کلمات ذخیره شده در حافظه سیستم هستند.
برای استفاده از یک متغیر ابتدا باید آن را در برنامه تعریف نماییم که روش تعریف متغیر بصورت زیر است :
;نام متغیر نوع متغیر
int count ;
در قطعه کد بالا می بینیم که هر متغیر باید دارای نام منحصر بفردی باشد که برای نامگذاری متغیر ها باید توجه داشته باشیم که :
- برای نامگذاری متغیرها از ترکیبی از حروف a تا z یا A تا Z ، ارقام و خط ربط ( _ ) استفاده می شود.
- اولین کاراکتر نام نباید از ارقام باشد.
- نام می تواند هر طولی داشته باشد اما فقط 31 کاراکتر ابتدایی استفاده می شوند.
اسامی غیر مجاز اسامی مجاز
-------------------------------------
count3 3count
count .count
co_unt co.unt
مقدار دادن به متغیر ها
بعد از تعریف یک متغیر باید مقداری را به آن نسبت دهیم که به یکی از چهار روش زیر می توان اینکار را انجام داد :
int x = 4;
char char1 = 'a' , char2 = char3 = 'y';
bool b = true;
- بعد از تعریف و با عمل انتساب ( = ).
int y;
y = 12;
- با استفاده از قالب سازنده.
float float_1 (2);
- دستورات ورودی که در فصل مربوط به ورودی / خروجی گفته خواهد شد.
float a, b;
cin >> a >> b;
ثوابت و عملگرها در C++ - (Constants)
ثوابت مقادیری در برنامه هستند که مقدارشون در طول برنامه قابل تغییر نیست و اگر که بخوایم مقدار ثوابت رو تغییر بدیم با خطایی از طرف کامپایلر مواجه می شیم.
برای تعریف ثوابت در c++ دو الگو وجود دارد :
- 1. با استفاده از دستور #define
#define <name> <value>
#include <iostream>
#define P 3.14
int main()
{
cout >> P;
return 0 ;
}
3.14
به محل استفاده از این دستور دقت کنید که در کجای برنامه مورد استفاده قرار گرفته است (بعد از فایلهای سرآیند) .
نکته ای که باید در اینجا توجه نمود و در مثال بالا هم مشخص بود این است که در پایان دستور #define از ; (سمی کالن) استفاده نمی کنیم.
- 2. با استفاده از کلمه کلیدی const :
const <مقدار> = <نام ثابت> <نوع داده>;
#include <iostream>
int main()
{
const float P = 3.14 ;
cout >> P;
return 0 ;
}
3.14
می بینیم که محل این دستور درون خود تابع main هست اما دستور #define در بیرون از تابع main و در بالای برنامه.
عملگر ها (Operators)
برای انجام عملیات بر روی داده ها از عملگرها استفاده می کنیم. عملگرها نمادهایی هستند که عملیاتی مانند جمع،ضرب، کوچکتری و از این قبیل را روی داده ها انجام می دهند که عبارتند از :
- انتساب ( Assignment ) ( = )
از این عملگر برای نسبت دادن یک مقدار به یک داده استفاده می شود .
#include <iostream>
int main()
{
int a, b ;
a = 10 ;
b = 4 ;
a = b ;
b = 7 ;
cout >> "a:" ;
cout >> a ;
cout>> "b:" ;
cout >> b ;
return 0 ;
}
a:4 b:7
نحوه عملکرد این عملگرد به این شکله که مقدار سمت راست تساوی را در سمت چپ قرار میدهد.
- عملگرهای محاسباتی ( Arithmetic Operators ) ( + , - , * , / , % )
پنج عملگر محاسباتی موجود در C++ عبارتند از :
+
|
جمع
|
-
|
تفریق
|
*
|
ضرب
|
/
|
تقسیم
|
%
|
باقیمانده تقسیم
|
با 4 عملگرد اول آشنا هستید اما آخرین که خوانده می شود ( مـد "با واو تلفظ کنید" ) عملوند سمت چپ را بر عملوند سمت راست تقسیم کرده و باقیمانده آنرا بدست می آورد .
#include <iostream>
int main()
{
int a = 11;
int b = 3;
int c = a % b;
cout >> "c:" ;
cout >> c ;
return 0 ;
}
c: 2
- عملگرهای ترکیبی ( Compund Operators ) ( =+ , =- , =* , =/ )
عبارت
|
برابر است با
|
a += b
|
a=a+b
|
a -= b
|
a=a-b
|
a *= b+1
|
a=a*(b+1)
|
a /= b
|
a=a/b
|
در واقع جواب این نوع از عملگرها برابر حاصل عمل عملگر، بر خود عبارت سمت چپ و عبارت سمت راست تساوی است . علت اینگونه نوشتار هم مختصرنویسی است.
عملگرهای ترکیبی دیگری نیز وجود دارند که در ادامه در موردشان بحث می کنیم مثل : => و =<
#include <iostream>
int main()
{
int a ,b = 3;
a = b;
a += 2;
cout >> a;
return 0 ;
}
5
- عملگرهای افزایش کاهش ( Increase , Decrease ) ( ++ , -- )
این عملگرها یک واحد به عملوند خود اضافه می کنند و عمل اونها به اینکه در سمت چپ یا راست عملوند خود قرار بگیرند متفاوت است .
#include <iostream>
int main()
{
int a = 2, b = 3;
a += b++;
cout >> "a:";
cout >> a;
return 0;
}
a:6
اگر عملگر سمت راست یا چپ عملوند خود باشه در هر دو صورت یک واحد به عملوند اضافه می شود . اما تفاوت این دوحالت در عبارات محاسباتی خود را نشان می دهد . عبارات محاسباتی ترکیبی از متغیرها، ثوابت و عملگرها هستند مثل 4*5-5/10 و 6-x/y
int A , B = 3;
A = ++B;
A=4 ,B=4
در مثال بالا چون افزایش قبل B قرار دارد ابتدا یک واحد به B اضافه شده، پس در همینجا B می شود 4 و در پایان مقدار فوق در A قرار می گیرد .
int A , B = 3;
A = B++;
A=3 ,B=4
اما در مثال بالا چون افزایش بعد از B قرار دارد اول مقدار B که 3 هست در A ریخته میشود و بعد یک واحد به B اضافه میشود .
- عملگرهای رابطه ای و تساوی (Relational and equality operators) ( = = , =! , > , < , =< , => )
از این نوع عملگرها برای مقایسه دو عبارت استفاده میشود که کاربرد اونها بیشتر در عبارات شرطی است که بعدا در موردشون بحث می کنیم . فعلا اینو بدونید که این عملگرها در صورت درست بودن مقایسه، مقدار درستی و در غیر این صورت مقدار نادرستی را برمی گردانند .
int a = 10 , b = 7;
(a == b) ;
(a >= b) ;
(a > b) ;
عملگرهای دیگه ای هم وجود دارند که در آینده و با برخورد به اونها در موردشون صحبت می کنیم تا مبحث کسل کننده و طولانی نشود .
|