Paskal dasturlash tili

Paskal tilining umumiy strukturasi
_____________________
 Paskal tilida dastur tuzilmasi
Algoritm  va dastur ikkita asosiy qismdan (bo`limdan) tarkib topadi
    a) amallarning tavsifi
    b) amallardagi berilgan ma`lumotlarning tavsifi
Amallar operatorlar sifatida ishlatiladi, berilgan ma`lumotlar esa dasturda sarlavha va tana qismlardan iborat bo`ladi. Tana tushunchasi blok deb ham yuritiladi. Dastur sarlavhasida nom va uning paramertlari beriladi. Xususiy holda bular - (fayl) o`zgaruvchilari va ular hisob-kitoblar argumenti va natijasi hisoblanadi. Blok oltita qismdan tarkib topgan. Ulardan ixtiyoriysi (operatorlardan tashhari) bo`lmasligi mumkin.
Blokdagi qismlar quyidagi tartibda kelishlari lozim.
     Blok =Nishonlarni e`lon qilish bo`limi 
               O`zgarmaslarni e`lon qilish bo`limi
               Tiplarni e`lon qilish bo`limi
               O`zgaruvchilarni e`lon qilish bo`limi
               Protsedura va funksiyalarni e`lon qilish bo`limi
               Operatorlarni e`lon qilish bo`limi
Misol: 
Program Faktor;  {n- faktorialni topuvchi dastur}
Var
 i,n :  Integer;
Begin
Read (n);   S:=1; 
 For   i:=1   to  n    do    S:=S* i; 
 Write (S);
End.
Birinchi bo`limda dasturda ishlatiladigan barcha nishonlar ro`yxati keltiriladi. Ikkinchi bo`limda o`zgarmaslar va ularning qiymati beriladi. Keyinroq bu o`zgarmaslarga nomlari orqali murojaat qilinadi. Uchinchi bo`lim tiplarni e`lon qilish sohasi. To`rtinchisi dasturdagi o`zgaruvchilarni e`lon qilish sohasi. Beshinchi bo`limda dasturning aftonom qismlari (protsedura va funksiyalar) e`lon qilinadi.
Operatorlar bo`limida esa bajariladigan amallar bo`ladi.
Diagrammadagi  har bir to`g`ri to`rtburchak biror nom dan iborat bo`ladi. Bu nomlar uchun biror diagramma mavjud. Terminal belgilar esa oval yoki aylana ichida joylashadi.
Ta`sir sohasi
           Har bir protsedura va funksiya  tavsifi tuzilma jihatdan dastur tuzilmasiga o`xshaydi. Bunda ham sarlavha va blok tushunchalari mavjud. Bundan procedura va funksiya tavsifi boshqa protsedura va funksiya ichida joylashishi mumkinligi kelib chiqadi. Nishonlar, konstruksiyalar, tiplar, o`zgaruvchi va protseduralar, funkciyalar o`zlari joylashgan funksiya yoki protseduraga nisbatan lokal munosabatda bo’ladi. Komponentlar faqat o`ziga mos blokda ma`noga ega bo`ladi. Bunday fragment nomlarning ta`sir sohasi deyiladi. Bloklar matn  ichma-ich joylashishidan tasir sohalarining ham  ichma-ich joylashishi kelib chiqadi. Bosh dasturning ob`ektlari (biror protsedura lokallashmagan) global hisoblanadi va dasturning barcha qismida ularga ruxsat mavjud bo’ladi.
Agar bosh dastur bloki  0-daraja bo’lsa, bu blok ichida  joylashgan blok 
1-daraja va h.z.
Quyida ichma-ich joylashgan bloklarga misol keltirilgan: 
Program M;                                                           
   Procedure P;                                                         
      Procedure A;
        Procedure B;                                                     bu erda 
           Begin                    
0 -daraja   = M
1 -daraja   = P,Q
2 -daraja   = A,R,S 
3 -daraja   = B
           End; {B};                                                           
       Begin
      End;  {A};
    Begin
  End;  {P};
   Procedure Q;
       Procedure R;
        Begin
      End;  {R}; 
Procedure S;
          Begin
         End;  {S};                         
       Begin
     End;  {Q};
   Begin
End;  {M};

Leksemalar va ajratuvchilar. Paskal tilida dastur leksem va ajratuvchi belgilardan tarkib topadi. Paskal tilida leksemalarga maxsus belgilar, so`z belgilar, nomlar, sonlar, satrlar, nishonlar va direktavalar kiradi. Keyingi bo`limda ajratuvchi belgilar haqida so`z olib boramiz.
Ajratuvchilar. Ajratuvchi belgilarga bo`sh joylar, satr oxirini bildiruvchi belgi va izoh kiradi. Leksem ichida ajratuvchilar ham, ularning qismi ham uchramaydi. Nomlar belgi-so`zlar yoki sonlar orasida hech bo`lmasa birta ajratuvchi belgi bo`lishi lozim.  Izohlar  yoki ( bilan boshlanadi va  yoki ) bilan tugaydi. Izoqda ixtiyoriy belgilar bo`lishi mumkin. Faqat   va  ) bo`lmaydi. Izohlar dasturda ma`noga ega bo`lmaydi.

Maxsus belgilar va belgi-so`zlar. Quyida mahsus belgilar va belgi-so`zlar ro`yhati keltiriladi. Ayrimlari ikkita belgidan tarkib topgan, bular orasiga ajratuvchi quyilmaydi.
                                   Maxsus belgilar:
+   -      *     /                        =    <>    <    <=    >    >=
 .    ,       :     ;                        : =   . . 
(     )      [     ]

Alternativ yozuvlar ham mavjud:
[  uchun  (.   
]  uchun   .)

    uchun    @  yoki  ^
Simvol-so`zlar (yoki kalit so`zlar) qo`lda yozilgan dasturlarda boshqalardan ajratish maqsadida tagi chiziladi. Kalit so`zlar Paskal tilida ma`lum bir ma`noni bildiradi, bu ma`noni o`zgartirish mumkin emas. Hususiy qolda bu kalit so`zlar nomlar sifatida ishlatilmaydi. So`zlar harflar ketma-ketligidan iborat. Kalit so`zlar ro`yhati:
              and                            end                      nit                                  set
              array                          file                      not                                 then
              begin                         for                       of                                   to
              case                           function             or                                   type
             const                           go to                    packed                          until
             div                              if                          procedure                     var
             do                               in                         program                        while
             downto                       label                    record                            with
             else                             mod                     repeat

Nomlar. Nomlar o`zgarmaslar, tiplar, chegaralar, o`zgaruvchilar, procedura va funkciyani ifodalash uchun ishlatiladi. Nomlar harf bilan boshlaydi. Undan so`ng ihtiyoriy tarzda harf yoki raham kelishi mumkin. Satrdagi (nomdagi) katta va kichik harflar ekvivalent qisoblanadi.
 Nomlarga misollar:
Studens,  Home5 , Pi,  a3b , X 
ThisisAVeryLongButNeverTheLessValidIdentifier
Home5  nomi   hoME5  nomi bilan e`kvivalent.
Quyidagilar nom bo’lmaydi:
3rd,  array,   lever.4,    Root-3,   Temth-Plaid

Sonlar. Haqiqiy va butun qiymatli sonlarni ifodalash uchun o’nli notaciya ishlatiladi. Ihtiyoriy sonlar oldidan (+ yoki -) belgisi bo`lishi mumkin. Ammo ishorasiz son konstruksiyasida qo`yilmaydi. Sonda vergul ishlatilmaydi. Haqiqiy sonlar o`nli nuqta orqali yoziladi. E(e) harfi davomidan tartib keladi, bu o`nni darajasini bildiradi. Agar (o`nli) haqiqiy son o`nli (-) ga ega bo`lsa, u holda undan sung va oldin kamida birta raham bo`lishi lozim.
Misol:
3,    03,     6272844,   0.6,      SE-8,    49.22    E + 08     1E10
3,  487,159,          XII,    .6,         E10,      5.E - 16,   file,   3.487.159.



Satrlar. Harflar ketma-ketligi apostroflar orasiga qo`yilishi  natijasida satr qosil qilinadi.               
 Misol.      a,  ;, 3, begin don t  This is String;

Nishonlar. Nishonlar Paskal tilida operatorni belgilash uchun  ishlatiladi va ishorasiz butun son bilan ifodalanadi. Ularni qiymatlari 0 dan 9999 gacha bo`ladi.
Misol: 13,  0101,   9999

Direktivalar. Direktiva-nomlar bo`lib, procedura  va funkciya bloklari o`rnida qo`yiladi. Direktiva sintaksisi nomning sintaksisi bilan bir hil.

Paskal dasturlash tilining asosiy tushunchalari

Ma`lumki, har qanday tilni o`rganish uning alifbosini o`rganishdan boshlanadi. Tilning alifbosi — shu tilgagina tegishli bo`lgan asosiy belgilar va tushunchalar to`plamidan iborat bo'ladi. Paskal tilining alifbosini tashkil etuvchi asosiy belgilar majmuasini uch guruhga ajratish mumkin: harflar, raqamlar va maxsus belgilar.
Harf sifatida katta va kichik lotin harflari ishlatiladi. Lekin, matnlar va dasturga izohlar yozish uchun kirill alifbosining bosh va kichik harflari ham alifboga kiritilgan.
Raqamlar sifatida oddiy arab raqamlari olingan:
<raqam>::=0|l |2|3|4|...|9
Maxsus belgilar ko`p sonli va bir jinslimas bo'lganligi uchun ularni o'z navbatida to'rtta guruhga ajratamiz:
<maxsus belgi>::=<ariimetik amal belgisi>| <solishtirish amali belgisi> | <ajratgich> |<xizmatchi so'z>.
<arifmetik amal belgisi>::= * |  /  | + | —
Bu amallar mos ravishda ko`paytirish, bo`lish, qo`shish va ayirish belgilari hisoblanadi.
Solishtirish amallarining belgilari, ularning matematik ifodasi va amallarning ma`nosi 2-jadvalda o`z ifodasini topgan. Bu yerda shu narsaga ahamiyat berish kerakki, ba`zi bir amallar ikkita belgi orqali ifodalangan. Ajratkichlar guruhini quyidagi belgilar tashkil qiladi <ajratkich>::=. |,| :|; |( | ) | [ | ] | { | } | ‘ |:= Ajratkichlarning vazifalarini tilni o`rganish davomida aniqlab boramiz.
Xizmatchi so'zlar guruhi juda keng, shuning uchun bu so`zlarning hammasini birdaniga yodlab, eslab qolish shart emas, bil aks ulardan foydalanish davomida ketma-ket eslab qolinaveradi:
<xizmatchi so`zlar>::=and | array const | div | do | downto | else | end
oto | if | in | label | mod | nil | not | of | or | packed program | procedure | record | repeat | set | then | to type | until | var | while | with
Operatorlar
Operator tushunchasi tilning eng asosiy tushunchalaridan biri bo`lib, har bir operator tilning yakunlangan jumlasi hisoblanadi va ma`lumotlar tahlilining tugallangan bosqichini ifodalaydi.
Operatorlarni ikki guruhga ajratish mumkin. 
1-guruh operatorlarining tarkibida boshqa operatorlar qatnashmaydi va bu operatorlar asosiy operatorlar deb ataladi. Asosiy operatorlar jumlasiga quyidagi operatorlar kiradi: o`zlashtirish operatori, protsedura operatori, o'tish operatori, bo'sh operator. 
2-guruh operatorlarining tarkibida esa boshqa operatorlar ham qatnashib, ular tarkibiy operatorlar deb ataladi. Ular jumlasiga quyidagi operatorlar kiradi: tashkiliy operator, tanlov operatori, takrorlash operatori, ulash operatori.
Masalani yechish algoritmida yuqoridagi ikki guruh operatorlarning ketma-ketligi cheklanmagan miqdorda qat-nashishi mumkin. Bu ketma-ketlikdagi operatorlar o'zaro «;» ajratish belgisi orqali ajratiladi, ya'ni dastur matnining yozuvi alohida operatorlarga bo'linadi. Shunday qilib, S orqali ixtiyoriy yozish mumkin bo'lgan operatorni belgilasak, masala yechilishining algoritmi quyidagi ketma-ketlik bo'yicha ifodalanishi mumkin:
S; S; ….S.
Operatorlarning bu ketma-ketligi ularning dasturda yozilish tartibi bo'yicha bajariladi. Shunday qilib, operatorning izdoshi undan keyin yozilgan operator hisoblanadi. Operatorlar bajarilishining bu tabiiy ketma-ketligini faqat o'tish operatori yordamida buzish mumkin. Tarkibiy operatorlarda esa operatorlarning bajarilish tartibi o'ziga xos qoidalar bilan aniqlanadi.
Ismlar va identifikatorlar
Ma'lumki, ma'lumotlarning tahlili jarayonini ifodalovchi algoritm turli xil ob'ektlar (o'zgarmaslar, o'zgaruvchi miqdorlar, funksiyalar va hokazo) ustida ish olib boradi. Bu ob'ektlarga ularning vazifasi va qabul qiladigan qiymatlariga qarab maxsus ismlar beriladi. Shu ismlarni odatda, identifikatorlar deb ataladi. Identiiikator deb harf yoki «_» belgisidan boshlanuvchi harf, raqam va «_» belgisining ixtiyoriy ketma-ketligiga aytiladi:
<identifikator>::=<harf> | <identifikator> <harf> | <identifikator> <raqam>
Agar quyidagi oraliq tushunchani kiritsak:
<harf yoki raqam>::= <harf>|<raqam>
Yuqoridagi aniqlashni quyidagicha ham yozish mum-kin:
<identifikator>::= <harf> {<harf yoki raqam>}.
Xizmatchi so'zlardan identifikator sifatida foydalanish mumkin emas. Odatda identifikator so'zining o'rniga qulayroq va qisqaroq qilib ism deyish mumkin. Dasturda qatnashuvchi ob'ektlarga ismlarni dasturchi o'z ixtiyoriga ko'ra tanlab olishi mumkin. Bir xil ism bilan bir necha xil ob'ektlarni nomlash mutlaqo mumkin emas. Turbo Paskal muhitida ismda qatnashuvchi belgilar soni (ism uzunligi) 63 ta belgidan oshmasligi kerak.
Ismlarga misollar:
_Burchak, _A1, Ahmad_Berdiev, C, Summa, Time, A, SI, ...
E'lonlar
Paskal tilining asosiy tushunchalaridan biri e'lon qilish hisoblanadi. Dasturda qatnashuvchi barcha ob'ektlarning ismlari rnos ravishda d'asturning bosh qismida, ularning qanday tipdagi qiymatlar qabul qilishi mumkinligiga qarab, e'lon qilinib qo'yilishi kerak. Paskal tilida e’lon qilishning 5 xil turi mavjud:
metkalar e'loni;
o'zgarmaslar e'loni;
tip aniqlash uchun e'lon;
o'zgaruvchilar e'loni;
protsedura va funksiyalar e'loni.
Umuman olganda, yuqorida sanab o'tilgan e'lonlar-ning vazifalari ularning nomlaridan ham sezilib turibdi, e'lonning vazifalari esa keyinroq to'la ochib beriladi.
O'zgaruvchilar
O'zgaruvchi dastur ob'ekti bo'lib, turli xil qiymatlarni xotirada ma'lum nom bilan saqlab turish uchun ishlatiladi. O'zgaruvchi o'z qiymatini dasturning bajarilish davomida o'zlashtirish operatori yordamida qabul qiladi. Qabul qilingan qiymat o'zgaruvchiga boshqa yangi qiymat berilmaguncha saqlanib turiladi va yangi qiymat berilishi bilan eski qiymat butunlay o'chib, yo'q bo'lib ketadi. Har bir o'zgaruvchiga ma'lum bir tipga tegishli qiymatlarnigina qabul qilish huquqi beriladi. Boshqa tipdagi qiymatlarni o'zlashtirishga urinish dasturning xatoligini ta'minlaydi.
O'zgaruvchi — bu identifikatordir. Uning ismi o'zgaruvchining qiymatiga murojaat qilishda ishlatiladi. Boshqacha aytganda, dastur matnidagi ism shu o'zgaruvchining qiymatini ifodalaydi.
Funksiyalar va protseduralar
O'rta maktab kursidan funksiya tushunchasi bizga yaxshi ma'lum. Algoritmik tillarda faqat qiymatini hisoblash algoritmlari ma'lum bo'lgan funksiyalargina ishlati¬ladi. Dastur tuzuvchi dastur uchun lozim bo'lgan keraklicha funksiyalarni o'z dasturiga kiritishi mumkin.
Xuddi funksiyalar kabi hal qilinayotgan masalaning ma'¬lum bir tugallangan bosqichlarini hisoblash vazifasini protseduralar zimmasiga yuklasa ham bo'ladi. Funksiyani hisoblash natijasida faqat, yagona natijaviy qiymat-ga erishiladi, protseduradan foydalanganda esa, natijaviy qiymatlar soni yetarlicha ko'p bo'lishi mumkin.
Dasturda aniqlangan funksiya va protseduralar o'zgaruvchilarning e'loni bo'limida e'lon qilinib qo'yilishi kerak. Bunda har bir funksiya va protseduraga ularning bajaradi-gan vazifasiga mos ismlar berib qo'yiladi. Ularni aniqlashda formal parametrlardan foydalaniladi. Bu parametrlarning tiplari o'z navbatida, funksiya va protseduraning ichida aniqlanilib, e'lon qilinadi.
Dasturda aniqlangan funksiya va protseduralardan foy-dalanish uchun dastur matnida ularning ismlari va formal parametrlarga mos bo'lgan faktik parametrlari berilishi kerak.
Ma'lumki, matematika kursidagi elementar funksiya-lardan dastur tuzishda juda ko'p foydalanishga to'g'ri keladi (masalan sin x, cjs x, In*, e* va hokazo). Bunday funk-siyalarni standart funksiyalar deb ataladi va standart iunksiyalarning ismlaridan boshqa maqsadda foydalanish maqsadga muvofiq emas.
Dastur matnini yozish qoidalari
Har bir algoritmik tilning dastur matnini yozish qoida-lari turlicha bo'ladi. Dasturlash tillaridan eng soddasi Beysik tilining ma'lum versiyalarida dasturning bar bir operatori qat'iy aniqlangan qator raqamlari orqali yoziladi. Paskal tilida esa operatorlar ketma-ket yozilib, o'zaro «;» belgisi bilan ajratib boriladi. Bundan tashqari, yozilgan dasturning o'qishga oson va undan foydalanish qulay bo'lishi uchun dasturda «matnni ajratish» tushunchasi (bo'sh joy, qatorning tugashi va izohlar) dan foydalaniladi.
Bo'sh joy (probel) grafik tasvirga ega bo'lmagan belgi bo'lib, qatordagi bo'sh joyni anglatadi. Lekin, bo'sh joy belgisi o'zining sonli kodiga ega va dastur matnidagi boshqa belgilar kabi komputerga kiritiladi.
Qator oxiri (tugashi) boshqaruvchi belgi bo'lib, u ham grafik tasvirga ega emas. Ma'lumki, dastur matnini yozish davomida uni tabiiy ravishda yangi qatorlarga ajratilib yoziladi. Chunki, shu matn yozilmoqchi bo'lgan qog'ozning ham, komputer ekranining ham o'lchamlari cheklangan. Dastur matnini alohida qatorlarga ajratmay yozish ham mumkin, lekin bir satrga 256 tadan ortiq belgi sig'maydi. Dastur matnini alohida qatorlarga ajratish dastur tuzuvchining xohishiga qarab bajariladi. Ma'lum bir qator tugamay turib, yangi qatorga o'tish uchun «qator oxiri» tugmachasi bosiladi. Bu tugmacha ham o'zining maxsus sonli kodiga ega.
Izohlar dasturni o'qishga oson bo'lishi, uni qiynalmay tekshirib, yo'l qo'yilgan xatolarni to'g'rilash va dasturda bajarilayotgan ishlarni tushuntirib borish uchun qo'yiladi. Izohsiz yozilgan dasturni hujjat sifatida qabul qilinmaydi. Muvaffaqiyatli qo'yilgan izoh dasturning va dasturchining katta yutug'i hisoblanadi. 
Izohlar ixtiyoriy vaqtda dastur matniga kiritilishi yoki olib tashlanishi mumkin. 
Bu bilan dasturning ishi o'zgarib qolmaydi. Izohlarni «{» va «}» qavslari ichiga olinib yoziladi.
Dastur «matn ajratgich»laridan foydalanishning quyi-dagi qoidalariga amal qilish lozim:
tilning ketma-ket yozilgan ikkita konstruksiyasi orasiga albatta bo'sh joy yozilishi kerak;
ajratgichlarni xizmatchi so'zlar, sonlar va ismlar orasiga qo'yish maqsadga muvofiq emas.
Quyida yuqoridagi qoidalar asosida yozilgan dasturga doir misol keltirilgan.
Misol. Quyidagi berilgan funksiyalarning qiymatlarini
[a,b] oralig'idagi x=a+ih, h =b-a/n  lar uchun (n-berilgan son) hisoblash dasturini tuzing: fl(x)=x2, /2(д;)=3-x, f3U)=0,5—sinx 
Program P1;
{ ll(x)=x*x; f2(x)=3-x; f3(x)=0,5—sin(x) funksiyalar qiymatini [a,b]  oralig'ida nisoblash dasturi } 
const
n=lO; {[a,b] oraliqni 10 ta bo'lakchalarga ajratdik} 
Var
a,b:real; i:integer;
x,h,y1,y2,y3:real; 
Begin
read(a,b); {[a,b] oraliqning chegaralarini ajratish}
h:=(b—a)/n;    я:=а;    i:=0;    {Boshlang'ich ma'lumotlar hisoblandi} 
Repeat
yl:=x*x.', y2:=3—x; г/3:=0.5—sinU);

Writeln (x, y\, yl, г/3); {Funksiyalar hisoblanib, natijalar chop etilmoqda}
x:=x+h;   i:=i+\\ Until i=n+\
{Hisob ishlari yakunlandi} end.

Paskal algoritimik tilida yozilgan dasturning asosiy elementlari

Programma yoki dastur deb, algoritmik til yordamida kompyuterda masalalar 
echish uchun yozilgan aniq va mukammal algoritmga aytiladi. Paskal tilidagi 
dastur tarkibi ikkita asosiy qismdan iborat bo’ladi - dastur sarlavxasi va dastur 
tanasi. Dastur tanasidan keyin nuqta qo’yiladi va bu nuqta dastur oxirini bildiradi. 
Dastur sarlavxasi dastur tanasidan nuqtali vergul bilan ajratiladi: 
<dastur>::=<dastur sarlavxasi>;<dastur tanasi> 

    	Dastur sarlavxasi PROGRAM xizmatchi so’zi bilan boshlanadi, bu so’zdan 
keyin shu dasturga berilgan nom yoziladi (bu nom dastur ichida boshqa xech 
qanday maqsadda ishlatilishi mumkin emas). Dastur nomidan keyin yumaloq qavs 
ichida dastur parametrlari ro’yxati beriladi. Bu parametrlar fayllar nomi bo’lib, ular 
orqali dastur tashqi muxit bilan bog’lanadi. Mavjud bo’lgan ko’p fayllar orasidan 
ikkita standart matnli fayllar ajratilgan. Bular dasturni boshlang’ich ma’lumotlar va 
ma’lumotlarni qayta ishlash natijalari bilan bog’laydigan buyruqlar - INPUT va 
OUTPUT lardir. 
	Dastur sarlavxasining yozilishini quyidagi misolda ko’rishimiz mumkin: 
PROGRAM PASCAL (INPUT, OUTPUT); 
Paskalning ko’p laxjalarida (versiyalarida) INPUT va OUTPUT yozilmasligi 
ham mumkin. Umumiy holda dastur tanasi (bloki) oltita bo’limdan iborat va ular 
aniqlangan ketma-ketlikda joylashgan bo’lishi shart. 
<blok>::=<belgilar bo’limi>;<dastur tanasi> 
<konstantlar bo’limi> 
<toifalar bo’limi> 
<o’zgaruvchilar bo’limi> 
<protsedura va funktsiyalar bo’limi> 
<operatorlar bo’limi> 
	Dasturning asosiy vazifasi bu kompyuterga ma’lumotlarni (berilganlarni) 
qayta ishlash bo’yicha buyruqlar berishdir. 
Bu buyruqlar operatorlar yordamida beriladi. Shuning uchun ham operatorlar 
bo’limi asosiy hisoblanadi va ular har qanday dasturda ishtirok etishi shart. 
Operatorlar bo’limidan oldingi bo’limlarning ba’zilari dasturlarda ishtirok 
etmasliklari ham mumkin. Ular tavsiflash bo’limlari deyiladi. Tavsiflashning bu 
bo’limlarida operatorlar bo’limida ishlatilgan kattaliklar tavsiflanadi, ya’ni e’lon 
qilinadi. 
	Dasturning ixtiyoriy operatorining oldiga belgi va ikki nuqta qo’yib qolgan 
operatorlardan ajratish mumkin. Operatorning belgisi bittadan ortiq bo’lishi va 
operatorlarning belgilari bir xil bo’lishi mumkin emas. Chunki operatorning 
belgisiga uning nomi sifatida qaraladi. 
Dasturda ishlatilayotgan xar bir belgi avval belgilar bo’limida tavsiflash yo’li 
bilan e’lon qilinishi kerak: 
<belgilar bo’limi>::=<bo’sh>/ label <belgi>{<belgi>}; 
Belgilar bo’limi label (belgi) xizmatchi so’z bilan ochiladi, undan keyin 
belgilar ketma-ket vergul bilan ajratilgan konstanta shaklida yoziladi. 
Belgilar bo’limida e’lon qilinayotgan belgilar ixtiyoriy ketma-ketligida 
yozilishi mumkin. Dasturdagi ketma-ketlikka rioya qilmasa ham bo’ladi. Belgilar 
(0-9999) orasidagi sonlardan olinadi (Turbo Paskalda belgilar sifatida ba’zi bir 
belgilarni ham ishlatish mumkin). 
Misol sifatida quyidagini keltirishimiz mumkin: 
Label 9, 12, 84; 
Konstanta yoki o’zgarmas kattalik deganda aniq bir turdagi qiymatni 
tushunamiz, dastur ishlash jarayonida bu qiymat o’zgarmaydi shu sababli ular 
o’zgarmas deb ham yuritiladi. Paskal tilida konstantalarga nom beriladi. 

Konstantalar tavsiflarining barchasi konstantalar bo’limi tarkibida bo’lishi 
kerak. 
<konstantlar bo’limi>::=<bo’sh>/ const 
<konstantlar bo’limi>;<konstanta tavsifi>; 
<konstanta tavsifi>::=<konstanta nomi>=<konstanta>(qiymat); 
Konstantalar bo’limi const xizmatchi so’z bilan boshlanadi va nuqtali vergul 
(;) bilan tugaydi. 
Misol: 
Const A=36; V=12.6; KAF=’FINANSI’; 
Toifalar bo’limi quyidagicha aniqlaniladi: 
<toifalar bo’limi>::=<bo’sh> / type <toifa tavsifi>;<toifa tavsifi>; 
integer (butun), real (xaqiqiy), char(matnli), boolean (mantiqiy)
toifadagi qiymatlar bilan bir qatorda Paskal tilida boshqa toifadagi qiymatlarni ham
ishlatish mumkin. Lekin standart toifalardan farqli ravishda boshqa toifalar 
dasturda aniq tavsiflanishi kerak. Bu tavsiflashni quyidagilarda ko’rishimiz 
mumkin:
<toifani tavsiflash>::=<toifa nomi>=<toifa> 
<toifa>::=<toifa nomi>/<toifaning berilishi> 
Bu metaformuladagi toifa nomi sifatida standart toifa nomi ham berilishi 
mumkin. Toifalarning hamma tavsiflari toifalar bo’limida berilgan bo’lishi kerak. 
Toifalar bo’limi type xizmatchi so’zi bilan boshlanadi, undan keyin esa keyin 
toifalar tavsifi yoziladi. Toifalar tavsifi bir-biridan nuqta vergul (;) orqali ajratiladi : 
<toifalar bo’limi>::=<bo’sh> / type <toifa tavsifi>;{<toifa tavsifi>}; 
Misol: 
Type 
mantiq= boolean; 
hafta=(dush,sesh,chor,pay,jum,shan,yaksh); 
ishkuni=sesh…jum; 
Bu misolda 3 ta toifa tavsiflari bor. Birinchi qatorda standart mantiqiy 
toifaga boshqa nom berilyapti – mantiq. Ikkinchisida yangi qayd qilingan toifa 
kiritilayapti va unga hafta degan nom berilyapti. Uchinchisida yangi chegaralangan 
toifa kiritilyapti unga ishkuni deb nom berilyapti. 

Paskal algoritmik tilidagi o’zgaruvchilar bo’limi 
Dasturda ishlatilayotgan xar bir o’zgaruvchi oldindan e’lon qilingan bo’lishi 
kerak. Ushbu vazifani bajarish uchun Paskal tilida <o’zgaruvchilarning tavsifi>
bo’limi bor. Bu tavsifda xar bir ishlatilayotgan o’zgaruvchiga nom beriladi va 
qabul qiladigan qiymatlar toifasi beriladi. Keyinchalik dastur bajarilish jarayonida 
tavsiflangan o’zgaruvchiga boshqa toifadagi qiymat berilsa bu xato deb 
hisoblanadi. 
Aloxida o’zgaruvchining tavsifi quyidagicha bo’ladi: 

<o’zgaruvchi nomi>::=<toifa> 
Misol uchun: x: real; y: integer; 
Birinchi qatorda dastur jarayonida ishlatishga real turdagi X o’zgaruvchi 
kiritilyapti. 
Bitta tavsif yordamida dasturda bir necha bir xil toifadagi o’zgaruvchilarni 
tavsiflash mumkin. 
Misol uchun: x,y,r,h: real; 
Bu tavsif ish jarayoniga 4 ta - x,y,z,h nomli xaqiqiy o’zgaruvchilarni 
kirityapti. 
O’zgaruvchilar bo’limi var (variable o’zgaruvchi) xizmatchi so’z bilan 
boshlanadi. 
<o’zgaruvchilar bo’limi>::=<bo’sh>/ var<o’zgaruvchilar 
tavsifi>;{,<o’zgaruvchilar tavsifi>;} 
<o’zgaruvchilar tavsifi>::=<o’zgaruvchi nomi>{<o’zgaruvchi 
nomi>}:<toifa> 
Masalan, 
Var 
I,j,k:integer; x,h,sum, way:real; n,m, integer; day: HAFTA: 
Dasturda ishlatilayotgan o’zgaruvchilar faqat bir marotaba tavsiflanishi 
kerak. 
	Paskal tilida yozilgan dasturga ish jarayonida ixtiyoriy protsedura va 
funktsiyani kiritish mumkin. Demak kiritilayotgan nostandart protsedura va 
funktsiyalarni tavsiflash kerak. Boshqa bo’limlardan farqli ravishda bu bo’lim
maxsus xizmatchi so’z bilan belgilanmaydi va bu bo’limning boshi Procedure 
yoki Function co’zi bilan boshlanadi. Protsedura tavsifi xar doim funktsiya 
tavsifidan oldinda turadi. Bu bo’lim dasturda standart protsedura va 
funktsiyalardan tashqari qo’shimcha protsedura va funktsiyalar ishlatilayotgan 
bo’lsa xamda ularga dasturdan murojaat qilinayotgan bo’lsa ishlatiladi. 
	Paskal algoritmik tilidagi operatorlar bo’limi 
Bu bo’lim quyidagi ko’rinishda yoziladi va dasturning asosiy bo’limi 
hisoblanadi: 
<operatorlar bo’limi>::=begin<operator>;{,<operator>} end. 
	Dasturni bajarish bo’limi xizmatchi so’zlar begin va end ichiga joylashgan 
operatorlar ketma-ketligini bajarishga keltiriladi. Operatorlar bir-biridan “;” 
belgilar yordamida ajratiladi. Shuni aytish kerakki, protsedura va funktsiya 
bo’limidagi algoritmlar faqat operatorlar bo’limidan murojaat qilingandayoq 
bajariladi. Operatorlar yordamida masalani echish algoritmini bajarishga kerak 
bo’lgan amallar tavsiflanadi. Funktsional vazifalari bo’yicha Paskal tilidagi 
operatorlar quyidagi guruxlarga bo’linadi: o’zlashtirish, kiritish-chiqarish, 
boshqarish. 

	O’zlashtirish operatorlari – dasturdagi o’zgaruvchilarga ma’lum
qiymatlarni o’zlashtirish uchun ishlatiladi. 
Kiritish-chiqarish operatorlari – tezkor xotiraga boshlang’ich 
ma’lumotlarni kiritadilar va chiqaruvchi qurilmalarga hisoblashlar natijasini 
chiqaradilar. 
	Boshqarish operatorlari – dastur operatorlarini ketma-ket bajarilishini 
tashkil etadi (shartli o’tish, takrorlanish operatorlari). 
O’z tarkibiga ko’ra operatorlar ikki turga bo’linadilar: sodda va 
strukturalashgan (tarkiblashgan). Tarkibida boshqa operatorlar bo’lmagan 
operatorlar sodda operatorlar deyiladi. Bir yoki bir nechta operatorlardan iborat 
operatorlar sodda operatorlar deyiladi. Sodda operatorlarga o’zlashtirish, o’tish va 
prtseduraga murojaat operatorlari kiradi. Murakkab operatorlarga shartli, tanlash, 
takrorlash va tarkibiy operatorlar kiradi. Tarkibiy operator BEGIN va END 
xizmatchi so’zlari orasiga olingan operatorlar ketma-ketligidan iborat. 
Dasturda ma’lum jarayon bitta emas, balki, bir nechta operator ketma-ketligi 
bilan ifodalanadi. Shu xolda operator ketma-ketligi tarkibiy operator ko’rinishida 
yoziladi. Tarkibiy operator ma’lum bir operatorlar ketma-ketligini operator 
qavslari begin (boshi) va end (oxiri) xizmatchi so’zlari orasiga olib birlashtiriladi. 
<tarkibiy operator>::=begin<operator>;{,<operator>} end. 
	Yuqoridan ko’rinadiki, yagona (tarkibiy) operatorga keltirilayotgan 
operatorlar soni bir dona bo’lishi ham mumkin. Agar ularning soni ikki yoki undan 
ortiq bo’ladigan bo’lsa, ular nuqtali vergul bilan ajratiladi. Til bo’yicha tarkibiy 
operator tarkibiga kiruvchi operatorlarga cheklanishlar qo’yilmaydi, ular asosiy 
operator yoki keltirib chiqariluvchi, shuningdek tarkibiy operatorlardan biri 
bo’lishi ham mumkin. Ya’ni, tarkibiy operator rekursiv xarakterga ega. 
Tarkibiy operatorlarga misollar: 
begin i:=D end; begin y:=x/2; x:=x+h end 
begin k:=2; begin i:=D; hisobchi:=D end end 
Tarkibiy operatorlarda uning tarkibiga kirgan operatorlar yozilishi ketma-
ketligida bajariladi. Ixtiyoriy Paskal dastur tanasining operatorlar qismida hech 
bo’lmaganda bitta tarkibiy operator mavjud bo’ladi. 
	Paskal tilida dasturlash asoslari. 
Shuni eslatib o’tish lozimki, dastur bu masalaning echish jarayonini 
ifodalovchi, ma’lum bir tilda ifodalangan algoritm bo’lib, kompyuter bajaruvchi 
vosita hisoblanadi. Paskal tilida yozilgan dastur to’g’ridan-to’g’ri kompyuterga 
emas, balki biror bajaruvchiga mo’ljallanganki, unga qanday toifadagi qiymatlar 
bilan ishlay olishi va qo’shimcha ko’rsatmalarsiz qanday amallarni bajara olishi 
belgilab berilgan bo’lishi kerak. 
	U yoki bu masalani echish uchun kattaliklar ustida bajarilishi kerak bo’lgan 
amallarni ko’rsatish uchun algoritmik tilda operator tushunchasi xizmat qiladi. 
Dasturdagi xar bir operator ma’lumotlarga ishlov berishning mustaqil, 
mantiqan tugallangan bosqichini ifodalaydi. Paskalda operatorlarning sakkizta 
toifasi ko’zda tutilgan. Xar qanday masalani echish aniq qoidalar bo’yicha, 
berilgan kattaliklardan boshqa kattaliklarni keltirib chiqarish jarayonidan iboratdir. 

	Yangi kattaliklarni xosil qilish qoidasi Paskalda ifodalar orqali beriladi. 
Oddiy xollarda masalaning echimini bitta formula yordamida ko’rsatish mumkin. 
Masalan, to’g’ri burchakli uchburchakning berilgan a va v katetlari uzunligi 
yordamida gipotenuza uzunligini topish uchun formula yordamida hisoblash 
o’tkazish kifoya. Mana shunday, berilgan ifodaga qarab, yangi qiymatni hisoblash 
qoidasini berish uchun Paskal operatorlaridan biri o’zlashtirish operatori ishlatiladi. 
Bunda berilgan formula bo’yicha hisoblangan qiymat biror o’zgaruvchiga beriladi. 
Dastur tuzish jarayonida faqatgina o’zlashtirish operatorlari bilan 
chegaralanishning iloji yo’q. Dasturda hisoblashlarning barcha yo’llari ko’zda 
tutilgan bo’lishi va qanday xollarda u yoki bu xisoblash yo’li tanlanishi kerakligi 
xaqida axborot berilishi zarur. 
Ko’p oddiy algoritmlarni dasturlashtirishda asosan o’zlashtirish, kiritish-
chiqarish operatorlaridan foydalaniladi. Quyida shu operatorlarni ko’rib chiqamiz. 
	
	O’zlashtirish operatori 
Masalaning 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 xizmat 
qiladi, xar bir ifoda bitta qiymatni xisoblash 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 deb, hisoblanuvchi o’zlashtirish operatori bilan bajariladi. 
O’zlashtirish operatori sintaksis jixatdan quyidagicha aniqlanadi: 
<o’zlashtirish operatori>::=<o’zgaruvchi>:=<ifoda>; 
bu erda ikkita belgidan iborat bo’lgan asosiy belgi «:=» «o’zlashtirish» deb 
o’qiladi. 
O’zlashtirish operatorining bajarilishida «:=» belgisining o’ng tomonidagi 
ifodaning qiymati hisoblanib, belgining chap tomonidagi o’zgaruvchi tomonidan 
o’zlashtiriladi. 
Shunday qilib, o’zlashtirish operatori mustaqil mantiqiy tugallangan 
hisoblash jarayonini ifodalaydi: o’zlashtirish operatori bajarilishi natijasida ma’lum
o’zgaruvchilar keyingi bosqichlarda ishlatilishi mumkin bo’lgan yangi joriy 
qiymatni qabul qiladi. 
Turli toifadagi ifodalar aslida ko’p o’xshashliklarga ega bo’lib, ularning 
barchasi operandlardan, amal belgilaridan, amallarning ixtiyoriy ketma-ketligini 
bajarish imkoniyatini beruvchi qavslardan tashkil topadi. Bunda operandlar uch 
turli: o’zgarmas, o’zgaruvchan va hisoblanadigan bo’ladilar. 
O’zgarmas operand dastur tuzilayotganda ma’lum bo’lgan va bajarilishi 
davomida o’zgarmas bo’lgan qiymat bo’lib, boshqacha aytganda o’zgarmas 
operand-bu biror toifadagi konstantadir. 

	O’zgaruvchi operand qiymati dastur bajarilishi davomida aniqlanadi 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 jixatdan o’zgaruvchi - qiymatni 
o’zlashtiradigan, shu o’zgaruvchi nomi sifatida qo’llaniladigan identifikatordir. 
Hisoblanadigan operand qiymat xatto hisoblashdan avval xam aniqlanmagan 
bo’lib, ifoda hisoblanishi jarayonida aniqlanadi. Hisoblanadigan operandlar sifatida 
Paskal funktsiyalarini ko’rsatish mumkin. 
Operatorning o’ng tarafidagi ifoda qiymatining toifasiga ko’ra o’zlashtirish 
operatorini shartli ravishda bir necha turga ajratish mumkin. 
Arifmetik o’zlashtirish operatori o’zgaruvchiga arifmetik toifadagi, ya’ni 
REAL yoki INTEGER turdagi qiymatni berish uchun xizmat qiladi. 
Bunday operatorning o’ng tarafidan arifmetik ifoda, ya’ni shu turlardagi 
qiymatni hisoblash qoidasini beruvchi ifoda bo’lishi kerak. Agar o’zlashtirish 
operatorining chap qismidagi o’zgaruvchi REAL turga ega bo’lsa, arifmetik 
ifodaning qiymati REAL turdagi yoki INTEGER turdagi bo’lishi mumkin (bu 
xolda olinadigan butun qiymat avtomatik tarzda xaqiqiy 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 turida bo’lishi kerak. 
Asosiy operandlar sifatida o’zgarmaslar (ishorasiz son yoki konstanta nomi), 
o’zgaruvchilar va funktsiyalar ishlatiladi. 
Arifmetik ifodaga quyidagi misollarni (ifodaning o’ng tarafida uning 
xisoblanish tartibi, har bir ifoda natijasi va ishlatilgan funktsiyalar qiymatlari 
toifalarini hisobga olgan holda) keltirish mumkin: 
2*3+4*5 ((2*3)+(4*5)=26) 
9 div 4/2 ((9 div 4)/2=1.0) 
40/5/10 ((40/5)/10=0.8) 
-sqrt(sqr(3)+32/2) (-sqrt(sqr(3)+(32/2))=-5.0) 
((2+4)/10+2/4)*2 (((2+4)/10)+2/4))*2=2.2) 
Quyida arifmetik o’zlashtirish operatoriga misollar keltirilgan (bunda, x,a, b, 
c, r – REAL turdagi o’zgaruvchilar, pi=3.14159 bo’lgan xaqiqiy sonning nomi): 
x:=0 (x o’zgaruvchiga nolga teng bo’lgan qiymat berilyapti); 
I:=I+1 (I ning joriy qiymati bir birlikka orttirilayapti); 
s:= sqrt(a*a+b*b) (a va b katetlar asosida gipotenuza 
uzunligi hisoblanayapti); 
x:2*pi*r (r radiusli aylana uzunligi x hisoblanayapti). 
Quyidagi yozuvlar sintaksis bo’yicha o’zlashtirish operatorlari emas yoki Paskalda 
bunday yozib bo’lmaydi: 
3: I+2 (chap tomonda konstanta qo’llanishi mumkin emas); 
x=2*pi *r(«=» belgi o’zlashtirish operatorining belgisi 
emas); 
1=5/4 (butun sonli o’zgaruvchiga xaqiqiy qiymat 
berilmaydi); 
x: =a*-b/2 (ketma-ket ikki amal belgisini yozish mumkin emas). 

Agar o’zlashtirish operatorining chap tarafida BOOLEAN toifadagi 
o’zgaruvchi ko’rsatilgan bo’lsa, operatorning o’ng tarafida mantiqiy qiymat 
(TRUE yoki FALSE) ni hisoblovchi mantiqiy ifoda berilishi kerak. Mantiqiy 
ifodada konstanta, o’zgaruvchi va funktsiyalar ishlatiladi, biroq mantiqiy amalning 
xar bir operandi BOOLEAN toifada bo’lishi kerak. Mantiqiy ifodada mantiqiy 
amal operandi bo’lib munosabat xizmat qiladi. 
Bu tushunchani oddiylashtiraylik. Mantiqiy amal operandi 
<arifmetik ifoda> <taqqoslash amali> <arifmetik ifoda> ko’rinishdagi yozuv 
yoki munosabatdir. 
Bunda <taqqoslash amali> :: =< | < = | > | > = | = | < > . 
Agar arifmetik ifodalarning munosabati to’g’ri berilgan bo’lsa, munosabat 
TRUE qiymatiga, aks xolda FALSE qiymatiga ega bo’ladi. 
Masalan, 3<5 munosabati TRUE, 3>=5 munosabati FALSE qiymatiga ega. 
Munosabatda qatnashadigan ixtiyoriy arifmetik ifoda xaqiqiy yoki butun sonli 
bo’lishi mumkin. Butun son xaqiqiy son bilan taqqoslanganda oldin xaqiqiy songa 
o’tkaziladi, deb qaraladi. 
Mantiqiy ifodaga misollar (d,b,c – mantiqiy, x, u – xaqiqiy, k-butun sonli 
o’zgaruvchi): 
T:=x<2*u (munosabat) 
N:=TRUE; 
(konstanta) 
F:=d; (o’zgaruvchi) 
C:=Odd(k) (funktsiya) 
S:=not not d; (inkor) 
Q:=(x>y) or d; (mantiqiy qo’shiluvchi) 
J:=d and (x=y) and b; (mantiqiy ko’paytuvchi) 
N:= (c or d) and (x=y) or not; (oddiy ifoda) 
Bu erda T,H,C,F,J,N,S,Q – BOOLEAN turidagi o’zgaruvchilardir. 
Mantiqiy ifoda qiymatini hisoblash oddiydir. 
Masalan, d or (x*y/2>x+y) and not b or (x>2*r) 
Ifoda qiymatini hisoblashda, bu erda keltirilgan barcha o’zgaruvchilarning 
o’rniga ularning joriy qiymatlarini olish va ifodada berilgan amallarni, ularning 
maqomi va qo’yilgan qavslarni hisobga olgan xolda bajarish kerak. 
Agar o’zlashtirish operatorining chap tomonida CHAR toifadagi o’zgaruvchi 
ko’rsatilsa, o’ng tomonida belgili ifoda, ya’ni CHAR toifadagi qiymatli ifoda 
berlishi shart. 
Belgili ifoda sifatida faqatgina shu toifadagi konstanta, o’zgaruvchi yoki 
funktsiya berilishi mumkin. Belgili o’zlashtirish operatoriga misollar: 
(sum, alpha, betta – CHAR toifadagi o’zgaruvchilar): 
sum:=’+’; 
alpha: = sum;
betta: = succ(sum). 
Shu narsa ma’lumki, umuman, Paskal tilida arifmetik ifoda, mantiqiy ifoda 
va shunga o’xshash tushunchalar yo’q bo’lib, faqatgina, barcha toifadagi 
ifodalarni o’z ichiga oluvchi, bitta sintaksis bo’yicha aniqlovchi tushuncha - 
<ifoda>gina mavjud. 

Bo’sh operator xech qanday xarakatni bajarmaydigan operatordir. Bo’sh 
operatorga qoida bo’yicha operator mavjud bo’lishi kerak bo’lgan joydagi 
yozuvning yo’qligi to’g’ri keladi. Undan so’ng nuqtali vergul qo’yish kerak. 
Masalan: 
A:=B; R:=2;;K:=7.2; 
Bu erda uchinchi operator bo’shdir. Tarkibiy va bo’sh operatorlar shartli 
operatorlarda tez-tez qo’llaniladi. 
Paskal tilida ma’lumotlarni kiritish va chiqarish 
Dasturda ma’lumotlarning qiymatlarini xotiraga kiritishni bir necha usullarda 
bajarish mumkin. 
Sonli o’zgaruvchilarga ularning qiymatini berishda o’zlashtirish operatoridan 
foydalanish mumkin. 
Masalan: A:=14; V:=-16,256; 
Dasturni o’zgaruvchilarning turli qiymatlarida bajarish uchun READ-
kiritish operatori mo’ljallangan. 
Kiritish operatori quyidagicha ko’rinishlarda ishlatilishi mumkin: 
1) READ(a1,a2,…, an); 
2) Bunda, a1,a2,…, an - qiymatlarini ketma-ket standart INPUT protsedura 
faylidan oluvchi o’zgaruvchilar. O’zgaruvchilarga qiymatlar toifasiga mos 
ravishda klaviaturadan kiritiladi. 
Aytaylik, A,V,S o’zgaruvchilarga dastur bajarilishi davomida quyidagi 
qiymatlarni berish kerak bo’lsin: A=5, V=17, S=6.2. 
Operator READ(A, B, C) ko’rinishiga ega bo’lib, sonlar qiymatlarini dastur 
bajarilishi davomida quyidagicha kiritish mumkin: 
5 17 6.2 [enter]
Agar o’zgaruvchi REAL toifada aniqlangan bo’lsa, uning qiymatini butun 
son yoki xaqiqiy son ko’rinishda kiritiladi. Mashinaning o’zi butun sonni xaqiqiy 
songa o’tkazib oladi. 
Masalan, 
VAR A, B:REAL 
READ(A,B) operatorining ishlatilishi natijasida 4 va 5 sonlari probel (bo’sh 
joy) orqali kiritish mumkin. 
3) READLN; - bu operator kiritish jarayonida bo’sh qator qoldiradi; 
4) READLN(a1,a2,…,an); 
- operatorning bajarilishida avval a1,a2,…,an ga qiymat kiritilib, so’ng keyingi 
satrga o’tiladi. Bu operator oldingi ikki operatorga teng kuchlidir. 
EHM xotirasidagi ma’lumotlarni displey ekraniga chiqarish operatori - 
WRITEdir. Operator quyidagi bir nechta ko’rinishlarda ishlatilishi mumkin: 
1) WRITE (a1,a2,…,an); 
Bunda a1,a2,…,an oddiy o’zgaruvchilar, o’zgarmaslar yoki ifodalar bo’lishi 
mumkin va ular standart OUTPUT protsedura fayliga chiqariladi. 
Masalan, 
WRITE(V ning qiymati =: V) operatori displey ekraniga: 
V ning qiymati = va undan so’ng V o’zgaruvchining qiymatini chiqaradi. 
WRITE operatorida butun va xaqiqiy sonlarni ma’lum formatda chiqarish 
mumkin. Bu format ikki nuqta orqali o’zgaruvchidan so’ng ko’rsatiladi. 
Masalan. 
WRITE(Y:5:2); 
Operatori bilan Y ning qiymatini chiqarishda, Y ning hamma qiymatini 
chiqarish uchun 5 ta xona ajratilishi, ulardan ikkitasi kasr qismi uzunligini 
anglatadi (bunda sonning butun va kasr qismini ajratuvchi vergul (nuqta) ham
hisobga olinishi zarur). Butun sonlarni chiqarishda kasr qismi formati 
ko’rsatilmaydi. 
Aytaylik, N=179 butun sonli qiymatni chiqarish kerak bo’lsin. Chiqarish 
operatori buning uchun quyidagi ko’rinishda bo’lishi mumkin: 
WRITE(‘N=‘,N:3) 
Bu erda soni tasvirlash uchun 3 pozitsiya ajratilgan. Agar formatni 3 dan 
ortiq berilsa, masalan, 
WRITE(‘N=‘,N:5) 
Unda sondan oldin ikkita bo’sh joy tashlanadi: 
N= 179, manfiy son uchun esa bitta bo’sh joy tashlanadi: 
N= -179 
2) paskal tilida boshqa chiqarish operatorlari xam ishlatiladi. Parametrlarsiz 
chiqarish operatori 
• WRITELN; 
• displey ekranida yangi satrga o’tishni ta’minlaydi. 
3) WRITELN (a1,a2,…,an); 
• chiqarish operatori oldin a1,a2,…,an larning qiymatlarini chiqaradi, so’ng yangi 
qatorga o’tishni ta’minlaydi. Shunday qilib, bu xam quyidagi ikki operatorga 
ekvivalent 
WRITE (a1,a2,…,an); WRITELN; 
Masalan, A, V, S qiymatlarini kiritish uchun quyidagi lavhadan 
foydalanish mumkin: 
WRITE(‘A, V, S qiymatlarini kiriting’); 
READ (A, V, S); 
Shunday qilib, A, V, S ning qiymatlarini kiritilishidan oldin ekranga 
quyidagi xabar chiqariladi: 
A, V, S qiymatlarini kiriting
shundan so’nggina qiymatlarni kiritish mumkin, masalan, 
5 17 6.2 [Enter]
Endi ba’zi – bir oddiy masalalarning dasturlarini tuzamiz. 
1-misol. R radiusli sharning hajmini quyidagi formula bo’yicha 
hisoblansin. 

                V=(4/3)* π*R3

Dastur quyidagi ko’rinishda bo’ladi. 
PROGRAM E10(INPUT, OUTPUT); 
CONST 
PI=3.14; 
VAR 
R:REAL; {Shar radiusi} 
V:REAL; {Shar xajmi} 
BEGIN 
WRITELN(R radius qiymatini kiriting’); 
READ (R); 
V:=4*PI*R*R*R/3; 
WRITELN; 
WRITELN(‘Natija:’); 
WRITELN(‘Shar xajmi: V:8:3); 
END

Massivlar haqida ma'lumot.

3ta mavzu bo'yicha

1. Massivlar. Bir o`lchamli massivlar

2. Belgili (simvolli) massivlar. Satrlar

3. Ko’p o’lchamli massivlar
