VAR
alpha : real;
a,b,c,d : char;
text 1 : string [15];
text 2 : string;
gamma : boolean.
Yuqorida aytganimizdek, ma`lumotlar turi tegishli o`zgaruvchilarning ichki tasvirlash uzunligini aniqlaydi. Xususan, STRING (belgilar satri) turidagi o`zgaruvchilarni ichki tasvirlash uzunligi satrni tashkil qilishi mumkin bo`lgan belgilarning maksimal soniga bog`liq. YUqorida keltirilgan misolda text 1 o`zgaruvchi maksimal uzunligini (15 belgi) ko`rsatish bilan bayon etilgan, text 2 o`zgaruvchining maksimal uzunligi esa ko`rsatilmagan, kompilyator unga Turbo Paskalda, chegaraviy – 255 belgidan iborat, maksimal uzunlikni o`rnatadi.
3.2. Turlarni o`zgartirish va ular ustida amallar bajarish
Yuqorida aytilganidek o`zgaruvchi turi uni ichki tasvirlash uzunligini o`rnatishgagina emas, balki ular ustida dasturda bajariladigan amallarni nazorat qilishga ham imkon beradi. Dasturni kompilyatsiya qilish bosqichidayoq o`zgaruvchilarning ishlatilishini nazorat qila olishi Turbo Paskalning boshqa dasturlash tillaridan muhim afzalligidir. Nazorat natijasida turlar avtomatik tarzda o`zgartiriladi. Turbo Paskalda turlarni noaniq o`zgartirish deyarli mumkin emas. Bundan REAL turidagi ifodalarda ishlatish mumkin bo`lgan INTEGER turidagi o`zgarmas va o`zgaruvchilar mustasno. Agar, masalan, x va u o`zgaruvchilar quyidagicha bayon etilgan bo`lsa:
var
x: Integer;
y: Real;
u:=x+2; operator, o`zlashtirish belgisidan o`ngda butun ifoda, chapdan esa haqiqiy o`zgaruvchi turgan bo`lsa ham, sintaksis nuqtai nazardan to`g`ri bo`ladi.
Kompilyator zaruriy o`zgartirishlarni avtomatik ravishda bajaradi. Bir vaqtning o`zida x:=2.0; operator xato bo`ladi, chunki Turbo Paskalda REAL (2.0 o`zgarmas o`nlik nuqtaga ega, demak, u haqiqiy) turni INTEGER turiga avtomatik ravishda o`zgartirishi mumkin emas, lekin bu ma`lumotlarni o`zgartirish vositasining yo`qligini bildirmaydi. Ular bor, lekin ularni aniq qilib ifodalash kerak. Ularga keyinchalik (VI va IX boblarda) to`xtalamiz. Ma`lumotlarni o`zgartirish uchun Turbo Paskalda o`rnatilgan («vstroennie») funktsiyalar mavjud. Ular parametr sifatida bir turdagi qiymatlarni qabul qilib, natijani boshqa turdagi qiymat ko`rinishida uzatadi. Masalan, REALni ROUND eng yaqin butun songa yaxlitlaydi, TRUNC esa REAL ni, kasr qismini tashlab, butun songa aylantiradi.
Masalan:
x: = u/x;
operator xato, lekin
x: = round (u/x)
to`g`ri bo`ladi (o`zgaruvchilar Yuqorida e`lon qilingan).
Turbo Paskalda funktsiya tushunchasi protsedura tushunchasiga yaqin. Protsedura kabi funktsiya ham ismi bilan chaqiriladi va Turbo Paskalning ixtiyoriy sondagi operatorlaridan va hatto ichki protsedura hamda funktsiyalaridan iborat bo`lishi mumkin. Funktsiyaning protseduradan farqi shuki, funktsiya o`zining xususiy qiymatlariga ega va, demak, o`zgaruvchilar bilan bir qatorda tegishli turdagi ifodalarda ishlatilishi mumkin.
CHAR (belgi) turidagi berilganlarni butun songa o`tkazish uchun ORD funktsiya, INTEGER dan CHAR ga o`tish uchun CHR funktsiya ishlatiladi.
Quyidagi murakkab bo`lmagan dastur yordamida ixtiyoriy belgining ichki kodini bilish mumkin.
3.2.-misol
Do'stlaringiz bilan baham: |