18-Mavzu: Aralash tur
Reja:
Yozuv tushunchasi.
Aralash tur e’loni
Mustaqil bajarish uchun topshiriqlar.
Aralash tur hosilaviy turlar sinfiga tegishli bo‘lib, uning qiymati regular turning qiymatiga o‘xshash bo‘ladi umumiy holda esa trivial bo‘lmagan ma’lumotlar strukturasiga o‘xshashdir. Aralash turning qiymati bir necha komponentalardan iborat bo‘lib, jadval kattalikdan farqli o‘laroq bu komponentalar har xil turga tegishli bo‘lishi mumkin va bu komponentalarga murojat jadval kattalikdagidek indeks bo‘yicha emas, balki komponentaning nomi bo‘yicha amalga oshiriladi.
Aralash turning qiymatini odatda yozuv deb nomlanadi.
Aralash turning qiymati murakkab qurilmaga ega bo‘lgan biror bir obyektni tasvirlash uchun ishlatiladi, odatda har xil ko‘rinishdagi informatsion sistemalarni yaratishda ishlatiladi.
Aralash turning qiymati chekli sondagi komponentadan iborat ma’lumotlar strukturasidan iborat bo‘lib, bu komponentalar maydon deb nomlanadi. Yozuvning har bir maydoniga nom qo‘yilib va bu maydonning turi ko‘rsatiladi. Shuni eslatib o‘tish kerakki, yozuvdagi maydonning turiga hech qanaday chegara qo‘yilmaydi, shuning uchun yozuvning maydoni o‘z navbatida yana yozuv bo‘lishi mumkin va h. k.. Bunda har bir maydonning ta’sir etish chegarasi o‘zi aniqlangan yozuvning ichki qismi bo‘ladi. Bitta yozuvdagi har bir maydonning nomlari har xil bo‘lishi kerak. Agarda bitta nom boshqa bir nomning ta’sir etish doirasida yotgan bo‘lsa yoki bu nomlar bitta yozuvning har xil maydonlarida joylashgan bo‘lsa, u holda bu nomlar bir xil deb qabul qilinadi. Har xil yozuvlar esa bir xil nomlardan iborat maydonlardan tashkil topgan bo‘lishi mumkin, chunki bu bir xil nomlarga murojaat bo‘lganda albatta tashqi yozuvning nomi ishlatiladi.
Aralash turni programmada e’lon qilish uchun record va end kalit so‘zlari ishlatiladi va uning umumiy ko‘rinishi quyidagicha:
Type
= record
<1-o‘zgaruvchi> : ;
...
:
End;
Bu yerda -yaratilayotgan tur nomi identifikatori, -aralash tur tarkibiga kiruvchi o‘zgaruvchi (maydon) nomi identifikatori, - o‘zgaruvchi turi nomi. Masalan:
data = record
kun: 1..31;
oy : string[8];
yil : word;
end;
var
sana : data;
Aralash turdagi o‘zgaruvchilarni ishlatishda o‘zgaruvchi nomi, "." (nuqta) va tur tarkibidagi murojaat qilinayotgan o‘zgaruvchi nomi yoziladi.
Masalan:
sana.kun : = 1;
sana.oy : = 'sentyabr';
sana.yil : = 1991;
Turbo-Paskal tili murakkab turlar maydonlariga murojat qilishni yana bir usulini qo‘llash mumkin. With maxsus kalit so‘zi aralash turga bog‘lik ravishda programmaning shunday bir bo‘lagini aniqlaydiki, unda aralash tur nomini yozmasdan, to‘g‘ridan-to‘g‘ri uning tarkibidagi o‘zgaruvchilarga murojaat qilish mumkin, masalan:
with sana do
begin
kun: =15;
oy : = 'yanvar';
yil : = 1998
end;
Shulardan foydalanib berilgan kompleks sondan iborat aralash turni quyidagi ko‘rinishda aniqlash mumkin:
type complex=record
re: real;
im: real;
end
Bu narsa shuni bildiradiki, complex turidagi har qanday qiymat yozuvdan iborat ma’lumotlar strukturasidan iborat bo‘lib, u ikkita komponentadan (maydon) re va im iborat va bu komponentalarni har biri real turidagi qiymat qabul qiladi.
Endi o‘zgaruvchilar bo‘limida complex turidagi o‘zgaruvchini kiritish mumkin, masalan :
var x, y: complex;
Bu e’lon qilingan o‘zgaruvchilar x va y o‘zgaruvchining qiymatlarini aniqlamaydi, balki bu o‘zgaruvchilarning har birining qiymati complex deb nomlangan strukturadan iborat ekanligini bildiradi. Bu o‘zgaruvchilarning har biriga aniq qiymat berish uchun ularning har birini komponentalariga qiymat berish kerak. O‘zgaruvchilarning komponentalariga murojat qilish quyidagi ko‘rinishdagi struktura ishlatiladi:
< to‘liq o‘zgaruvchining nomi>.
Do'stlaringiz bilan baham: |