Pascal (dasturlash tili)
XVII asrda yashagan va dunyoda birinchi xisoblash mashinasini yaratgan frantsuz olimi Blez Paskal sharafiga shunday deb nomlangan PASKAL tili Shvetsariyaning Syurix shaxridagi oliy texnika maktabining professori Nikols Virt tomonidan 70-yillarda yaratilgan bulib 1979 yilda standart Paskal deb tasdiklangan. Uzining soddaligi, mantikiyligi va samaraligi tufayli bu til butun dunyoga tez tarkaldi. Xozirgi paytda barcha xisoblash mashinalari, xususan, mikro EXM lar xam shu tilda ishlash imkoniyatiga ega. Dasturlar matnining tugriligini osonlik bilan tekshirish mumkinligini, ularning ma`nosi yakkol kuzga tashlanishi va oddiyligi bilan ajralib turadi.
Paskal dasturlash tili fransiyalik universitet oʻqituvchisi Niklas Virt tomonidan talabalarga dasturlashni oʻrgatish maqsadida yaratilgan. Keyinchalik til ommalashib uning obyektga yoʻnaltirilgan avlodi Object Pascal for Windows — Delphi yaratilgan.
Paskal tilining alifbosi. Paskal dasturlash tilining alifbosi deb, shu tilda maʼlumotlarni ifodalash va dasturlar yozish jarayonida kompilyator tomonidan qabul qilishga ruxsat berilgan belgilar yoki maxsus belgilardan iborat bo‘lgan zanjirlar to‘plamiga aytiladi. Bu alifbo o‘z ichiga ASCII (halqaro belgilar va ularning uodlari) jadvalining hamma belgilarini, yaʼni quyidagilarni oladi:
Lotin alifbosining katta va kichik sharflari;
0 dan 9 gacha arab raqamlari;
Tagiga chizish belgisi (_);
Bo‘sh joy belgisi; (bu belgi paskal tilida barcha xizmatchi so‘zlar va maʼlumotlarni bir-biridan ajratish uchun foydalaniladi;
Boshqaruvchi belgilar : ASCII jadvalidagi kodlari 0 dan 31 gacha bo‘lgan belgilar. Bu belgilar satr va konstantalarni ifodalashda qo‘llanishi mumkin;
Turli ko‘rsatmalarni yozish uchun ishlatiladigan maxsus belgilar: > < q − Q g’ & ? ! ^ % $ ; : ' # @ , . [] () {} G’ *
Asosiy bo‘lmagan belgilar: (ASCII ni kengaytiruvchi, yaʼni kodi 128 dan 255 gacha bo‘lgan belgilar. Rus alifbosining katta va kichik harflari, psevdografika elementlari shu sinfga kiradi. Bu belgilar turli konstantalarni hosil qilishda, matnlarni yozishda, izoxlarni tashkil qilishda qo‘llanishi mumkin.);
Murakkab belgilar: * * .. :q >q
Xizmatchi so‘zlar. Ular paskal tilida maʼlum bir maʼno yoki ko‘rsatmani anglatuvchi maxsus belgilar zanjiridan iborat bo‘lib, bu zanjirni o‘zgartirish yoki qisqartirib qo‘llash mumkin emas. Masalan:
begin, program, end va hokazo.
Pascal dasturlash tili yuqori darajali obyektga yo'naltirilgan dasturlash tili. Pascal dasturlash tili 1970-yilning boshida Niklaus Wirth tomonidan yaratilgan. Pascal dasturlash tili, dasturlashni tizimli, strukturaviy va protseduraviy o'rgatish uchun ishlab chiqilgan. Lekin Pascal dasturlash tilidan foydalanib ham yuqori darajali mukammal dasturlarni tuzish mumkin. . Paskal tilining operatorlari
Programmaning asosiy vazifasi boshlang’ich ma’lumotlarni qayta ishlab, qo’yilgan masalaning natijasini beruvchi amallarni bajarishdan iborat. Algoritmik tillarda biror-bir masalani echishda ma’lumotlar ustidagi amallarni bajarish operatorlar zimmasiga yuklatiladi. Programmalash tillaridagi xar bir operator, ma’lumotlarni qayta ishlash jarayonining mustaqil bosqichi bo’lib, mantiqan yakunlangan xisoblanadi. Programmada yozilgan operatorlarni to’g’ri talqin qilish uchun ularni yozish qoidalari (operatorning sintaksisi) qat’iy aniqlangan bo’lishi shart.
Shunday qilib, aytish mumkinki programma bu - turli xil vazifalarni bajaruvchi va yagona maqsadga eltuvchi operatorlarning to’plamidir. Xar bir operator ; (nuqta-vergul) belgisi bilan yakunlanadi. Mavjud programmalash tili ruxsat bergan operatorlardan unumli va oqilona foydalanib, mukammal programmalar yaratish dasturchining bilimiga, tajribasiga va san’atiga bog’liqdir.
Quyida Paskal tilining asosiy operatorlari bilan to’liqroq tanishib, ulardan dasturlashda foydalanish yo’llarini o’rganamiz.
2. O’zlashtirish operatori
Odatda programma natijasini xosil qilish uchun juda xam ko’p oraliq xisob ishlarini bajarishga to’g’ri keladi. Oraliq natijalarni esa ma’lum muddatga saqlab turish lozim bo’ladi. Bu ishlarni bajarish uchun tilning eng asosiy operatorlaridan biri bo’lmish - o’zlashtirish operatori ishlatiladi:
::q<ûzgaruvchi>:q;
Bu erda :q o’zlashtirish belgisi xisoblanadi, bu belgini q (tenglik) belgisi bilan almashtirmaslik zarur. O’zlashtirish operatorida :q belgisining o’ng tomonidagi qiymati aniqlanilib, so’ng chap tomondagi o’zgaruvchiga o’zlashtiriladi yoki boshqacha qilib aytganda, ifoda qiymati o’zgaruvchi nomi bilan xotirada eslab qolinadi. O’zgaruvchining oldingi qiymati esa (agar u bo’lsa) yo’q bo’lib ketadi.
O’zlashtirish operatorini yozishdagi eng muxim narsa, bu ifoda va o’zgaruvchilarning bir xil tipli bo’lishligidir.
O’zlashtirish belgisining o’ng tomonidagi ifodaning natijaviy tipiga qarab, o’zlashtirish operatorini uch xil guruxga ajratish mumkin: arifmetik o’zlashtirish operatori, mantiqiy o’zlashtirish operatori, belgili o’zlashtirish operatori.
Masalani echish jarayoni qator bajariluvchi bosqichlarga bo’linib ketadi. Bu bosqichlarning har birida ma’lum qiymatlar bo’yicha yangi qiymatlar hisoblanadi. Bu hisoblangan qiymatlarning ba’zilari natijaviy qiymatlar bo’lsa, ba’zilari esa oraliq qiymatlar bo’lib, keyingi bosqichlar uchun boshlang’ich qiymat bo’lib hisoblanadi.
Yangi qiymatlarni hisoblash uchun ifoda tushunchasi hizmat qila-di, har bir ifoda bitta qiymatni hisoblash qoidasini belgilaydi.
Hisoblangan qiymatni hisoblash jarayonining keyingi bosqichida foydalanish uchun eslab qolish zarur, bunday eslab qolish hisoblangan qiymatni ma’lum o’zgaruvchiga o’zlashtirish yo’li bilan amalga oshiriladi. Bunday amalni bajarish, asosiy operatorlardan biri hi-soblanuvchi qiymat berish, ya’ni o’zlalggarish operatori bilan bajariladi.
O’zlashtirish operatori sintaksis jihatdan quyidagicha anikdanadi:
::q:q;
Bu erda 2 ta belgidan iborat bo’lgan asosiy belgi «:q» «o’zlashti-rish» deb o’qiladi.
O’zlashtirish operatorining bajarilishida «:q» belgisining o’ng tomonidagi ifodaning qiymati hisoblanib, belgining chap tomoni-dagi o’zgaruvchi tomonidan o’zlashtiriladi.
Shunday qilib, o’zlashtirish operatori mustaqil mantiqiy tugal-langan hisoblash jarayonini ifodalaydi: o’zlashtirish oieratori bajarilishi natijasida ma’lum o’zgaruvchilar keyingi bosqichlarda ishlatilishi mumkin bo’lgan yangi joriy qiymatni qabul qiladi.
Turli toifadagi ifodalar aslida icyn o’xshashliklarga ega bo’lib, ularning barchasi operandlardan, amal belgilaridan, amallarning ixtiyoriy ketma-ketligini bajarish imkoniyatini beruvchi qavslar-dan tashkil topadi. Bunda operandlar uch turli: o’zgarmas, o’zgaruvchan va hisoblanadigan bo’ladilar.
O’zgarmas operand dastur tuzilayotganda ma’lum bo’lgan va bajari-lishi davomida o’zgarmas bo’lgan qiymat bo’lib, boshqacha aytganda, o’zgarmas operand — bu biror toifadagi konstantadir.
Uzgaruvchi operand qiymati dastur bajarilishi davomida aniq-lanadi va o’zgarishi mumkin. Ammo bu operand qatnashgan ifodaning hisoblanishidan oldin uning qiymati aniqlangan bo’lishi lozim. Bunday operandlar Paskal tilining o’zgaruvchilari hisoblanadi. Sintaksis jihatdan o’zgaruvchi qiymatni o’zlashtiradigan, shu o’zga-ruvchi no.mi sifatida qo’llaniladigan identifikatordir.
Hisoblanadigan operand qiymati hatto hisoblashdan avval ham aniqlanmagan bo’lib, ifoda hisoblanishi jarayonida aniqlanadi. Hisoblanadigan operandlar sifatida Paskal funktsiyalarini ko’r-satish mumkin.
Operatorning o’ng tarafidagi ifoda qiymatining turiga ko’ra o’zlashtirish operatorini shartli ravishda bir necha turga ayasratish mumkin.
Arifmetik o’zlashtirish operatori o’zgaruvchiga arifmetik toi-fadagi, ya’ni REAL yoki INTEGER turdagi qiymatni berish uchun xizmat qidadi.
Bunday operatorning o’ng tarafida arifmetik ifoda, ya’ni shu turlardali qiymatni hisoblash qoidasink beruvchi ifoda bo’lishi kerak. Agar o’zlashtirish operatorining chap qismidagi o’zgaruvch!! REAL turga ega bo’lsa, arifmetik ifodaning qiymati REAL turdagi yosi INTEGER turdagi bo’lishi mumkin (bu holda olinadigan butun qiymat avtomatik tarzda haqiqiy qiymatga aylantiriladi). Agar chap qismdagi o’zgaruvchi INTEGER turga ega bo’lsa, unda arifmetik ifoda, albatta, shu turdagi qiymatni saqlashi kerak. Arifmetik ifodaning barcha operandlari REAL yoki INTEGER toifada bo’lishi kerak.
Asosiy operandlar sifatvda o’zgarmaslar (ishorasiz son yokts kons-tanta nomi), o’zgaruvchilar va funktsiyalar ishlatiladi.
Arifmetik ifodaga quyidagi misollarni (ifodaning o’ig tara-fida uni^g hisoblanish tartibi, har bir ifoda natijasi va ishla-tilgan funktsiyalar qiymatlari turlarini hisobga olgan holda) kel-tirish mumkin:
2*3Q4*5 ((2*3)Q(4*5)q26)
9 DIV 4G’2 ((9 DIV 4)G’2q1.0)
40G’5G’10 ((40G’5)G’10q0.8)
-sqrt(sqr(3)Q32G’2) (-sqrt(sqr(3)Q(32G’2))q-5.0)
((2Q4)G’yuQ2G’4)*2 ((((2Q4)G’10)Q2G’4))*2q2.2)
Quyida arifmetik o’zlashtarrpp operatoriga misollar kelttsrilgan (bunda, x, a, b, c, r — REAL turdagi o’zgaruvchilar, pi q 3.14159 bo’lgan haqiqiy sonning nomi):
x:q0 (x o’zgaruvchiga nolga teng bo’lgan qiymat berilyapti);
1:q1Q1 (I ningjoriy qiymati bir birlikka orttirilyapti);
c:qsqrt(a*aQb*b) (a va b katetlar asosida gipotenuza uzunligi hisoblanyapti);
x:q2*pj*r (g radiusli aylana uzunligi x hisoblanayapti).
K«uyidagi yozuvlar sintaksis bo’yicha o’zlashtirish operatorlari emas yoki Paskalda bunday yozib bo’lmaydi:
3:q1Q2 (chap tomonda konstanta qo’llanishi mumkin emas); xq2*pi*r («q» belgi o’zlashtirish operatorining belgisi emas);
1q5G’4 (butun sonli o’zgaruvchiga haqiqiy qiymat berilmavdvd); x:a*-G’2 (ketma.-ket ikki amal belgisini yozish mumkin emas).
Agar o’zlashtirish operatorining chap tarafida BOOLEAN toifadagts o’zgaruvchi ko’rsatilgan bo’lsa, operatorning o’ng ta^afida mantiqiy qiymat (TRUE yoki FALSE) ni hisoblovchi matsiqiy ifoda berilishi kerak.
Pascal dasturlash tilining asosi Algol tilidir. Pascal dasturlash tili juda ko'plab ma'lumotlar toifasiga ega til va dasturlarni strukturaviy dasturlashga juda qulay. Hozirgi Pascal kodlarini o'qisangiz xuddi ingliz tilida matn o'qiyotgandek bo'lasiz.
Do'stlaringiz bilan baham: |