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


Download 1.74 Mb.
bet6/96
Sana30.04.2023
Hajmi1.74 Mb.
#1413831
1   2   3   4   5   6   7   8   9   ...   96
Bog'liq
Turbo Pascal назария

Function Addi (var x: Integer): Integer;
begin {Addi}
inc (x);
Addi:=x
end {Addi};
var
a,b: integer;
begin {main}
if (a>b) or (Addi (a)>100) then b:=a;
………………..
Бу бўлакни бажаришда А ўзгарувчи ќиймати опцияга боѓлиќ: агар опция фаоллаштирилган бўлса, А нинг ќиймат ћамма ваќт, фаоллаштирилмаган бўлса, фаќат A<=B ћолда 1 га оширилади.
Ћар хил турдаги операндалар билан амаллардан фойдаланиш ќоидалари 2.1-жадвалда келтирилган.
2.1-жадвал

Амал
Фаолият

Операнда тури

Натижа тури

not

Инкор

Мантиќий
Мантиќий

not

Инкор

Ихтиёрий бутун

Операнда тури

@

Адрес

Ихтиёрий

Кўрсаткич

*

Кўпайтириш

Ихтиёрий бутун

Энг кичик бутун

*

Кўпайтириш
Ихтиёрий ћаќиќий

Extended

*

Тўплам кесишуви
Тўпламли

Тўпламли

/

Бўлиш

Ихтиёрий ћаќиќий

Extended

div

Бутун сонли бўлиш

Ихтиёрий бутун

Энг кичик бутун

mod

Бўлишдан колдик

Ихтиёрий бутун

Энг кичик бутун

and

Мантиќий ВА

Мантиќий

Мантиќий

and

Мантиќий ВА

Ихтиёрий бутун

Энг кичик бутун

Shl

Чапга силжиш

Ихтиёрий бутун

Энг кичик бутун

Shr

Ўнгга силжиш

Ихтиёрий бутун

Энг кичик бутун

+

Ќўшиш

Ихтиёрий бутун

Энг кичик бутун

+

Ќўшиш

Ихтиёрий ћаќиќий

Extended

+

Тўпламларни бирлаштириш

Тўпламли

Тўпламли

+

Сатрларни улаш

Сатрли

Сатрли

-

Айириш

Ихтиёрий бутун

Энг кичик бутун

-

Айириш

Ихтиёрий ћаќиќий

Extended

or

Мантиќий ЁКИ

Мантиќий

Мантиќий

or

Мантиќий ЁКИ

Ихтиёрий бутун

Энг кичик бутун

=

Тенг

Ихтиёрий оддий ёки сатрли

Мантиќий

<>

Тенгмас

Ихтиёрий оддий ёки сатрли

Мантиќий

<

Кичик

Мантиќий

Мантиќий

<=

Кичик ёки тенг

Мантиќий

Мантиќий

>

Катта

Мантиќий

Мантиќий

>=

Катта ёки тенг

Мантиќий

Мантиќий

Ћаќиќий тур билан амал бажаришда операндалардан биттаси ихтиёрий бутун турдаги ќиймат бўлиши мумкин. Амал жадвалда кўрсатилган EXTENDED тури натижасига фаќат Турбо Паскал мућитида ўрнатилган арифметик сопроцессор ёки унинг эмуляциясига таянган код генерацияси режими учун эга бўлади. Агар бу режим ўрнатилмаган бўлса, натижа REAL туридаги ќийматга эга бўлади.


Унар @ амал ихтиёрий турдаги операндага ќўлланилади ва операнда адресига эга бўлган POINTER туридаги натижани ќайтаради. Масалан, ќуйидагилар берилган бўлсин.
type
TwoChar = array [1…2] of char;
var
Int : integer;
TwoCharPtr :^ TwoChar;
Унда
TwoCharPtr: @Int
Оператори, TwoCharPtr да икки белги тўплами сифатида тушунтириладиган бутун сонли INT ўзгарувчи адресининг саќланишига олиб келади.
Шунинг учун, масалан,
if TwoCharPtr ^ [1] = c then
оператор бўлиши мумкин.
Агар @ амал процедура, функция ёки объектдаги усулга ќўлланилса, бу процедурага (функцияга, усулга) кириш нуќтасининг адреси унинг натижаси бўлади. Бу адресни фаќат ассемблерда ёзилган ички дастурда ёки INLINE бўлакларида ишлатиш мумкин.
Турбо Паскалда ќуйидаги мантиќий амаллар аниќланган:
not – мантиќий инкор;
and – мантиќий ВА;
or – мантиќий ЁКИ;
xor – фаќат Ёки.
Мантиќий амаллар бутун ва мантиќий турдаги операндаларга ќўлланилади. Агар операндалар – бутун сонлар бўлса, мантиќий амал натижаси ћам, битлари (иккиламчи разрядлари) 2.2-жадвалда кўрсатилган ќоидалар бўйича операнда битларидан ташкил топган, бутун сон бўлади.
2.2-жадвал

INTEGER туридаги берилганлар устида мантиќий амаллар (хоналар бўйича )

1-операнд

2-операнд

not

and

or

xor

1

-

0

-

-

-

0

-

1

-

-

-

0

0

-

0

0

0

0

1

-

0

1

1

1

0

-

0

1

1

1

1

-

1

1

0

Турбо Паскалдаги мантиќий амалларга одатда иккита бутун сонлар устида бажариладиган силжиш амаллари ћам киради:


i sh j – i таркибини j хона чапга силжитиш, бўшаган кичик разрядлар ноллар билан тўлдирилади;
i shr j – i таркибини j хона ўнгга силжитиш; бўшаган разрядлар ноллар билан тўлдирилади.
Бу амалларда i ва j ихтиёрий бутун турдаги ифодалар.
Ќуйида келтирилган мисол дастури ёрдамида иккита бутун сонга ќўлланилган мантиќий амаллар натижасини экранга чиќариш мумкин.
2.1-мисол.
Дастур иккита бутун сонни киритади ва уларга мантиќий амалларни ќўллаш натижасини чоп этади. Дастурдан чиќиш учун Ctrl-Zни киритиш ва Enterни босиш керак.
var
n,m:integer;
begin
while not EOF do
begin
write (n,m=);
Readln (n,m);
writeln (not=, not n,  , not m);
writeln (and=, n and m);
writeln (or=, n xor m);
writeln (shl=, n shl m);
writeln (shr=, n shr m);
end
end.
Мантиќий маълумотлар устида бажарилган мантиќий амаллар 2.3-жадвалда кўрсатилган ќоидалар бўйича мантиќий турдаги натижаларни беради.
2.3-жадвал

Boolean туридаги маълумотлар устида мантиќий амаллар

1-операнд

2-операнд

not

and

or

xor

True

-

False

-

-

-

False

-

True

-

-

-

False

False

-

False

False

False

False

True

-

False

True

True

True

False

-

False

True

True

True

True

-

True

True

False



IN муносабат амали иккита операндага ќўлланилади. Биринчи (ўнг) операнда ихтиёрий тартиб туридаги ифода, иккинчиси – ўша турдаги элементлардан иборат тўплам, ёки тўплам туридаги идентификатор бўлиши мумкин. Агар чап операнд тўпламга тегишли бўлса, амал True ни беради, масалан:
var
c:char;
type
digit = set of 0 .. 9;
begin
if c in digit then ………

Назорат саволлари:



  1. Турбо Паскал алфавитига нималар киради?

  2. Резерв сўзлар ќандай сўзлар?

  3. Стандарт директиваларга нималар киради?

  4. Идентификаторлар нима?

  5. Идентификаторга ќўйилган талаблар нималардан иборат?

  6. Турбо Паскалда ўзгармасларга нималар киради?

  7. Символли ўзгармаслар ќандай ўзгармаслар?

  8. Сатрли ўзгармас нима?

  9. Турбо Паскалда ўзгармасларни эълон ќилиш стандарт Паскалдан нимаси билан фарќ ќилади?

  10. Ифодаларга нималар киради?

  11. Турбо Паскалда ќандай амаллар аниќланган?

  12. Турбо Паскалда амал афзалликлари тартиби ќандай?

  13. Турбо Паскалда ћар хил турдаги операндалар билан амаллар бажаришнинг ўзига хос ќоидалари?

  14. Турбо Паскалда ќандай мантиќий амаллар бор ва улар ќандай турдаги операндаларга ќўлланилади?

III БОБ.


ТУРБО ПАСКАЛ ДАСТУРЛАШ ТИЛИ МАЪЛУМОТЛАР ТУРЛАРИ

3.1. Турбо Паскал маълумотлар турлари билан танишиш


