Ш. И. Раззоќов, М. Д. Юнусова turbo pascal алгоритмик тилида дастурлаш касб-ћунар коллеж талабалари учун ўќув ќўлланма


var a:Integer; x,y:Real; begin


Download 1.74 Mb.
bet22/96
Sana30.04.2023
Hajmi1.74 Mb.
#1413831
1   ...   18   19   20   21   22   23   24   25   ...   96
Bog'liq
Turbo Pascal назария

var
a:Integer;
x,y:Real;
begin
a:=32767; {Integer турининг мумкин бўлган максимал ќиймати}
x:=a+2 {бу ифодани ћисоблашда тўлишнинг содир бўлиши!}
y:=LongInt(a)+2; {Ўзгарувчи ќувватлироќ турга келтирилган­дан кейин тўлиш йўќолди}
writeln(x:10:0, y:10:0)
end.
Дастурнинг ўтказилиш натижасида ќуйидагилар олинди:
-32767 32769
6.1.2. Мантиќий тур. Мантиќий турнинг ќийматлари олдиндан эълон ќилинган FALSE (ёлгон) ёки TRUE (ћаќиќат) иккита ўзгармаслардан бири бўлиши мумкин. Уларга ќуйидаги ќоидалар хос:
ORD(False) = 0;
ORD(True) = 1;
False < True
Succ(False) = True;
Pred(True) = False.
Мантиќий тур тартибли турга тегишли бўлгани учун, уни ћисоб туридаги операторда ишлатиш мумкин, масалан:
var
l: Boolean;
begin
for l: = False to True do
Символли тур. Шахсий компьютер ћамма белгилар тўплами символли тур ќийматлари бўлади. Ћар бир белгига 0…255 соћадаги бутун сон ёзилади. Бу сон белгини ички ифодалаш учун код бўлиб хизмат ќилади, уни ORD функция ќайтаради.
Кодлаштириш учун ASCII (American Standart Code for Information Interchange – ахборотни алмаштириш учун америка стандарт коди) коди ишлатилади. Бу 7 битли код, яъни унинг ёрдамида фаќат 128 та белгини 0 дан 127 гача соћада кодлаштириш мумкин. Шу ваќтнинг ўзида Турбо Паскалнинг белгиларини саќлаш учун ажратилган 8 битли байтда икки марта кўп белгиларни 0 дан 255 соћада кодлаш мумкин. ШК 0…127 кодлик белгиларининг биринчи ярми ASCII стандартига (6.3-жадвал) мос келади, 128 дан 255 гача кодларга эга бўлган белгиларнинг иккинчи ярми стандартнинг ќатъий доираларида чегараланмаган ва ћар хил русумли ШК ларда ўзгариши мумкин.

6.3-жадвал



ASCII стандарти бўйича белгиларнинг кодлари

Код

Белги

Код

Белги

Код

Белги

Код

Белги


NUL


BL


@


