Dəyişənlər

Əvvəlki paraqrafda biz C dilində necə proqram yerinə yetirməyi öyrəndik. Bu paraqrafda biz C dilində yazılmış proqramın ən vacib elementlərindən biri – dəyişənlərlə tanış olacağıq. Hər bir proqram yerinə yetirilərkən müxtəlif məlumatları yadda saxlamalı (yaddaşa yerləşdirməli) olur. Tutaq ki, iki ədədin cəmini hesablayan proqram yazmaq istəyirik. Bu zaman biz yaddaşda 3 məlumat üçün yer ayırmalıyıq. İki toplanan və cəm. Proqramlaşdırmada hər hansı məlumatı qəbul etmək, yadda saxlamaq və bu məlumatın qiymətinə müraciət etmək üçün dəyişənlərdən istifadə olunur. Konkret olaraq, dəyişən adı olan müəyyən bir yaddaş sahəsidir. Bu yaddaşın sahəsini və dəyişənin adını elan edərkən, biz özümüz (proqramçılar) müəyyən edirik.
Yadda saxladığı məlumatın növünə və həcminə görə dəyişənlər tiplərə ayrılır. Misal üçün, tam ədədlər tipi - int, kəsr ədədlər tipi - float, simvol tipi - char, sətir tipi - char [], char * və s. Bu tiplərə standart tiplər deyilir. Bundan əlavə, C dilində ünvan dəyişənləri tip, struktur tiplər və siyahılardan da çox geniş istifadə olunur ki, bunlarla da uyğun olaraq, 4, 8 və 9-cu paraqraflarda məşğul olacağıq.
Əgər biz proqramda tam tipdən(int) olan və adı x olan dəyişən elan etmək istəyiriksə, bu zaman int x; sətrini proqrama yerləşdiririk.
Dəyişənlərə istədiyimiz kimi ad verə bilərik, yalnız və yalnız hərflərdən (ingilis əlifbasının), _ simvolundan və rəqəmlərdən istifadə etməklə. Dəyişənin adı mütləq hərflə başlamalıdır və operator, tip və s. adlardan da dəyişən adı kimi istifadə etmək olmaz. Operatorlarla gələn mövzularda tanış olacağıq.
Beləliklə, cəm proqramında hər iki toplananı və onların cəmini yerləşdirmək üçün biz tam tipli 3 dəyişən təyin etməliyik. Gəlin, bu dəyişənləri uyğun olaraq, top1, top2 və cem kimi adlandıraq. Bu dəyişənləri təyin etmək üçün proqram kodu aşağıdakı kimi olacaq.


int top1;
int top2;
int cem;
Qeyd edək ki, eyni tipdən olan dəyişənləri vergüllə ayırmaqla, bir sətirdə də elan edə bilərik. Aşağıdakı kimi:

int top1,top2,cem;
Burada ; simvoluna diqqət yetirməyinizi istəyirəm. Bu işarə kompilyatora hər hansısa bir əməliyyatın (indiki halda dəyişənlərin elanının) bitməsini göstərir.
Gəlin, proqramımızı tərtib edək. Hələlik 3 dəyişən elan etmişik (dəyişən elan etmək və ya təyin etmək eyni məna bildirir). Proqramımız belə olacaq.

#include <stdio.h>
 
int main(){
 
int top1, top2, cem;
 
}
Proqramı cem.c faylında yadda saxlayaq, kompilyasiya edək və yerinə yetirək.

user@gnu_linux:~/prg 
user@gnu_linux:~/prg gcc cem.c -o cem
user@gnu_linux:~/prg 
user@gnu_linux:~/prg ./cem
user@gnu_linux:~/prg 
user@gnu_linux:~/prg 
Göründüyü kimi, proqram heç bir iş görmür, sadəcə tam tipli 3 dəyişən elan edir və icrasını bitirir.
İndi gəlin, bu elan etdiyimiz dəyişənlərdə hər hansı məlumat (ədədlər) yerləşdirək (daha doğrusu, dəyişənə aid olan yaddaş sahəsinə). Proqramlaşdırmada hər hansı əməliyyatı yerinə yetirmək üçün istifadə olunan əmrə operator deyilir. Yaddaşa məlumat yazma əməliyyatı üçün mənimsətmə operatorundan istifadə olunur. Mənimsətmə operatoru = kimi işarə olunur. Qətiyyən riyaziyyatda olan bərabərlik simvolu ilə qarışdırmaq olmaz. Proqramda bu operatordan solda dəyişənin adı, sağda isə, ona mənimsədiləcək qiymət dayanır (və əlbəttə, bütün operatorların sonunda olduğu kimi, sonda ; işarəsi). Məsələn:

