Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Muasir proq dil C++.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
7.31 Mб
Скачать

3.2. Standart tip verilənlərin ölçüsü

Proqramlaşdırma dillərinin çoxunda proqramçının tip tə­yin et­­məsinə icazə verilir. Məsələn, C dilində strukturlar, C++ dilində də siniflər proqramçı tərəfindən tə­yin­ olu­nan də­­yişən tipidir.

C/C++ dilində istifadə olunan hər bir dəyişən tipi göstə­ril­mək­lə elan olunmalıdır. Lakin tiplərin çevrilməsi məna­sın­da C/C++ dili digər tiplərə nəzərən daha az ciddidir.

Dəyişən – yaddaş oblastı ilə əlaqəli olan addır, bu oblast də­­yi­­­şənin qiymətini çoxaltmaq üçün ayrılmışdır. Elan dəyi­şə­nin adı və onun tipinin göstərilməsini nəzərdə tutur. C di­lin­də də əvvəldən təyin olunmuş 11 ədəd dəyişən tipi vardır. Bu dəyişən tiplərindən 8 -i tam (integer types) dəyişənlər üçün, qa­lan 3-ü isə həqiqi (floating types) dəyişənlər üçün nəzərdə tutulmuşdur.

C/C++ dilində həm işarəli, həm də işarəsiz dəyişənlər is­ti­­fadə olunur. Onlar eyni yaddaş həcmləri tutsalar da, müx­tə­lif diapazonlu ədədlərdir.

Cədvəl 3.1.

Verilənlərin tipi

Yadda-

şın həc­­mi (bayt)

Mümkün minimal qiymət

mümkün maksimal qiymət

signed char

unsigned char

signed short

unsigned short

signed int

unsigned int

signed long

unsigned long

1

1

2

2

2

2

4

4

-128

0

-32768

0

-32768

0

-2147483648

0

127

255

32767

65535

32767

65535

214783648

4294967295

float

double

long double

4

8

10

3.4E-38

1.7E-308

3.4E-4932

3.4E+32

1.7E+308

1.1E+4932

Əsas standart tip verilənlər bunlardır: tam, həqiqi, sim­vol.­

Bütün tam tiplər - char, short, int və long - susmaya görə işa­­­rəli olurlar, ancaq onları işarəsiz də elan etmək olar (bu vaxt onlar öz işarəli analoqlarının tutduğu qədər yaddaş tuta­caq­­lar), belə ki, onlar sıfır da daxil olmaqla yalnız bütün müs­bət qiy­mət­ləri ifadə edəcəklər. Buna görə də onlar 2 də­fə­ çox müsbət qiy­mətlər ifadə edə bilərlər.

Əgər hər hansı hesabi əməliyyat zamanı nəticə elan olu­nan tip üçün mümkün maksimal qiyməti aşırsa, onda tam­­­qiymətli dəyişənlərin qiyməti sıfırlaşdırılır.

C/C++ dilində məntiqi tip - Boolean adlı (məntiqi doğ­ru ya da yalan qiymətlərini alan) tip yoxdur, lakin tam qiy­mət­lər məntiqi tip kimi verilən ifadələrdə doğru və yalan qiy­mətləri ifa­­də edə bilərlər. Bu vaxt sıfır qiymət yalan, sıfır ol­ma­yan isə doğ­runu göstərir.

Sürüşkən vergüllü verilən tiplər (həqiqi) onluq ədəd­ və ya­ eks­ponensial formada ola bilərlər. Məsələn,

double d1=2.35;

double d2=2.0E-5;

3.3. Dəyişənlərin elan olunması

Programlaşdırma dillərinin çoxunda dəyişənlər isti­fadə edil­məzdən əvvəl proqramda tanıdılır, yəni elan olu­nur­lar. C di­lində elan əməliyyatı, yaddaşda bir yer ayrıl­ma­sı­na sə­bəb­ olur­sa, bu əməliyyata təyinetmə (definition) deyi­lir. Hər tə­yin etmə əmə­liy­yatı eyni zamanda bir elan əməliy­ya­tıdır, amma hər elan əməliyyatı bir təyinetmə olmaya bilər. Başqa cür­ desək, təyin­et­mə obyekt yaradan bir elan əməliyyatıdır.

C dilində bir dəyişəni elan etməzdən əvvəl istifadə et­­mək­ səhv (error) yaranmasına gətirib çıxarır.

C/C++ proqramlaşdırma dilində elan əməliyyatı aşağı­da­kı­ şəkildə edilir :

<tip> <dəyişənin adı> <;>

Burada nöqtəli vergül işarəsi operatorun sonu əlamətini bil­di­rir. C/C++ də bütün ifadələr nöqtəli vergül ilə bir-bir­lə­rin­dən ay­rılırlar.

