type
BirtDay=record
day,month:byte
year:word
end;
var
a,b:Birthday
…………
Bu misolda BIRTHDAY (tugilgan kun) turi DAY, MONTH va YEAR (kun, oy va yil) maydonlarga ega yozuv; A va V o`zgaruvchilar BIRTHDAY turidagi yozuvlarga ega.
Massivdagi kabi, yozuv turi o`zgaruvchilarining qiymatlarini o`sha turdagi boshqa o`zgaruvchilarga o`zlashtirishi mumkin, masalan:
a: = b;
Yozuv maydonlari bilan ishlashni engillashtirish uchun qo`shilish operatori – WITH ishlatiladi.
WITH DO
bu erda:
WITH, DO – kalit so`zlar (dan, bajarish)
- yozuv turidagi o`zgaruvchi ismi, undan keyin ichma-ich kelgan maydonlar ro`yxati beriladi;
- Turbo Paskalning ixtiyoriy operatori.
Misol:
with c.bd do month:=9;
Bunga quyidagilar teng kuchli:
with c do with bd do month:=9;
yoki with c, bd do month:=9;
yoki c. bd month:=9;
Turbo Paskal, variant yozuvlar deb ataluvchi, yozuvlar bilan ishlashga ruxsat etadi, masalan:
type
Forma=record
Name:String
Case Byte of
0: (BirhtPlace : String[40]);
1: (Country : String[20]);
EntryPort : String[20]);
EntryDate : 1 .. 31;
ExitDate : 1 .. 31
end;
Bu misolda FORMA turi NAME – bitta belgilangan maydon va CASE…OF ifoda bilan berilgan variant qismidan iborat yozuvni aniqlayabdi. Variant qism bir nechta variantlardan (misolda, ikkitasidan: o va 1) iborat bo`ladi. Har bir variant tanlov o`zgarmasi bilan aniqlanadi. Tanlov o`zgarmasidan keyin ikki nuqta, aylana qavslar ichida yozilgan maydonlar ro`yxati keladi. Har qanday yozuvda faqat bitta variantli qism bo`ladi, va, agar u bo`lsa, variantli qism hamma belgilangan maydonlardan keyin joylashishi kerak.
Variant qismining ajoyib xususiyati shunday holdan iboratki, unda berilgan variantlar bir-biri ustiga «qo`yiladi», ya`ni ularning har biriga xotiraning bitta va o`sha adresi ajratiladi. Bu turlarni o`zgartirishning yangi qo`shimcha imkoniyatlarini ochadi
Variant qismni ochuvchi CASE … OF, ifoda tanlov operatoriga o`xshaydi, lekin, aslida, variant qismning boshini ko`rsatuvchi o`ziga xos xizmat so`zi rolini o`ynaydi. Aynan shu uchun variant qism oxirida CASE … OF ning jufti sifatida END so`zini qo`yish kerak emas (chunki variant qismi – yozuvda hamma vaqt oxirgi, undan keyin RECORD ning jufti sifatida END turadi). CASE … OF iborada tanlov kaliti kompilyator tomonidan e`tiborga olinmaydi: Turbo Paskal tomonidan unga qo`yiladigan yagona talab shundan iboratki, kalit qandaydir standart yoki oldindan e`lon qilingan tartib turini aniqlaydi. Bu turning o`zi esa quyida keladigan variantli maydonlarga ham, tanlov o`zgarmasi tavsifiga ham hech ta`sir qilmaydi. Paskalning standart versiyasida tanlov kaliti sifatida tartib turidagi qandaydir o`zgaruvchini ko`rsatish zarur, bunda dasturning bajariladigan qismida bu o`zgaruvchining qiymatini o`zlashtirish va shunday tarzda maydonlar tanloviga ta`sir qilish mumkin. Turbo Paskalda, shuningdek, tanlov kaliti maydonida tartib turidagi o`zgaruvchini ko`rsatish va, hatto unga, dasturda, qiymat ham berish mumkin, bu maydon tanloviga ta`sir qilmaydi. Turbo Paskalda tanlov o`zgarmaslari ixtiyoriy, shu jumladan, takrorlanuvchi bo`lishi mumkin
Maydon ismlari, yozuvning ular e`lon qilingan chegarasida, o`ziga xos bo`lishi kerak, lekin, agar yozuvlar maydon – yozuvlarga ega bo`lsa, ya`ni biri ikkinchisining ichiga kirgan bo`lsa, ismlari ichma-ichlikning har xil pog`onalaridan takrorlanishi mumkin (oxirgi misolda S maydonga qarang).
9.3. To`plamlar
To`plam – bir turli bir-biri bilan mantiqan bog`liq ob`ektlar birlashmasidir. Bog`liqliklar xususiyatlari faqat dasturchi tomonidan tushuniladi, Turbo Paskal uni nazorat qilmaydi. To`plamga kiruvchi elementlar miqdori 0 dan 256 gacha bo`lgan chegarada o`zgarishi mumkin (tarkibida element bo`lmagan to`plam bo`sh to`plam deyiladi). elementlar miqdorining barqarorligi bilan to`plamlar massivlar va yozuvlardan farq qiladi.
Tarkibidagi hamma elementlari bir xil bo`lganda (bunda elementlarning to`plamda kelish tartibi ahamiyatsiz) va faqat shundagina ikki to`plam teng kuchli deyiladi. Agar bir to`plamning hamma elementlari, shuningdek boshqasiga ham kirsa, birinchi to`plam ikkinchisiga kirgan, deb aytiladi. Bo`sh to`plam ixtiyoriy boshqa to`plamga kiradi.
To`plam turi quyidagi ko`rinishda bayon etiladi:
= set of <baz.turi>
bu erda
- to`g`ri identifikator;
Do'stlaringiz bilan baham: |