`


SOH


!


A


a


STX





B


b


ETX


#


C


c


EOT


$


D


d


ENQ


%


E


e


ACK


&


F


f


BEL





G


g


BS


(


H


h


HT


)


I


i


LF


*


J


j


VT


+


K


k


FF


,


L


l


CR


-


M


m


SO


.


N


n


SI


/


O


o


DEL


0


P


p


DC1


1


Q


q


DC2


2


R


r


DC3


3


S


s


DC4


4


T


t


NAK


5


U


u


SYN


6


V


v


ETB


7


W


w


CAN


8


X


x


EM


9


Y


y


SUB


:


Z


z


ESC


;


[


{


FS


<


\


|


GS


=


]


}


RS


>


^


~


US


?


_




0…31 кодлик белгилар хизмат кодларига киради. Агар бу кодлар дастурнинг символли белгили матнида ишлатилса, улар бўшлиќлар деб ћисобланади. Улар киритиш-чиќариш ишларида ишлатилса, бу белгилар ќуйидаги мустаќил маъноларга эга бўлиши мумкин.



Белги

Код

Маъноси

BEL

7

Ќўнгироќ; бу белги экранга товуш сигнали ћамкорлигида чиќади.

HT

9

Горизонтал табуляция; экранга чиќарилганида курсорни 8 карра, плюс 1 (9,17,25 ва ћ.к.) хона кейинга силжитади.

LF

10

Сатрни ўтказиш; бу белги экранга чиќарилса, кейинги белгилар шу хонадан бошлаб, навбатдаги сатрдан чиќарилади.

VT

11

Вертикал табуляция; экранга чиќарилганда, махсус белги билан алмаштирилади.

FF

12

Бетни ўтказиш; принтерга чиќарилганда бетни расмийлаштиради, экранга чиќарилганда махсус белги билан алмаштирилади.

CR

13

Кареткани ќайтариш; Enter клавишни босиш билан киритилади (READ ёки READLN ёрдамида киритишда «киритиш» буйруѓини билдиради ва киритиш буферига сигмайди; чиќаришда «чиќаришни жорий сатрнинг бошидан давом эт», деган буйруќни билдиради).

SUB




Файл охири; клавиатурадан Ctrl-Z клавишларини босиш билан киритилади, чиќаришда махсус белги билан алмаштирилади.

ESC




Иш охири; клавиатурадан ESC клавишини босиш билан киритилади; чиќаришда махсус белги билан алмаштирилади.

CHAR турига муносабат амаллари, шунингдек ўрнатилган функциялар ќўлланилади.


CHR(B) – CHAR туридаги функция; BYTE туридаги В ифодани символга ўзгартиради ва уни ўз ќиймати билан ќайтаради.
UPCASE(CH) – CHAR туридаги функция; агар СН кичик лотин ћарфи бўлса, бош ћарфни ќайтаради, акс ћолда СН белгининг ўзини ќайтаради, масалан:
var
c1, c2 : Char
begin
c1:= UpCase (s);
c2:= UpCase (ф);
WriteLn (c1, ,c2)
end.
UPCASE функция кириллица алфавитини ишламаслиги учун, бу дастурни ўтказиш натижасида экранга
s ф
чиќарилади.
6.1.3. Санаб ўтиладиган тур. Бу тур ќабул ќилиши мумкин бўлган ќийматларни санаш билан берилади. Ћар бир ќиймат ќандайдир идентификатор билан номланади ва айлана ќавсларга олинган рўйхатда ёзилади, масалан:
type
colors = (red, white, blue);
Санаб ўтиладиган турларнинг ќўлланилиши дастурларни кўргазмали ќилади. Масалан, йил ойлари билан боѓланган маълумотлар ишлатилган дастурнинг бўлаги ќуйидаги кўринишда бўлса, у кўргазмали бўлар эди.
type
ТурОй = (янв, фев, мар, апр, май, июн, июл, авг, сен, окт, ноя, дек)
var
ой:ТурОй;
begin
……………
if ой = авг then Writeln (Салќин жойда дам олсак, яхши бўлар эди!)
……………
end.
Лекин, афсуски, Турбо Паскалда кириллицадан идентификаторларда фойдаланиш мумкин эмас, шунинг учун биз дастур бўлагини ќуйидагича ёзишга мажбурмиз:
type
TypeMonth = (jan, feb, mar, apr, may, jun, jul, aug, sep, oct, nov, dec)
var
Month:TypeMonth;
begin
……………
if month=aug then Writeln (Салќин жойда дам олсак, яхши булар эди!)
……………
end.
Санаб ўтиладиган тур ќийматлари ва бу ќийматларнинг тартиб раќамлари ўртасидаги мослик санаб ўтиш тартиби билан ўрнатилади: рўйхатдаги биринчи ќиймат - 0, иккинчиси – 1 ва ћ.к. тартиб раќамларини ќабул ќилади. Санаб ўтиладиган турнинг максимал ќуввати 65535 ќийматни ташкил ќилади, шунинг учун амалда санаб ўтиладиган тур WORD бутун туридаги ќандайдир ички тўпламни беради, унга 0,1 ва ћ.к. ќийматли бутун сонли ўзгармаслар гурућларини бирданига ихчам ћолда эълон ќилиниши, деб ќараш мумкин.
Санаб ўтиладиган турларнинг ишлатилиши, тегишли ўзгарувчилар ќабул ќиладиган ќийматларни назорат ќила олиш имкониятининг бўлиши билан, дастур ишончлилигини оширади. Масалан. ќуйидаги санаб ўтиладиган турлар берилган бўлсин.
type
colors = (black, red, white);
ordenal = (one, two, three);
days = (Monday, Tuesday, Wednesday);
Имконияти ва ички ифодаланиши нуќтаи назаридан уччала тур тенг кучли:
ord (black)=0, …, ord (white)=2,
ord (one)=0, …, ord (three)=2,
ord (monday)=0, …, ord (wednesday)=2
Лекин,
var
col:colors;
num:ordenal;
day:days;
ўзгарувчилар аниќланган бўлса,
col:=black;
num:=succ (two);
day:=pred(tuesday);
операторлар ишлатилиши мумкин,
col:=one;
day:=black
операторларининг ишлатилишига эса йўл ќўйилмайди.
Юќорида айтиб ўтганимиздек, санаб ўтиладиган турлар ќийматларига бутун сонлар тўплами ўртасида ORD(x) функция билан берилувчи бир ќийматли мослик мавжуд. Турбо Паскалда тескари шакл алмаштиришга ћам йўл ќўйилади: WORD туридаги ихтиёрий ифодани, агар бутун сонли ифода ќиймати санаб ўтиладиган тур ќувватидан ошмаса, санаб ўтиладиган тур ќийматларига ўтказиш мумкин (9.4.га ќаралсин). Масалан, юќорида кўрилган турларни эълон ќилишга ќуйидаги ўзлаштиришлар тенг кучли:
col:=one;
col:=colors (o);
Бундан
col:= 0;
ўзлаштиришнинг бўлиши мумкин эмаслиги келиб чиќади.
Ихтиёрий санаб ўтиладиган турнинг ўзгарувчиларини бу турни олдиндан баён этмасдан эълон ќилиш мумкин, масалан:
var
col: (black, white, green);
6.1.4. Тур-соћа. Тур-соћа ўзининг асосий турига кирувчи ички тўпламни билдиради. Тур-соћадан бошќа ихтиёрий санаб ўтиладиган тур ички тўплам сифатида ишлатилиши мумкин.
Тур-соћа ички базавий турининг ќийматлари чегараси билан берилади:
<мин.ќиймат> .. <макс.ќиймат>
Бу ерда
<мин.ќиймат> - тур-соћанинг минимал ќиймати.
<макс.ќиймат> - унинг максимал ќиймати
Мисол:
type
digit = 0 .. 9;
dig2 = 48 .. 57;
Тур-соћани TYPE бўлимида баён этиш шарт эмас, уни ўзгарувчини эълон ќилишда бевосита кўрсатиш мумкин, масалан:
var
date : 1 .. 31;
month : 1 .. 12;
lchr : А .. z;
Тур соћани аниќлашда ќуйидаги ќоидаларга риоя ќилиш керак:

  • иккита « .. » белги битта белги деб ќаралади, шунинг учун улар ўртасида бўшлиќлар ќўйиш мумкин эмас;

  • соћанинг чап чегараси ўнг чегарасидан ошмаслиги керак.

Тур-соћа ўзининг базавий турининг ћамма хоссаларини (унинг кичик ќуввати билан боѓлиќ бўлган чекланишлар билан) саќлайди. Хусусий ћолда, агар ўзгарувчи аниќланган бўлса,

Download 1.74 Mb.

Do'stlaringiz bilan baham:
1   ...   18   19   20   21   22   23   24   25   ...   96




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling