انواع داده ها

داده ها در کل دو نوع هستند :
1.داد ه های ساده
2.داده های پیچیده
داده های ساده

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

داده های عددی عبارتند از :
i.اعداد صحیح integer
ii.اعداد اعشاری real
داده های عددی صحیح :( integer)

اجازه استفاده از ممیزو توان را نداریم برای مشخص شدن شان از integer استفاده می شوند این داده ها 2 بایت از حافظه را برای خودشان تخصیص می دهند .و می توانیم قبل عدد علامت عدد را هم درج کنیم و اگر عددی علامت نداشته باشد یعنی آن عدد مثبت است .
نکته: اعداد صحیح در دامنه -32768تا 32767 می باشد

Byte 0.. 65535
Short int -128 تا 127
integer -32768 تا 32767
Word 0.. 65535
Longint -2147483648 تا 2147483647
داده های عددی اعشاری یا حقیقی :((real

زمان اجرا از اعداد صحیح حافظه اشغال می کند .6 بایت از حافظه را اشغال می کند .
نکته:اعداد اعشاری در دامنه 39-2/9*10 تا 1/7*1038 تغییر می کند .


Memory required (bytes)
Significant digits
Range
type
6
11-12
2.9e-39
1.7e38
real
4
7-8
1.5e-45
3.4e38
single
8
15-16
5.0e-324
1.7e308
double
10
19_20
3.4e-4932
1.1e4932
extended
8
19_20
-2e63+1
2e63-1
comp
در مورد اعداد اعشاری به نکات زیر توجه کنید:
1.اگر روی دو نوع عدد اعشاری و صحیح عمل محاسباتی انجام دهید , نتیجه یک عدد اعشاری خواهد بود . عدم توجه به این نکته می توان در نوشتن بر نامه مشکلاتی ایجاد کند .
2.کامپیوتر اعداد اعشاری را به نماد اعشاری نشان می دهد .
2.داده های غیر عددی

دو نوع می باشند :
1.داده های نوع متن
2.داده های boolean
دو نوع داده متن در پاسکال وجود دارد:
1.داده نوع کاراکترchar
2.رشته کاراکتر ها یا string
داده های کاراکتری :( char)

کراکتر یک حرف الفبا یا یک رقم و یا یک علامت ویژه است .مثل 'g'یا'5'یا'&' و باید داخل آپوستروف باشد .از char, برای پاسخگویی به سوالات صفحه نمایش و از رشته,جهت دادن پیغام به اپراتور استفاده می شود . نوعی از داده ها به نام text نیز وجود دارد که به عنوان نوعی فایل مورد استفاده قرار می گیرد .داده های کاراکتری شامل یک کاراکتر از جدول اسکی می باشدو یک بایت از حافظه را اشغال می کند که طولشان یک کاراکتر می باشد .مثل 'a'
نکته:
اگر کاراکتر ی را به خواهیم به صورت خنثی در نظر بگیریم داخل علامت کوتیشن قرار می دهیم.
رشته ها (string):

(لازم بذکر است که داده رشته ایی فقط در توربو پاسکال موجود است)
برای ذخیره سازی اطلاعات متنی بکار می ر وند حالت آنها شبیه آرایه هاست . مثلاً کلمه program آرایه ای است که محتوای آن حروف کلمه هستند .
S name: String [20];
وقتی می گوییم[20] String یعنی 21 بایت از حافظه را اشکال می کند اولین بایت مربوط به طول رشته است .

داده های boolean یاداده های نوع منطقی

ارزش این نوع داده به یکی از دو صورت زیر است :
1.درست یا true
2.نادرست یا false
این نوع داده ها را boolean یا د اده های بولی بنام George Bool دانشمند ریاضی می نامند .
غیر عددی ساده ترین داده در برنامه نویسی است .
داده های پیچیده

داده های پیچیده شامل موارد زیر می باشد :
نکته : برای تعریف داده های نوع پیچیده از کلمه type استفاده می کنیم .
آرایه :

آرایه را به صورت یک جدول یک بعدی (سطر یا ستونی)و یا دو بعدی و یا جند بعدی در نظر بگیرید . ابتدا باید نام آرایه ,سپس تعداد عناصر و نوع آنها را مشخص نمود . به هر عنصر از آرایه توسط نام آن و اندیسی که داخل کروشه می گذاریم مراجعه می نماییم.در کل آرایه متغییری است که داده های متعددی را که همگی از یک نوع می باشند را درخود ذخیره می کند شکل تعریف آن به صورت زیر می باشد.
نام متغییر =array[lowerlimit(حد پایین)• •uplimit((حدبالا]of basetype(نوع ارایه) ;

مثال :
نام آرایه avrageمی خواهیم معدل های بین 20 تا 12 را اعشاری و صحیح نشان دهد ؟
Average= array [12 ••20] of real

رکورد :

یک رکورد ترکیب چند نوع داده در داخل یک نوع داده جدید می باشد .مثلا اطلاعات دانشجویی ,می تواند شامل نام دانشجو, آدرس و معدل نمرات او باشد و یک رکورد را در بخش type معرفی می کنیم و معرفی آن با کلمه end پایان می پذیرد.
Record Type = record
Field 1 name : field 1 Type ;
Field 2 name : field 2 Type ;
end;
حالت ترکیبی در یک رکورد امکان پذیر است همچنین یک رکورد می تواند از نوع ساده یا ترکیبی باشد مثلاً رکورد Address (آدرس) یا Age (سن)
مثال برای Age :
Age : integer (صحیح )
YY : (سال )
MM : ( ماه )
DD : ( روز )
مثال
کد:
برای رکورد  Student  
 Student  = record 
 نام   Sname : String (رشته)  [15]  (طول رشته ); 
 سن Age : integer  صحیح));
end;
داده های نوع اشاره گر (pointers)

این نوع داده ها آدرس متغییر ها را در خود دارند.
کد:
Type
 My  first pointer=^integer;
 My  second pointer=^ My pointer data item;
 My  pointer data item=record
                                 Name:  string10;
                                 Age   :   integer;
                                 Paid   :   boolean;
                                 End;
 Var
 Numptr  : My first pointer ;
 Recptr   : My second pointer ;
ثابتConst

یک مقدارعددی یا یک رشته را به یک شناسه نسبت دهیم یعنی اگر عنصر داده در سراسر بر نامه ثابت باقی بماند .
تعریف یک ثابت به صورت کلی زیر است :
Const
نام شناسه =مقدار ثابت ;