x=5;
Bu operator x dəyişəninə 5 qiymətini mənimsədir. Bu zaman yaddaşda nəyin baş verdiyinə, gəlin, nəzər salaq. Əvvəlcə 5 ədədi onluq say sistemindən ikilik say sisteminə çevrilir. Say sistemləri əsasən, assembler proqramlaşdırma dilinin mövzusu olduğundan və bu işlərlə məşğul olmaq böyük proqramlaşdırma təcrübəsi tələb etdiyindən, bu haqda çox dərinə getməyəcəyik.
5 ədədi ikilik say sistemində aşağıdakı kimi göstərilir.
00000000000000000000000000000101
x tam tipli olduğundan, yaddaşda onun üçün 4 bayt yer ayrılır. Bir bayt 8 bit–dən ibarət yaddaş sahəsidir. Bir bit ən kiçik yaddaş sahəsidir və bu sahəyə ancaq 1 və ya 0 yazmaq olar. Komputerin yaddaşı baytlar ardıcıllığından və o da öz növbəsində bitlərdən ibarət olduğundan, bitlərdə isə ancaq 0 və ya 1 yerləşdirmək mümkün olduğundan, belə çıxır ki, kompüterin yaddaşına yerləşdirilən bütün məlumat orada 0 və 1-lər ardıcıllığı şəklində saxlanılır. Yəni bütün bizim mp3, wav, jpg, doc və s. fayllarımız və ümumiyyətlə, bütün fayllar yalnız və yalnız 0 və 1-lər ardıcıllığıdır. Məişətdə istifadə etdiyimiz bir çox texnikanın (komputer, fotoaparat...) adının rəqəmsal (digital, digit ingilis dilində "rəqəm" deməkdir) olması da buradan qaynaqlanır və burada söhbət ancaq 0 və 1 rəqəmlərindən gedir.
Tutaq ki, baxdığımız anda proqramın yaddaşı aşağıdakı şəkildədir.
Shekil1

x=5;
İndi isə, yaddaşın vəziyyəti aşağıdakı kimi olar.
Shekil2
Aşağıdakı operatora baxaq.

x=y;
Bu halda y-in qiyməti yaddaşdan x-in ünvanına köçürülür.
Shekil3 Shekil4
Aşağıdakı hala baxaq.

x=x+1;
Bu halda əvvəlcə x-in qiyməti yaddaşdan götürülür, onun üzərinə 1 əlavə olunur və alınmış nəticə yenidən x-ə yazılır. Tutaq ki x–ə 3 qiyməti mənimsədilib.

x=3;
Shekil5
x=x+1; (3+1=4=00000000000000000000000000000100) Shekil6

Proqramda şərhlər
C dilində yazılmış hər hansı proqramı şərhsiz təsəvvür etmək olmaz. Şərh (comment, statement... ) proqramın bu və ya digər hissəsinin hansı iş gördüyünü bildirmək üçün proqramın mətn koduna əlavə olunur. Şərhlər ancaq proqramın işini başa düşmək istəyənlər üçündür. Proqramın real yerinə yetirilən koduna şəhrlərin heç bir aidiyyəti yoxdur. Belə ki, kompilyator proqramı kompilyasiya edərkən, birinci gordüyü iş şərhləri proqram kodundan silməkdir. Proqramda şərh elan etmək üçün /* və */ -dən istifadə olunur.
Bu zaman kompilyator bu işarələr arasında yerləşdirilən mətni şərh kimi qəbul edəcək. Lakin səhvən proqram kodlarını şərh kimi verməyin. Bu zaman kompilyator onları nəzərə almayacaq. Onu da deyim ki, çox vaxt bu qaydadan proqramdakı səhvləri tapmaqda istifadə olunur (proqramın müəyyən hissəsini şərh kimi verib nəticəni yoxlamaqla).

Dəyişənlərin müqayisəsi və qiymətlərinin dəyişdirilməsi
Dəyişənlərin qiymətlərinin dəyişdirilmə və müqayisə imkanının olması proqramçıya çox geniş imkanlar verir. Dəyişənlərlə aşağıdakı əməliyyatları aparmaq olar.
*, -, +, /, =, ==, >, < * hasil, - çıxma, + cəm. Bizim üçün lazım olan ən vacib əməliyyat, dəyişənin qiymətinin dəyişdirilməsi əməlidir. Bunun üçün = operatorundan istifadə olunur. Bu operatora "mənimsətmə operatoru" deyirlər. Bu operatoru bərabərlik operatoru kimi qəbul etmək olmaz. C++ dilində bərabərlik operatoru olaraq == istifadə olunur. Aşağıdakı nümunələrə baxaq.

a = 4*6;	/* proqramda bu sətir yerinə yetirildikdən sonra əvvəlki qiymətindən asılı olmayaraq, a-nın yeni qiyməti 24 olacaq. */
a = a + 5;	/* a-nın yeni qiyməti əvvəlki qiyməti ilə 5-in cəminə bərabər olur. */
a == 3;		/* a-ya heç bir yeni qiymət mənimsədilmir (a-nın qiyməti dəyişmir), sadəcə onun 3-ə bərabər olub-olmaması yoxlanılır. */
Yəqin ki, siz < və > operatorlarının necə işlədiyini düşünürsünüz. Onlar uyğun olaraq "böyükdür" və "kiçikdir" operatorlarıdır. Məsələn.

a < 5	/* a-nın 5-dən kiçik olmasını yoxlayır. */
a > 5	/* a-nın 5-dən böyük olmasını yoxlayır. */
a == 5	/* a-nın 5-ə bərabər olmasını yoxlayır. */
Proqramlaşdırmanı öyrənməyin yeganə yolu proqram yazmaqdır.
Aşağıda verilən tapşırıqları yerinə yetirən proqramlar yazın.

Həlli olanlar. (Həllərə yalnız öz cəhdləriniz nəticə vermədikdə müraciət etmək məsləhət görülür.)
1. 3 ədədin cəmini hesablayan proqram tərtib edin.
2. Hər hansı ədədi və onun kvadratını hesablayan proqram tərtib edin.
3. Aşağıdakı kod hissəsinin gördüyü işi yoxlamaq üçün proqram tərtib edin.

int x,y;
x=5;
y=9;
printf("x=%d y=%d",x,y);

«« Giriş    Dəyişənlər    Operatorlar »»
Share


Muəllif: Əhməd Sadıxov


YER Hostinq

Pulsuz elanlar saytı

Internet Jobs Database