Sodda operatorlar
Operatorlarning buluvchisi, sodda operatorlar ,shartsiz utish operatori,protsedurani chakirish operatori, bush operator, uzlashtirish operatori, strukturali operator.
Turbo Pascal tilidagi programmaning asosiy kismi operatorlar ketma - ketligidan iborat, xar bitta operator berilganlar ustida amal bajaradi . Operatorlarning buluvchisi sifatida Nuqta vergul belgisi ishlatiladi. Turbo Pascal tilidagi xamma operatorlar ikki guruxga bulinadi : sodda va strukturali.
Tarkibiga boshqa operatorlar kirmagan operatorlar sodda operatorlar deyiladi. Bunga uzlashtirish operatori, shartsiz utish operatori, protsedurani chakirish operatori va bush operatorlar kiradi.
Uzlashtirish operatori (:=) ung tomonda berilgan ifodani bajarishni va uning kiymatini chap tomonda turgan uzgaruvchiga tenglashtiradi. Ifoda va uzgaruvchining tipi bir xil bulishi kerak.
Misol:
FuncKey := False;
Ch := 'G';
Sum := X + Y;
Shartsiz utish operatori (goto) "...ga utish" degan ma’noni anglatadi va u biror operator bajarilgandan keyin navbatdagi operatorni bajarishga emas balki boshqa biror belgi yerdamida belgilangan operatorni bajarishda ishlatiladi. Eslatib utamiz, belgi rakam yeki xarf simvolidan iborat bulishi mumkin.
Misol : GOTO 999;
GOTO EndBlock;
Goto operatori ishlatilganda belgi ta’sir qiladigan joy bu fakat shu operator yezilgan blok bulishi mumkin. Boshqarishni boshqa blokka uzatish man etiladi.
Protseduraning chakirish operatori foydalanuvchi tomonidan belgilangan protsedurani yeki standart protsedurani ishga tushirish uchun ishlatiladi. Masalan :
ClrScr; { standart protsedurani chakirish }
InitWork(True); { foydalanuvchi protsedurasini chakirish }
Bush operator xech qanday amal bajarmaydi va uning tarkibida xech qanday simvollar yuk. Odatda bush operator lokal yeki global blokning oxiriga utishda ishlatiladi :
LABEL Metka;
...
BEGIN
... GOTO Metka; { perexod v konets bloka }
...
Metka: { pustoy operator pomechen metkoy }
END;
Strukturali operatorlar kat’iyan belgilangan koidalar buyicha boshqa operatorlardan tuzilgan operatorlardir. Xamma strukturali operatorlar uch guruxga bulinadi:
tarkibiy , shartli, kaytariladigan .
Tarkibiy operator bu bir-biridan Nuqta vergul belgisi va BEGIN va END operatorli kavslar yerdamida ajratilgan operatorlar guruxidir:
BEGIN
...
END;
Tarkibiy operator programmaning xoxlagan tilning sintaksisi ruxsat beradigan kismida joylashishi mumkin .
Tayanch iboralar:
Jarayon, qism dastur, asosiy dastur, funtsiya dastur, soxta parametr, faktik parametr, dastur, protsedura, qayd qilingan cheklanish, parametrli protsedura, haqiqiy parametr, kattalik, qiymat, soxta parametr, o’zgarmaslar, o’zgaruvchilar, ifoda, operator, protseduraning nomi, haqiqiy parametrlar soni, toifa, sarlavha.
Nazorat savollari:
Operator deb nimaga aytiladi? Asosiy dasturga ta'rif bering.
Operatorlarning farqi.
Soxta parametr deganda nimani tushunasiz? Faktik parametrlar qayerda ishlatiladi?
Ma’ruza .№ 7 Shartli operatorlar. Takrorlash operatorlari Reja Shartli operator,shart, joylashtirilgan operatorlar. Shartli operatorlar. Tanlash operatori .
Turbo Pascal tilida ikkita shartli operatorlar mavjud : IF va CASE. IF shartli operatori , operatorlarning bajarilish jarayenining tabiiy xolatini uzgartiradigan eng kup vositalardan biri. U kuyidagi Ko’rinishlardan biriga ega bulishi mumkin:
IF THEN
ELSE ;
IF THEN ;
Shart - bu bulev tipdagi ifoda . Birinchi xolatda , agar ifoda kiymati xakikat bulsa , bajariladi , agar xakikat emas bulsa bajariladi. Ikkinchi xolatda - agar ifoda natijasi True bulsa , bajariladi, agar False bulsa - IF operatoridan keyingi operator bajariladi. IF operatorlari joylashtirilgan bulishi mumkin .
Misol :
Read(Ch);
IF Ch='N' THEN Parol:= True
ELSE Parol:= False;
Read(X); IF Parol = True THEN
IF X = 100 THEN Write('Parol i kod pravilnы.');
ELSE BEGIN
Writeln('Oshibka v kode.');
Halt(1)
END;
Shartli operatorlar.
Shartli operator,shart, joylashtirilgan operatorlar.
Turbo Pascal tilida ikkita shartli operatorlar mavjud : IF va CASE. IF shartli operatori , operatorlarning bajarilish jarayenining tabiiy xolatini uzgartiradigan eng kup vositalardan biri. U kuyidagi Ko’rinishlardan biriga ega bulishi mumkin:
IF THEN
ELSE ;
IF THEN ;
Shart - bu bulev tipdagi ifoda . Birinchi xolatda , agar ifoda kiymati xakikat bulsa , bajariladi , agar xakikat emas bulsa bajariladi. Ikkinchi xolatda - agar ifoda natijasi True bulsa , bajariladi, agar False bulsa - IF operatoridan keyingi operator bajariladi. IF operatorlari joylashtirilgan bulishi mumkin .
Misol :
Read(Ch);
IF Ch='N' THEN Parol:= True
ELSE Parol:= False;
Read(X); IF Parol = True THEN
IF X = 100 THEN Write('Parol i kod pravilnы.');
ELSE BEGIN
Writeln('Oshibka v kode.');
Halt(1)
END;
Tanlash operatori .
Tanlash operatori,selektor,parametrlar ruyxati,tanlash o’zgarmaslari ruyxati.
Tanlash operatori CASE mavjud variantlardan tanlash imkoniyatini beradi. U xar biriga tanlash o’zgarmaslari ruyxati (ruyxat bitta o’zgarmasdan iborat bulishi mumkin) tegishli selektor deb nomlangan ifodadan va parametrlar ruyxatidan iborat.
Formati:
CASE OF
:
:
. . .
:
ELSE
END;
O’zgarmaslar tipi doim selektor tipiga tugri kelishi kerak . Selektor uchun real va string tiplari man etilgan.
CASE operatori kuyidagicha ishlaydi. Birinchi navbatda selektor- ifoda kiymati xisoblanadi, keyingi navbatda joriy selektor kiymatiga teng bulgan o’zgarmas katnashgan operator bajariladi. Agar xech kaysi o’zgarmas selektorning joriy kiymatiga teng bulmasa ELSE suzidan keyingi operator bajariladi. Agar ELSE suzi bulmasa END suzidan keyingi operator ishga tushadi,ya’ni CASE chegarasidan keyingi operator.
Selektor butun sonli ( -32768..32767 diapazonida bulgan) bulev, liter yeki foydalanuvchi tipiga boglik bulishi kerak .
O’zgarmas kiymatlar ruyxati tasodifiy kiymat yeki diapazondan iborat, ular bir-biridan vergul yerdamida ajratiladi. Diapazon chegaralari ikkita biri-biridan ".." belgisi yerdamida ajratilgan uzgaramas sonlar yerdamida yeziladi. O’zgarmaslar tipi selektor tipiga tugri kelishi kerak.
Kuyida CASE operatorining tipik yezilish tartibi ko’rsatilgan:
Interval tipli selektor :
CASE I OF
1..10: Writeln ('rakam ', I:4, ' diapazon 1 - 10');
11..20: Writeln ('rakam ', I:4, ' diapazon 11 - 20');
21..30: Writeln ('rakam ', I:4, ' diapazon 21 - 30')
ELSE Writeln ('chislo ', I:4, ' kontrolya chegarasidan tashkarida')
END;
Butun son tipli selektor :
CASE I OF
1: Z := I + 10;
2: Z := I + 100;
3: Z := I + 1000
END;
Foydalanuvchi xisob tipli selektor:
VAR
Season: (Winter, Spring, Summer, Autumn);
BEGIN
... CASE Season OF
Winter: Writeln('Winter');
Spring: Writeln('Spring');
Summer: Writeln('Summer');
Autumn: Writeln('Autumn')
END;
END;
Qaytarish operatorlari
Sikl, kaytarish operatorlari, sikl sarlavxasi va tanasi
FOR, REPEAT, WHILE kaytarilish operatorlari ixar xil tipli sikllarni yaratishda ishlatiladi.
FOR kaytarilish operatori sikl sarlavxasi va tanasidan iborat. U ikkita formatda bulishi mumkin:
FOR < sikl parametri> := TO DO ;
FOR < sikl parametri > := DOWNTO DO ;
S1 va S2 - ifodalar, sikl parametrining bosh va oxirgi kiymatini aniklaydi. FOR ... DO - sikl sarlavxasi, - sikl tanasi. Sikl tanasi sodda yoki tarkibiy operatordan iborat bulishi mumkin. FOR operatori siklning parametrlari bosh va oxirgi kiymatlari bajarilib bulguncha sikl tanasini ishini boshqaradi.
Misol:
FOR I:= 1 TO 100 DO Read(M[I]); { massiv elementlarini ukish}
FOR I:= 100 DOWNTO 1 DO Write(M[I]); { massiv elementlarini chiqarish }
Sikl parametri, uning bosh va oxirgi kiymati berilganlarning bitta tipiga karashli bulishi kerak. Bunda xoxlagan skalyar tip katnashishi mumkin, xakiykiydan tashkari.
REPEAT kaytarish operatori REPEAT sarlavxadan, tanadan va UNTIL shartdan iborat.
Yozilishi:
REPEAT
...
UNTIL ;
REPEAT va UNTIL suzlari orasidagi operatorlar, sikl tanasi xisoblanadi. Eng avvalo sikl tanasi bajariladi, keyngi navbatda sikldan chikish sharti tekshiriladi. Agar bulev ifodaning natijasi False ga teng bulsa, u xolda sikl tanasi yana bir bor aktivlashadi, agar natija True ga teng bulsa - sikldan chikiladi. Sikl operatorlaridan xech bulmaganda bittasi shart kiymatiga ta’sir ko’rsatishi kerak, aks xolda sikl tuxtamaydi.
Kuyidagi fragmentda Y va N tugmachalari bosishni kutishda REPEAT operatori ishlatilishi ko’rsatilgan. Boshqa tugmachalar bosilishi ta’sir kilmaydi:
USES Crt;
VAR
YN: char;
BEGIN
...
REPEAT
YN:= ReadKey
UNTIL UpCase(YN) IN ['Y','N'];
...
END.
WHILE operatori xuddi REPEAT operatoriga uxshaydi, lekin sikl tanasining bajarilish sharti operator boshida tekshiriladi.
Formati:
WHILE DO
< sikl tanasi>;
Shart - bulev ifoda, sikl tanasi - sodda yoki tarkibiy operator. Sikl tanasi xar bir bajarilishidan oldin shart ifodasining kiymati xisoblanadi. Agar natija True ga teng bulsa, sikl tanasi bajariladi va yana shart ifodasi xisoblanadi. Agar natija False ga teng bulsa, sikldan chikiladi va WHILE dan keyingi birinchi operatorga utiladi.
WHILE ishlash tartibini kurish uchun DemoWhile dasturi misol bula oladi, bu programma 10 tasodifiy kiritilgan butun sonlar yigindisini xisoblaydi.
PROGRAM DemoWhile;
CONST
Limit = 10; { kiritiladigan sonlar mikdori chegarasi }
VAR
Count, Item, Sum: integer;
BEGIN
Count:= 0;
Sum:= 0;
WHILE (Count < Limit) DO BEGIN { sikl bajarilish sharti}
Count:= Count+1;
Write('Butun ', Count, '-chi sonni kiriting: ');
Readln(Item); Sum:= Sum+Item;
END;
Writeln('Kiritilgan sonlar yigindisi teng ', Sum);
END.
Xizmatchi so`z va iboralar: REPEAT va UNTIL ,FOR, REPEAT, WHILE,CASE I OF,IF,THEN, ELSE
Savol va Topshiriqlar:
Do'stlaringiz bilan baham: |