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 */

signed və unsignedsö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;

floatf; /* 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.

3.4. Konstantlar (Sabitlər)

Proqramlaşdırma dillərində verilənlər sabitlər şəklində də gös­­tərilə bilər. Onlar

const int intVal=17;

kimi elan olunurlar.

Misal 3.1. Signed, unsigned, char, short, int, long, float, double - student2.ru ifadəsini hesablayan proqram.

#include <stdio.h>

main()

{

const float b=3.14;

float x, a;

scanf(“%f”,&x);

a= b*x*x;

printf(“a = %f”, a);

return 0;

}

Simvol sabitlər apostrof daxilində yazılmış bir simvoldan ibarət olurlar: “q” , “2”, “.” Və s.

Const char sym=”m” ;

Xüsusi simvollar da simvol konstantlar bölməsinə daxil­dir­­lər.

Literal sabitlər (literallar) – bilavasitə proq­ra­mın mətnin­də­ daxil edilən qiymətlərdir. Belə ki, proqramın kom­pil­ya­si­­­ya­­sın­­dan sonra literalların qiymətini dəyişmək mümkün ol­ma­dı­ğın­dan onları sabitlər də adlandırırlar.

İstənilən sabitin emalı üçün kompilyator minimal diapa­zon­lu qiymətə malik mümkün verilənlər tipindən istifadə edir, yəni verilən sabitin saxlanması üçün yaddaşın müm­kün minimal həcmini tutur.

Məsələn, 1257 və ya -251 ədədlərinin daxil edilməsi üçün int­ tip istifadə olunacaq. Lakin əgər sabitə elan olunduğu qə­dər yaddaş ayrılması (faktiki olaraq tutduğu qədər yox) tə­ləb olu­nur­sa, onun uzunluğunu aşkar olaraq göstərmək la­zım­­dır. Bunun üçün L hərfi istifadə olunur. Ədəddən sonra U hərfinin gös­tərilməsi isə onun işarəsiz olduğunu göstərir. Double tip sabitlərə f və ya F hərflərinin əlavəsi zamanı on­lar float tip, l və ya L hərfi əlavə olunduqda isə long double tip olurlar.

C/C++dilində ədədi və simvol tiplərdən savayı sətir sa­bit­ləri də istifadə olunur.

Sətir sabitlər – dırnaq işarəsi daxilində yerləşən ASCII ko­du­nun simvollarından ibarətdir.

Qeyd edək ki, C/C++ dilində əsasən aşağıdakı standart sabitlərdən istifadə olunur:

e ədədi M_E
π ədədi M_Pİ
π/2 ədədi M_Pİ_2
π/4 ədədi M_Pİ_4
lge M_LOG10E
ln2 M_LN2

Fadələr

Ifadə - qiymətə malik olan proqram fraqmentidir: adətən, bu proqram buraxılan zaman hesablanmalı olan qiymətdir. Məsələn, > Signed, unsigned, char, short, int, long, float, double - student2.ru . Bu halda ifadə literallardan(ədədlərdən), operatorlardan (/ və +) və kiçik mötərizədən ibarətdir. Mürəkkəb ifadələrdə mötərizələr iç-içə ola bilərlər (bu o deməkdir ki, bir alt ifadə digər altifadənin daxilində yerləşir). Məsələn, Signed, unsigned, char, short, int, long, float, double - student2.ru .

Dəyişən = ifadə dəyişənə ifadənin qiymətini mənimsətmək deməkdir. Bu za­man­ əvvəlcə ifadənin qiyməti hesablanır və bu qiymət sol tə­­rəf­dəki dəyişənin qiyməti olur.

Yadda saxlamaq lazımdır ki, “=” işarəsi mənim­sət­mə işa­rəsidir, bərabərlik işarəsi deyil. Mənimsətmə ifadə olur­. Bu qaydaya görə i=(j=k) da ifadə olur, belə ki, j=k ifa­­dədir və kon­kret qiymətə malikdir. Mötərizəni yazmamaq olar, onda i=j=k ifadəsi k qiymətini i və j dəyişənlərinə mənimsədir, i=j=k=12 ifadəsi isə 12 qiymətini hər üç dəyişənə mənimsədir.

Məllər

İfadələr qurularkən tətbiq edilən əməllərin növləri bunlardır:

- Hesabi,

- Münasibət,

- Məntiqi və mərtəbə,

- Inkrement və dekrement,

- Mənimsətmə.

1) Hesabi əməllər:

*- vurma;

/ - bölmə;

+- toplama;

- - çıxma;

%- tam bölmədə qalığı götürmə.

Bölmədən başqa bütün əməllər ənənəvi qaydada yerinə ye­ti­­­rilir. Bölmə əməlinin xüsusiyyəti ondadır ki, əgər hər iki­­ ope­rand tamdırsa, onda nəticə tam qiymət olur. Həqiqi qiy­­­mət al­maq üçün heç olmazsa bir operand həqiqi tipə ma­lik olma­lı­dır. Belə ki, 9/5=1; 9/5.0=1.8; 9%5=4.

Hesabi operatorların üstünlük dərəcəsi belədir:

a) yüksək: - (unar minus),

b) orta: *, /, % (vurma, bölmə, qalığı götürmə),

c) aşağı: +, - (toplama, çıxma).

Yadda saxlamaq lazımdır ki, proqramlaşdırma dili­n­də bü­­tün əməl­ləri aşkar şəkildə göstərmək lazımdır. Bu, əsa­sən vur­ma əmə­l­inə aiddir, belə ki, riyaziyyatda onu yaz­ma­maq olar, proq­ram­laşdırmada isə yox! Məsələn, ab yazılışı proqramlaşdırmada iden­tfi­ka­tor ki­mi başa dü­şü­lür. Hesabi operatorlar binar opera­tor­lar­dır, çünki onlar iki operand üzərində əməliyyatı yerinə yetirirlər.

Aşağıda riyazi ifadənin C/C++ dilində yazılışına aid nü­mu­nə verilmişdir:

Riyazi ifadə: Signed, unsigned, char, short, int, long, float, double - student2.ru ;

C/C++ dilində yazılışı: Signed, unsigned, char, short, int, long, float, double - student2.ru

2) Münasibət əməlləri müqayisə üçün istifadə olunur:

< - kiçik;

<= - kiçik və ya bərabər;

> - böyük;

>= - böyük və ya bərabər;

= = - bərabər;

!= - bərabər deyil.

Məsələn,

#include <stdio.h>

#include <conio.h>

main(){

int b;

b=5>2; // b doğru qiymət alır;

printf("b=%i\n",b);

b=7<4; // b yalan qiymət alır;

printf("b=%i\n",b);

getch();

}

Nəticədə

Signed, unsigned, char, short, int, long, float, double - student2.ru

alınır.

Münasibət, məntiqi və bitlər (mərtəbə) üzərində əməl­lə­rin nə­ti­­cəsi məntiqi tip olur. LakinC/C++dilində true ­və false qiymətləri alan standart məntiqi tip yoxdur. Burada mən­­tiqi qiy­mətlər olaraq tamqiymətli qiymətlər istifadə olu­nur, belə ki, sı­fır yalan kimi, sıfırdan fərqli istənilən qiymət isə - doğru ki­mi başa düşülür.

Qeyd edək ki, “= =” münasibət işarəsini “=” mənimsətmə işarəsi ilə qarışdırmaq olmaz, belə ki, bu səhvə gətirib çıxara bilər.

3) Məntiqi əməllərə aşağıdakılar daxildir:

məntiqi “və” (&&),

məntiqi “ və ya” (||),

məntiqi inkar (!) .

Məntiqi əməllər bir neçə şərti ifadələri birləşdirdikdə isti­fadə olunur.

Məntiqi əməllər aşağıdakı xassələrə malikdirlər;

U1 və U2 – iki şərti ifadələrdirsə, onda:

- əgər hər iki ifadə eyni zamanda doğrudursa, U1&&U2 - doğ­ru­dur;

6>2 && 7>5 - doğrudur;

6>2 && 7<5 - yalandır;

- əgər ifadələrdən heç olmasa biri doğ­ru­dur­sa, U1 || U2 -doğrudur;

6>2 || 7>5 - doğrudur;

6>2 || 7<5 - doğrudur;

6<2 || 7<5 - yalandır;

- U1- yalan olduqda, !U1 - doğrudur;

- U1 - doğru olduqda, !U1 - yalandır;

! (6>2)- yalandır;

! (6<2)- doğrudur.

Mərtəbələr (bitlər) üzərində əməllər float və double tip­ dəyişənlərə tətbiq oluna bilməz. Belə əməllərə aşağıdakılar aiddir:

“ və” (&),

“ və ya “ (|),

mərtəbəli inversiya (-),

“ yoxetmə və ya “ (^),

sola yerdəyişmə (<<),

sağa yerdəyişmə (>>).

Misal 3.2.

Signed, unsigned, char, short, int, long, float, double - student2.ru Signed, unsigned, char, short, int, long, float, double - student2.ru

C/C++dilində riyaziyyatda rast gəlinməyən iki əməl var:

inkrement (++) və dekrement (--). İnkrement əməliyyatı ope­ran­da 1 əlavə edir, dekrement isə operanddan 1 çıxır:

i++ ó i=i+1;

i - - ó i=i-1.

j=i++

yazısı

j=i; i++

yazısına ekvivalentdir;

j=++i

yazısı isə

i=i+1; j=i;

yazısına ekvivalentdir.

Məsələn, S=a + b ++; yazısı o deməkdir ki, a+b- ni tapıb nə­ti­cə­ni S-ə mənimsətməli və onu 1 vahid artırmalı.

S=a+++b; yazısı o deməkdir ki, b-ni 1 vahid artırmalı, a və b – ni toplamalı, nəticəni S - ə mənimsətməli.

C/C++dilində mənimsətmə əməli adi haldan əlavə qey­­ri ənə­nə­vi göstərilişə malikdir. Məsələn, x=x+15 əməlinin yeri­nə ye­ti­rilməsi x dəyişəninin ünvanının 2 dəfə hesablanmasına gətirir: il­kin qiymətin tapılması üçün və alınan nəticənin köçürülməsi üçün.

Bu çatışmazlığı x+=15 yazmaqla aradan qaldırmaq olar.

“+ =” simvolu da mənimsətmə əməli adlanır və o, kom­pil­ya­­­­tora x - ə 15 qiymətini əlavə edib nəticəni x-də yadda sax­la­maq göstərişi verir.

Mənimsətmə əməlinin tam yığımı:

*=, /=, +=, -=, %=, <<=, >>=, &=, ^=, \=.

Наши рекомендации