Одатда Турбо Паскалда дастур таркиби ќуйидаги кўринишга эга бўлади:
Program <дастур номи>;
{Баёнлар бўлими}
begin
{операторлар бўлими}
end.
Program, begin ва end сўзлари дастурни икки - баёнлар ва операторлар ќисмларига ажратади. Ћар ќандай дастур учун бундай тасниф зарурдир. Бу тилнинг ќатъий талабларидан келиб чиќади: бажарилувчи операторларда иштирок этувчи ћар ќандай стандартмас идентификатор олдиндан баёнлар бўлимида тавсифланиши керак (Стандарт идентификаторлар олдиндан эълон ќилинган объектлар билан боѓлиќ ва Турбо Паскал стандарт кутубхонасига киради. Масалан, WriteLn идентификатори шундай идентификатор. Стандарт идентификаторлар, агар улар дастурга кирса, баён этилмайди). Турбо Паскалда идентификаторларнинг олдиндан бундай баён этилиши, дастурни баъзи бир хатоликларнинг (идентификаторларда белгиларнинг тўѓри, тўла ёзилиши) бўлишидан ћимоя ќилади, унинг ишончлилигини оширади.
Идентификаторни баён этиш – идентификатор билан боѓлиќ бўлган дастур объекти турини кўрсатиш демакдир. Тур тушунчаси Турбо Паскалдаги асосий тушунчалардан биридир. Ћозирча, тилнинг ќуйида келтириладиган хусусиятларини тушунтириш учун ћар хил турларни батафсил кўриб ўтирмаймиз ва турга, биринчидан, компьютер учун объектни ички ифодалаш усули, иккинчидан, унинг устидан бажариш мумкин бўлган амалларни аниќловчи, деб изоћ берамиз. Тур кўринишларини VI (оддий тури) ва IX (мураккаб тури) бобларида батафсил кўрамиз.
Бундан кейинги дастурларимизда маълумотларни ќуйидаги турлари керак бўлади:

  • INTEGER – бутун сонли маълумотлар, ички тасаввурда 2 байтни эгаллайди, ќабул ќилиш ќийматлари соћаси – 32768 дан +32768, маълумотлар аниќ ифодаланади;

  • REAL – ћаќиќий маълумотлар, 6 байтни эгаллайди, модулнинг ќийматлар ќабул ќилиш соћаси – 2.9 Е – 39 дан 1.7 Е + 38 гача, маълумотларни 11 … 12 хоналаргача аниќликда ифодалайди;

  • CHAR – белги, 1 байтни эгаллайди;

  • STRING - белгилар сатри, MAX+1 байтни эгаллайди, бу ерда MAX – сатрдаги белгиларнинг максимал сони;

  • BOOLEAN - мантиќий тур, 1 байтни эгаллайди ва иккита FALSE (ёлгон) ћамда TRUE (ћаќиќат) ќийматларига эга бўлади.

Ўзгармас тури унинг ќийматини ёзиш усули билан аниќланади. Масалан:
const
А1 = 25;
А2 = 2.27;
А3 = ¢С ¢
А4 = ¢2.27 ¢
А5 = FALSE
Дастурнинг бу бўлагини таћлил ќилишда компилятор биринчи ўзгармасни INTEGER, иккинчисини – REAL, учинчисини – CHAR, тўртинчисини – STRING ва охиргисини BOOLEAN турига киритади. Ўзгармасни INTEGER ёки REAL турга киритиш белгиси сон ќийматидаги ўнлик нуќтанинг бор ёки йўќлигидир. А2 ва А4 ўзгармаслар ћар хил турларга киради: А2 – REAL (ўзгармасда ўнлик нуќта бор), А4 – STRING (ўзгармас апостроф ичида ёзилган). Апостроф ичида ёлгиз ёзилган С ўзгармас ќийматини компилятор CHAR турига, бир неча белгини эса STRING турига киритади.
Ўзгармасдан фарќ ќилиб, ўзгарувчи дастурда ћисоб бориши билан ўз ќийматини ўзгартиради. Ўзгарувчиларни баён этишда идентификатордан кейин икки нуќта ва тур номи ќўйилади. Бир нечта бир хил турли ўзгарувчиларни битта рўйхатга ораларига вергул ќўйиб бирлаштириш мумкин. Ўзгарувчиларни баён этиш бўлими бошида VAR (VARiables - ўзгарувчилар) резерв сўзи туриши керак. Масалан:

Download 1.74 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6   7   8   9   ...   96




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