tip ifadə edən açar sözlər, C/C++ dilinin qabaqcadan tə­yin­ olun­­muş dəyişən tiplərinə bağlı açar sözlərdir. Bu söz­lə­ri­ elan sin­­taksisində istifadə edərək, daha əvvəl öyrənmiş ol­du­ğu­muz 11 dəyişən tip növünün hansından dəyişən təyin et­mək istə­di­yi­mi­zi bildirmiş oluruq. C/C++ dilində tə­yin­et­mə­ əməliyyatında istifadə edilə biləcək açar sözlər bun­lardır:

signed, unsigned, char, short, int, long, float, double

Bu sözlərin hamısı açar söz olduğundan kiçik hərf ilə yazılmalıdır.

Elan nümunələri:

int x;

unsigned long int a;

double MFCS;

signed short total

Tip ifadə edən açar sözlərin yazılmasından sonra eyni tipə ma­lik birdən çox dəyişənin elanı zamanı adların arasına vergül qoyulur. Elan etmə yenə nöqtəli vergül ilə bitməlidir. Məsələn, unsigned char ch1, ch2, ch3, ch4;

float FL1, Fl2;

unsigned total, subtotal;

Fərqli tiplərlə bağlı elanlar vergüllərlə bir-birindən ayrıla bilməz. Məsələn,

long x, int y; /* error */

signedunsigned sözləri tip ifadə edən açar söz olmadan tək istifadə edilə bilərlər. Bu vəziyyətdə int növdən bir dəyi­şə­nin elanının edildiyi qəbul edilir:

signed x, y;

ilə

signed int x, y;

tamamilə eyni mənadadır.

Elan əməliyyatında, tip ifadə edən açar söz birdən çox­dur­sa, bunların yazılış sırası əhəmiyyətli deyil, amma oxu­naq­lıq baxımından əvvəl işarə ifadə edən açar sözün, sonra tip ifadə edən açar sözün istifadə edilməsi ənənə halını almışdır. Mə­sə­lən :

signed long int x;

signed int long x;

long signed int x;

long int signed x;

int long signed x;

int signed long x;

hamısı etibarlı elanlardır. Amma yuxarıdakı elanda birinci ya­­­zı­lış forması oxunaqlıq baxımından seçilməlidir.

C/C++ dilində, ümumiyyətlə, dəyişənlər 3 yerdə elan edi­lə­ bilər :

  1. Blokların daxilində.

  2. Bütün blokların xaricində.

  3. Funksiyanın parametr dəyişəni kimi funksiya mötə­ri­zə­lə­ri­nin içərisində.

Funksiya mötərizələri içərisində edilən elan­lar müəy­yən­ sin­­taksis qaydasına uyğunlaşdırılır, bu elanlar funksiya­lar möv­­­zu­sunda araşdırılacaq.

Əgər C dilində elan blokların daxilində ediləcəksə, on­­da­ elan əməliyyatı blokların ilk əməliyyatı olmalıdır. Ela­nın müt­ləq əsas blokun əvvəlində edilməsi kimi bir zəru­rət yox­dur. Əgər iç-içə bloklar varsa, içdəki hər hansı bir blokun əvvəlində də (o blokun ilk əməliyyatı olmaq şərti ilə) elan edilə bilər. Mə­sə­lən­:

{

int var1, var2;

char ch1, ch2, ch3;

var1 = 20;

float f; /* error */

}

Yuxarıdakı nümunədə var1, var2, ch1, ch2, ch3 dəyi­şən­lərinin təyin olunma yerləri doğrudur. Ancaq f dəyişəni səhv­­ yerdə elan olunmuşdur. Çünki elan əməliyyatından əv­vəl baş­qa bir əməliyyat (mənimsətmə) iştirak etmişdir. Bu və­­ziy­­­yət səhv meydana gəlməsinə sə­bəb­ olur. Həmin proqram fraqmenti aşağıdakı şəkildə yazılmalıdır:

{

int var1, var2;

char ch1, ch2, ch3;

var1 = 10;

{ float f; }

}

Bu halda artıq f dəyişəni də öz blokunun əvvəlində (ilk əmə­­liyyat olaraq) təyin olunmuşdur.

C++ dilində isə blok içində elan edilən dəyişənlərin, blokların ilk əməliyyatları kimi elanı zəruri deyil. Yəni C++ da dəyişənlər blokların içində hər hansı bir yerdə elan edilə bi­lər­lər.

C/C++ dilində qlobal dəyişənlər də mövcuddur. Əgər də­yi­­şən main () xaricində elan olunubsa, o, qlobal dəyişən ad­la­nır. Bu hal­da proqram buraxılarkən ona sıfır qiymət mənim­sə­dilir.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]