Struktur tip verilənlər
Eyni tipli elementlər yığımı kimi təsvir olunan massivlərdən fərqli olaraq, struktur tip verilənlər (sadəcə, olaraq strukturlar) müxtəlif tipli sonlu sayda nizamlanmış elementlər çoxluğudur. Müxtəlif praktiki məsələrin həllində struktur tip verilənlərdən istifadə etmək zərurəti daha çox yaranır. Məsələn, verilənlər bazası proqramlarında müxtəlif tip elementlərin bir obyektdə əlaqələndirilməsi tələbi yarandıqda struktur tiplərdən istifadə olunur. Odur ki, assembler dilindən səmərəli istifadəni artırmaq məqsədi ilə ona bu tip verilənlər daxil edilmişdir. Strukturun tərkibinə daxil olan elementlər struktur sahəsi adlanır. Hər bir struktur sahəsi, onun məzmununa müraciət etmək üçün ada malikdir. Müəyyən müəssisənin işçiləri haqqındakı məlumatlar məsələn: işçinin soyadı, adı, atasının adı, doğulduğu tarix, iş yeri, iş stajı və s. hər biri struktur sahəsinə misal ola bilər. Strukturlar sadə və mürəkkəb olur. Əsasən mürəkkəb strukturlardan cədvəlləri modelləşdirmək və onlarla işi təkil etmək üçün istifadə olunur.
Ümumi halda struktur sahəsinin özü struktur ola bilər. Belə struktur ierarxik konstruksiyaya malikdir və aşağıdakı kimi göstərilə bilər.
Şəkildəki ağacın budaqlarında onlara müraciət etmək üçün məlumatlar saxlanır. Bunun üçün identifikatorlar ardıcıllığını elə formada təşkil etmək lazımdır ki, birinci identifikator strukturun, növbəti identifikator aralıq qovşaqların və axırıncı identifikator isə lazımı budağın adını göstərsin. Ancaq, assemblerdə uyğun sxemi çox məhdud şəkildə, yəni birinci və axırıncı identifikatorları göstərmək olar.
Proqramda strukturlardan istifadə etmək üçün aşağıdakı üç mərhələni yerinə yetirmək lazımdır:
Strukturların şablonunu vermək. Yəni, yeni tip verilənləri təyin etmək və ondan bu tip dəyişənlərin təyini üçün istifadə etmək.
Strukturların nüsğələrini (ekzemplyarını) təyin etmək. Yəni, əvvəlcədən struktur şablonun köməyi ilə təyin olunmuş konkret dəyişən inisiallaşdırılsın.
1. Strukturun elementlərinə müraciəti təşkil etmək.
Strukturların təşkilində əvvəlcədən proqramda strukturun yazılışı ilə onun təyinin fərqini müəyyənləşdirmək əsas məsələdir.
Proqramda strukturu yazmaq onun yalnız sxemini və ya şablonunu göstərmək deməkdir. Onun üçün yaddaşda yer ayrılmayır. Bu şablona ancaq translyator üçün sahələrin yerləşməsinin vəziyyəti və susmaya görə onların qiymətləri haqqında informasiya kimi baxmaq olar. Strukturun təyini dedikdə, translyatora struktur üçün yaddaş sahəsi ayırmaq və bu yaddaş sahəsinə simvolik ad vermək göstərişi başa düşülür. Proqramda strukturu ancaq bir dəfə yazmaq və istənilən qədər onu təyin etmək olar.
Strukturun şablonun yazılışı aşağıdakı kimidir:
strukturun_adı STRUC
sahələrin təsviri
strukturun_adı ENDS
Burada sahələrin təsviri verilənləri təsvir edən DB, DW, DD, DQ və DT direktivlər ardıcıllığıdır. Onların operandları sahələrin ölçüsünü və lazım gəldikdə onların başlanğıc qiymətini təyin edir. Bu qiymətlərdən strukturun təyinində zamanı uyğun sahələrin inisiallaşmasında istifadə oluna bilər.
Proqramda şablon ixtiyari ardıcıllıqla yerləşdirilə bilər, ancaq bir gedişli translyatorun işləmə məntiqinə uyğun olaraq şablonlar verilmiş tip strukturları təyin edən dəyişəndən əvvəl yerləşdirilməlidir. Yəni, verilənlər seq-mentində dəyişəni hər hansı bir struktura tipi ilə təsvir etmək istəyiriksə, onda struktur tipinin şablonunu seqmentin əvvəlində, ya da dəyişəndən əvvəl təsvir etmək lazımdır.
Strukturla işin təşkilinə universitetin kafedralarının işçiləri haqqındakı verilənlər bazası modelinin yaradılması misalında baxaq. Sadəlik (yəni girişdə informasiyanın çevirilməsi prosesini nəzərə almaqla) üçün strukturun bütün sahələri simvol tipli olduğunu qəbul edək. Bu verilənlər bazasının yazılarının strukturunu aşağıdakı şablonla təyin edək:
isci STRUC soy DB 30 DUP (” ”) ; soyadı, adı, atasının adı cins DB ” ” ; jinsi vazifa DB 30 DUP (” ”) ; vəzifəsi elm DB 7 DUP (” ”) ; elmi dərəcəsi yas DB 2 DUP (” ”) ; yaşı staj DB 2 DUP (” ”) ; stajı maas DB 7 DUP (” ”) ; maaşı anagun DB 8 DUP (" ") ; doğulduğu tarix isci ENDS
Bu şablonun köməyi ilə təsvir olunan strukturdan proqramda istifadə etmək üçün verilmiş struktur tipə uyğun dəyişən təyin etmək lazımdır. Bunun üçün aşağıdakı konstruksiyadan istifadə olunur.
Dəyişənin_ adı strukturların_ adı <qiymətlər_ siyahısı>
Burada dəyişənin_ adı –verilmiş struktur tipli dəyişənin adıdır. Dəyişənin adının verilməsi məcburi deyil. Əgər o göstərilmirsə, onda sadəcə olaraq strukturun bütün elementlərinin ölçülərinin cəmi qədər yaddaş sahəsi ayrılacaqdır.
Qiymətlər_siyahısı – bir-birindənvergüllə ayrılan bucaq mötərizələr içərisində göstərilən strukturanın elementlərinin başlanğıc qiymətlərinin siyahısıdır. Onun verilməsi də məcburi deyil. Əgər siyahı tam göstərilməyibsə, onda verilmiş dəyişən üçün strukturun bütün sahələri şablondakı (əgər o, verilibsə) qiymətlər ilə inisiallaşır. Ayrıca sahələri də inisiallaşdırmaq mümkündür. Bu halda buraxılmış sahə vergüllə ayrılmalıdır. Buraxılmış sahə strukturun şablonunda verilmiş qiymətlərə uyğun inisiallaşacaqdır.
Verilmiş struktur tipli yeni dəyişənin təyin edilməsi zamanı dəyişənin bütün sahələrinin qiymətləri, şablondakı uyğun sahələrin qiymətləri ilə uyğunlaşmalıdır. Bunu sadəcə olaraq, “<>” kimi göstərmək lazımdır. Məsələn,
Məmməd işçi <> Misal üçün yuxarıda yazılmış struktur tipli bir neçə dəyişəni təyin edək: Data seqment cod1 işçi <”Eyyubov Fərid Fəzail oğlu ”,”K”,“dosent ”,“T.E.N”,,, “16.01.1960”> cod2 işçi <”Nurulu Səməd Faiq oğlu”, “K”, “professor”, “T.E.D.”, “38”, “18”, “1920000”, “12.07.1976”> cod3 işçi<”Allahmanlı Ramin Rəhman oğlu”,“K”, “dosent”, “26”, “8”, “257000”,“24.11.1978”> cod4 işçi <> ;Burada bütün qiymətlər susmaya görə verilir Data ends