Turi
|
Qiymatlar chegarasi
|
Egallaydigan xotira hajmi
|
Byte
|
0..255
|
8 bit = 1 bayt
|
ShortInt
|
–128..127
|
8 bit = 1 bayt
|
Integer
|
–32768..32767
|
16 bit = 2 bayt
|
Word
|
0..65 535
|
16 bit = 2 bayt
|
LongInt
|
–2147483648..2147483647
|
32 bit = 4 bayt
|
Miqdorlarning butun turi qiymatlari dasturda 10 lik yoki 16 lik sistemalarda tasvirlanishi mumkin. O‘nlik sistemada sonning har bir razryadiga 0 dan 9 qacha bo‘lgan qiymat mos keladi. O‘n oltilik sistemada sonning har bir razryadiga 0 dan 15 qacha bo‘lgan qiymat mos keladi va bu holda 10 dan 15 gacha bo‘lgan raqamlar lotin alifbosining A dan F gacha bo‘lgan harflari yordamida ifodalanadi. Bitta 16 lik raqamni saqlash uchun xotiradan 4 ta ikkilik razryad ajratiladi.
O‘n oltilik raqamlarning ikkilikdagi va o‘nlikdagi ko‘rinishi quyidagicha:
16 lik
raqam
|
Ikkilikdagi ko‘rinishi
|
O‘nlikdagi ko‘rinishi
|
|
16 lik
raqam
|
Ikkilikdagi ko‘rinishi
|
O‘nlikdagi ko‘rinishi
|
0
|
0000
|
0
|
8
|
1000
|
8
|
1
|
0001
|
1
|
9
|
1001
|
9
|
2
|
0010
|
2
|
A
|
1010
|
10
|
3
|
0011
|
3
|
B
|
1011
|
11
|
4
|
0100
|
4
|
C
|
1100
|
12
|
5
|
0101
|
5
|
D
|
1101
|
13
|
6
|
0110
|
6
|
E
|
1110
|
14
|
7
|
0111
|
7
|
F
|
1111
|
15
|
Agar dasturdagi son 16 lik sistemada yozilsa, u holda bu son oldida probelsiz $ belgisi yoziladi, masalan: $8, S15, $AA, $BA, $A1.
Haqiqiy turdagi o‘zgarmas miqdorlar o‘z navbatida qo‘zg‘almas nuqtali va qo‘zg‘aluvchi nuqtali sonlarga bo‘linadi.
O‘nli kasrlarning butun va kasr qismini ajratuvchi “vergul” o‘rniga
Paskal dasturlash tilida “nuqta” yoziladi.
Qo‘zg‘almas nuqtali sonlar – o‘nli kasr ko‘rinishidagi sonlardir. Masalan:
– 2.753; 283.45; 0.517; – 0.0013.
Qo‘zg‘aluvchi nuqtali sonlar – eksponensial ko‘rinishda (E yoki e yordamida) ifodalangan sonlardir. Sonlarni yozishning bu usuli juda kichik yoki juda katta sonlarni ifodalashda juda qulay. O‘qilishi quyidagicha:
2.1E+07 – “2.1 ko‘paytirilgan 10 ning 7 chi darajasi”;
2.301e–63 – “2.301 ko‘paytirilgan 10 ning minus 63 chi darajasi”.
Masalan, 3400000000 = 3,4·109 soni Pascalda 3.4E+09 kabi eksponensial ko‘rinishda yoziladi. E harfidan oldin yozilgan son mantissa, E harfidan keyin yozilgan son esa tartib deb ataladi. Mantissa butun yoki qo‘zg‘aluvchi nuqtali son, tartib esa faqat butun son bo‘lishi mumkin. Masalan: 37.3879 E–3=
0.0373879; 5.31 E+5= 531000;
–0.075 E–5= –0.00000075; –2.37 E-4= –0.000237
Paskalning haqiqiy turdagi o‘zgarmas miqdorlari quyidagi jadvalda keltirilgan:
-
Turi
|
Qiymatlar chegarasi
|
Razryadi
|
Egallaydigan xotira hajmi
|
Real
|
–2,9•10–39..1,7•1038
|
11-12
|
6 bayt
|
Single
|
–1,5•10–45..3,4•1038
|
7-8
|
4 bayt
|
Double
|
–5,0•10–324..1,7•10308
|
15-16
|
8 bayt
|
Extended
|
–3,4•10–4932..1,1•104932
|
19-20
|
10 bayt
|
Comp
|
–9,2•1018..9,2•1018
|
19-20
|
8 bayt
|
Jadvaldagi “Razryadi” sonning aniq raqamlari sonini bildiradi. Haqiqiy turdagi miqdorlarning Comp turida 64 bitli butun qismli sonlar bilan ishlanadi. Bunda –263+1..263–1 oraliqdagi butun sonlar hosil bo‘ladi.
Paskal translyatorida {$N–} direktivasi avvaldan belgilangan bo‘ladi. Shuning uchun faqat REAL turdagi haqiqiy sonlar bilan ishlash mumkin bo‘ladi. Agar bu holda boshqa turlardan foydalanishga harakat qilinsa xatolik xabari chiqadi. Agar dastur boshida {$N+} direktivasi yozilsa, haqiqiy turdagi barcha miqdorlar bilan ishlash mumkin.
Belgili char turidagi o‘zgarmas miqdorlarni qiymatiga ASCII kodlash jadvalidagi bitta belgi mos keladi. Belgili miqdorlar uchun xotiradan 1 bayt joy ajratiladi. Ular dastur matnida apostrof ichiga olingan bo‘ladi. Masalan, ‘a‘; ‘B‘; ‘9‘; ‘-‘, ‘ ‘ va hokazo. Agar apostrof belgisini yozish kerak bo‘lsa, u holda u ikki marta yoziladi: ‘‘‘‘. Belgili o‘zgarmaslarni yozishda ASCII kodidan ham foydalanish mumkin: #65 (‘A‘ harfi o‘rniga), #13 (cr o‘rniga).
Mantiqiy boolean turidagi miqdorlar faqat True (rost) yoki False (yolg‘on) qiymatlardan biri bo‘lishi mumkin. Ular uchun xotiradan 1 bayt joy ajratiladi.
Satrli string turdagi o‘zgarmas miqdorlar (belgilar satri) uzunligi 0 tadan (bitta satrga sig‘dirish imkoniyatidan kelib chiqqan holda) 122 ta belgigacha bo‘lgan va apostrof ichiga olingan harf, raqam va maxsus belgilar ketma-ketligidan iborat. Satrli o‘zgarmaslar boshqaruv belgilarini # dan keyin (#13 dan tashqari) yozilgan holda o‘z ichiga olishi mumkin. Karetkani qaytarish (#13) belgisini ishlatish uchun bu belgidan avval va keyin apostrof qo‘yiladi. Satrda ketma-ket yozilgan ikkita apostrof bitta apostrof deb hisoblanadi. Apostrof ichida hech narsa yozilmasa u bo‘sh satr deyiladi. Masalan:
‘Toshkent‘; ‘A 549‘; ‘***.‘; ‘37%‘; ‘A = ‘; ‘..-...-‘ ; ‘TURBO‘ ; ‘Mo‘‘tabar‘ ; ‘‘‘‘ ; ‘;‘ ; ‘‘; #13#10; ‘Har doim‘#13‘Har kuni‘ ; #7#7‘Doimo! ‘#7#7 va hokazo.
Paskal tilida tuzilgan dasturda e’lon qilingan o‘zgarmaslar ishtirok etishi mumkin. Ular Const zahira so‘zidan keyin quyidagi ko‘rinishda e’lon qilinadi: identifikator = qiymat;
Masalan, Const A=21071963; _m10m10=‘2301‘; Pi=3.141516;
Paskal tilida zahiralangan o‘zgarmaslar bor bo‘lib, ularni e’lon qilmasdan ham ishlatish mumkin. Masalan:
True
|
“Rost” mantiqiy qiymatli
|
False
|
“Yolg‘on” mantiqiy qiymatli
|
Pi
|
3.1415926535897932385 qiymatli
|
MaxInt
|
Integer turdagi maksimal qiymatli, ya’ni 32767 qiymatli
|
MaxLongInt
|
LongInt turdagi maksimal qiymatli, ya’ni 2147483647 qiymatli
|
Aytib o‘tilganidek, dasturda o‘zgarmaslarni turini ifodalashni keragi yo‘q, ularning turini kompilyatorning o‘zi aniqlab oladi. Lekin Paskalda o‘zgarmaslarni turini ifodalash ham mumkin. Bunday o‘zgarmaslar turi aniqlangan o‘zgarmaslar deyiladi va quyidagicha e’lon qilinadi:
Do'stlaringiz bilan baham: |