Ш. И. Раззоќов, М. Д. Юнусова turbo pascal алгоритмик тилида дастурлаш касб-ћунар коллеж талабалари учун ўќув ќўлланма
Download 1.74 Mb.
|
Turbo Pascal назария
- Bu sahifa navigatsiya:
- Фаолият
- Мантиќий
- Ихтиёрий ћаќиќий
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-жадвал
Ћаќиќий тур билан амал бажаришда операндалардан биттаси ихтиёрий бутун турдаги ќиймат бўлиши мумкин. Амал жадвалда кўрсатилган 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-жадвал
Турбо Паскалдаги мантиќий амалларга одатда иккита бутун сонлар устида бажариладиган силжиш амаллари ћам киради: 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-жадвал
IN муносабат амали иккита операндага ќўлланилади. Биринчи (ўнг) операнда ихтиёрий тартиб туридаги ифода, иккинчиси – ўша турдаги элементлардан иборат тўплам, ёки тўплам туридаги идентификатор бўлиши мумкин. Агар чап операнд тўпламга тегишли бўлса, амал True ни беради, масалан: var c:char; type digit = set of 0 .. 9; begin if c in digit then ……… Назорат саволлари: Турбо Паскал алфавитига нималар киради? Резерв сўзлар ќандай сўзлар? Стандарт директиваларга нималар киради? Идентификаторлар нима? Идентификаторга ќўйилган талаблар нималардан иборат? Турбо Паскалда ўзгармасларга нималар киради? Символли ўзгармаслар ќандай ўзгармаслар? Сатрли ўзгармас нима? Турбо Паскалда ўзгармасларни эълон ќилиш стандарт Паскалдан нимаси билан фарќ ќилади? Ифодаларга нималар киради? Турбо Паскалда ќандай амаллар аниќланган? Турбо Паскалда амал афзалликлари тартиби ќандай? Турбо Паскалда ћар хил турдаги операндалар билан амаллар бажаришнинг ўзига хос ќоидалари? Турбо Паскалда ќандай мантиќий амаллар бор ва улар ќандай турдаги операндаларга ќўлланилади? 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: |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling