Yaddaş və onun növləri
Kompüter proqramları verilənlərdən və instruksiyalardan ibarət olur. Verilənlər – proqramın predmeti olan informasiyadır. Məsələn, əgər sizin kompüter proqramının istifadəçisinə qrupda 600- dən yuxarı bal toplayan tələbələrin siyahısı lazımdırsa, onda verilən olaraq onların orta balları ilə eyni olan bütün tələbələrin siyahısı götürülə bilər.
Kompüter proqramının instruksiya və verilənləri proqramın işləməsi üçün kompüterin yaddaşında yerləşməlidir. Kompüterdə yaddaşın üç əsas növü var:
1) Mərkəzi prosessor(MP);
2) Operativ yaddaş(ixtiyari girişli yaddaş, RAM);
3) Daimi yaddaş.
Prosessor – kompüterin beynidir və onun sürəti nə qədər yüksək olarsa, kompüter bir o qədər tez işləyir. Kompüter əməliyyatlarını koordinasiya etməkdən savayı, prosessor keş-yaddaşa da malikdir. Prosessorun keş–yaddaşı reqistr adlanan seqmentə malikdir. Bu yaddaş tez-tez istifadə olunan instruksiya və verilənlərin saxlanması üçün lazımdır.
Prosessor keş-yaddaşa çox tez müraciət edə bilər, lakin onun tutumu çox kiçik olur. Deməli, qalan instruksiya və proqramlar başqa yerdə yerləşməlidirlər.
Operativ yaddaş – ixtiyari girişli yaddaşdır və ya operativ yaddasaxlama qurğusudur (OYQ). Kompüterdə bu yaddaş nə qədər çox olarsa, onda eyni zamanda daha çox proqram buraxmaq olar və onlar daha tez işləyərlər.
Prosessor operativ yaddaşa da keş yaddaş kimi çox tez müraciət edə bilər. Bununla belə operativ yaddaşın həcmi keş – yaddaşın həcmindən çox böyükdür. Lakin operativ yaddaş da keş-yaddaş kimi müvəqqətidir. Kompüter söndürüldükdə bu yaddaşda saxlanılan informasiyalar yox olur.
Nəhayət, kompüterdə çoxlu sayda digər proqramlar da ola bilər (məsələn, elektron poçt, İNTERNET, mətn və s. proqramları, başqa fayllar-məktublar, sazişlər, xəbərlər və s.) ki, onlardan indi yox başqa vaxtlarda istifadə edilə bilər. Ona görə də yaddaşda keş-yaddaş və operativ yaddaşdan fərqli olan elə digər yaddaş sahəsi də lazımdır ki, verilənləri daimi saxlasın (hətta kompüter yenidən yükləndikdən və söndürüldükdən sonra da). Daimi yaddaş (daimi yaddasaxlama qurğusu) – adətən, bərk diskdir, lakin bu digər qurğular da ola bilər, CD ROM, DVD ROM, disketlər və ya Flash-yaddaş. Lakin növündən asılı olmayaraq daimi yaddaş informasiyanı uzun müddət saxlayır.
Daimi yaddaş qurğusu informasiyanı uzun müddət qorumaqla bərabər, operativ yaddaşa nəzərən təqribən yüz və ya min dəfələrlə böyük həcmə malikdir.
DYQ informasiyanı üzün müddət saxladığından və böyük həcmə malik olduğundan, o həm də proqram və verilənlərin saxlanması üçün də istifadə olunur.
DYQ böyük həcmə malik olmasına və uzun müddətli saxlama imkanlarına malik olsa da, kompüter proqramı daimi yaddaşda yerləşən instruksiyaları yerinə yetirə bilmir. Bu instruksiyalar DYQ –dən operativ yaddaşa yüklənməlidirlər. Həm də kompüter proqramı daimi yaddaşda yerləşən verilənlərlə əməliyyat apara bilmir. Bu verilənlər də DYQ –dən operativ yaddaşa yüklənməlidirlər.
Yaddaşda yer ünvana görə də təyin olunur. Bu ünvanlar 16-lıq say sistemində ifadə olunurlar, məsələn, 0xF7C3. Yaddaşın ünvanı adi küçə ünvanlarında olduğu məntiqlə, yəni ardıcıl modellə həyata keçirilir.
100 |
Şəkil 3.1.Yaddaşın ünvanının ardıcıllığı
Yaddaşın hər bir ünvanında saxlanan informasiya bayt adlanır. Qeyd edək ki, kompüter bitlərdə fikirləşsə də 0 və 1 bit ölçülü informasiyanı emal edə bilmir. Kompüterin emal edə biləcəyi ən kiçik informasiya vahidi bayt və ya 8 bitdir. Deməli, hər bir ünvan 1 bayta qədər informasiya (sıfır və birlərdən ibarət olan 8 rəqəm ardıcıllığı) qoruya bilər.
Qiymət
Yaddaşın ünvanı
Şəkil 3.2.Bayt qiymətlərlə yaddaşın ünvanları ardıcıllığı
3.2. Standart tip verilənlərin ölçüsü
Proqramlaşdırma dillərinin çoxunda proqramçının tip təyin etməsinə icazə verilir. Məsələn, C dilində strukturlar, C++ dilində də siniflər proqramçı tərəfindən təyin olunan dəyişən tipidir.
C/C++dilində istifadə olunan hər bir dəyişən tipi göstərilməklə elan olunmalıdır. Lakin tiplərin çevrilməsi mənasındaC/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 dilində 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, qalan 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 istifadə olunur. Onlar eyni yaddaş həcmləri tutsalar da, müxtəlif diapazonlu ədədlərdir.
Cədvəl 3.1.
Verilənlərin tipi | Yadda- şın həcmi (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 | -128 -32768 -32768 -2147483648 | ||
float double long double | 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, simvol.
Bütün tam tiplər - char, short, int və long - susmaya görə işarə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ş tutacaqlar), belə ki, onlar sıfır da daxil olmaqla yalnız bütün müsbət qiymətləri ifadə edəcəklər. Buna görə də onlar 2 dəfə çox müsbət qiymətlər ifadə edə bilərlər.
Əgər hər hansı hesabi əməliyyat zamanı nəticə elan olunan tip üçün mümkün maksimal qiyməti aşırsa, onda tamqiymə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 qiymətlər məntiqi tip kimi verilən ifadələrdə doğru və yalan qiymətləri ifadə edə bilərlər. Bu vaxt sıfır qiymət yalan, sıfır olmayan isə doğrunu göstərir.
Sürüşkən vergüllü verilən tiplər (həqiqi) onluq ədəd və ya eksponensial 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 istifadə edilməzdən əvvəl proqramda tanıdılır, yəni elan olunurlar. C dilində elan əməliyyatı, yaddaşda bir yer ayrılmasına səbəb olursa, bu əməliyyata təyinetmə (definition) deyilir. Hər təyin etmə əməliyyatı eyni zamanda bir elan əməliyyatıdır, amma hər elan əməliyyatı bir təyinetmə olmaya bilər. Başqa cür desək, təyinetmə obyekt yaradan bir elan əməliyyatıdır.
C dilində bir dəyişəni elan etməzdən əvvəl istifadə etmək səhv (error) yaranmasına gətirib çıxarır.
C/C++ proqramlaşdırma dilində elan əməliyyatı aşağıdakı şəkildə edilir :
<tip> <dəyişənin adı> <;>
Burada nöqtəli vergül işarəsi operatorun sonu əlamətini bildirir. C/C++ də bütün ifadələr nöqtəli vergül ilə bir-birlərindən ayrılırlar.
tip ifadə edən açar sözlər, C/C++ dilinin qabaqcadan təyin olunmuş dəyişən tiplərinə bağlı açar sözlərdir. Bu sözləri elan sintaksisində istifadə edərək, daha əvvəl öyrənmiş olduğumuz 11 dəyişən tip növünün hansından dəyişən təyin etmək istədiyimizi bildirmiş oluruq. C/C++ dilində təyinetmə əməliyyatında istifadə edilə biləcək açar sözlər bunlardır: