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


Download 1.74 Mb.
bet84/96
Sana30.04.2023
Hajmi1.74 Mb.
#1413831
1   ...   80   81   82   83   84   85   86   87   ...   96
Bog'liq
Turbo Pascal назария

program Stack;
uses Crt;
type
TPtr = ^TElem;
TElem = record
Inf : Real;
Link : TPtr
end;
var
Top : TPtr;
Value : Real;
i : Byte;
procedure Push (Val : Real);
var
P : TPtr;
begin
New (P);
P ^ . Inf : = Val;
P ^. Link : = Top;
Top : = P
end;
procedure Pop (var Val : Real);
var
P : TPtr;
begin
Val : = Top ^ . Inf;
P : = Top;
Top : = P ^ . Link;
Dispose (P)
end;
begin
ClrScr;
{Кўрсаткичларнинг бошланѓич ўрнатишлари}
Top : = nil;
{10 элементдан иборат стек яратиш }
for i : = 1 to 10 do Push (i);
{Стек элементлари ќийматларини чоп этиш билан стекни йўќотиш}
while Top <> nil do
begin
Pop (Value);
Writeln (Value=, Value : 5 : 2)
end
end.
Назорат саволлари:

  1. Дастурлашда ишлатиладиган маълумотларни ќандай гурућларга ажратиш мумкин?

  2. Статик ва динамик таснифли маълумотлар уртасидаги асосий фарќ нимада?

  3. Динамик таснифли маълумотларга ќандай маълумотлар киради?

  4. Боѓлиќ динамик маълумотларнинг ќандай турлари мавжуд?

  5. Динамик хотира нима, унинг сигими нимага тенг?

  6. Адреслар нимани ифодалайди?

  7. Сегмент нимани билдиради?

  8. ШК адрес ќандай шаклланади?

  9. Параграф нимага тенг?

  10. Динамик таснифли маълумотларни эълон ќилишнинг ўзига хос хусусияти нимада?

  11. Ќайси процедуралар ёрдамида динамик ўзгарувчилар учун хотира таќсимланади?

  12. Кўрсаткичли ўзгарувчи ќандай ћолатларни ќабул ќилиши мумкин?

  13. Ќандай ћолларда кўрсаткич ноаниќ ћолатда бўлиши мумкин?

  14. nil ва ноаниќ ћолатлари ўртасидаги фарќ нимада?

  15. New ва Dispose процедуралари ќандай ишларни бажаради?

  16. Боѓлиќмас динамик маълумотларнинг динамик хоссалари нимада ифодаланади?

  17. Чизиќли ва ћалќали рўйхатлар ўртасида ќандай ўхшашлик ва фарќ бор?

  18. Навбат маълумотлар таснифи сифатида нимани ифодалайди?

  19. Стек маълумотлар таснифи сифатида нимани ифодалайди?

  20. Боѓлиќли динамик таснифли маълумотлар яратиш учун нималар талаб ќилинади?

  21. Навбат билан ишлаш учун нечта кўрсаткич керак?

  22. Навбатни яратиш учун ќандай ишларни бажариш зарур?

  23. Стеклар билан ишлаш учун нечта кўрсаткич талаб ќилинади?

  24. Стек яратиш учун ќандай ишларни бажариш зарур?

  25. Стек элементи ќандай ќўшилади ва олиб ташланади?

XIII БОБ.
ДАСТУРЛАШ УСЛУБИЁТИ

13.1. Масаладан дастурга


Энди шу пайтгача кўриб чиќилган дастурлаш воситаларини кўплаб ќизиќарли дастурлар яратишга ќўллаймиз. Агар дастурчи олдига мураккаб масала ќўйилган бўлса, масалага мос дастурни яратиш учун анча ваќт ва ћаракат талаб ќилинади. Шунинг учун дастурни ёзишда маълум ќоидалар тўпламига ёки дастурлаш услубиётига риоя ќилиш керак бўлади.
Масала дастурини яратиш жараёнини ќуйидаги босќичларга бўлиш мумкин:

  1. Масалани таърифлаш;

  2. Ечиш усулини (алгоритми) танлаш ва тасвирлаш;

  3. Дастурни яратиш;

  4. Дастурни текшириш;

  5. Дастурни такомиллаштириш;

  6. Дастурни тузатиш.

Ќуйида бу санаб ўтилган ќисмларнинг ћар бирини алоћида кўриб чиќилади.

13.2. Масалани таърифлаш.


Дастурни яратишда энг аввал, берилган масаланинг маќсади ва бўлажак дастурга ќўйиладиган талабларни билиш керак. Акс ћолда, дастурчи айрим тафсилотларни назарга олмаслиги ва масалани ечиш учун зарур бўлган, аммо унинг тасвирида аниќ ифодаланмаган амаллар дастурда уз аксини топмаслиги мумкин. Масалани таърифлашда дастурда ќайси дастлабки маълумотлардан фойдаланиш, ќандай натижалар олиш кераклиги аниќ кўрсатилиши керак. Талаб ќилинаётган натижаларни олиш учун зарур бўлган амалларга келсак, улар кейинроќ, дастур тузишда аниќланади.
Мисол кўриб чиќамиз. Йилларни ифодаловчи дастлабки маълумотлар ичидан кабиса йилларини аниќлайдиган дастур тузиш керак.
Шубћасиз, бундай топшириќдан масалани аниќ таърифлаш мумкин эмас.
Биринчидан, дастлабки маълумотларнинг ўзгариш чегаралари кўрсатилмаган. Чунки юз йилликни билдирадиган кабиса йиллари алоћида формула билан аниќланади, шунинг учун дастлабки маълумотлар бизнинг эрамизнинг юз йилликлариними ёки эрамизгача бўлган йилларни билдирадими шуни билиш зарур.
Иккинчидан, ЭЋМ натижаларни ќайси кўринишда босиб чиќариши кераклиги айтилмаган.
Масаланинг таърифини аниќлаймиз. Дастлабки маълумотлар – 1 дан 2000 гача бўлган бизнинг эрамизнинг йилларини кўрсатувчи сонлар. Шундай дастур ёзиш керакки, унга асосан ЭЋМ, агар берилган йил кабиса йили бўлса, КАБИСА ва акс ћолда ОДДИЙ сўзларни босиб чиќарсин. Масалани бундай таърифлаш анча аниќ.
Бошќа мисол кўриб чиќамиз. Берилган сонлар йиѓиндисини ћисоблаш керак. Бу ерда дастлабки маълумотлар сонини ёки сонларнинг берилган кетма-кетлиги узунлигини аниќлаш усулини билиш керак. Бундай масалани таърифлашнинг айрим вариантларини келтирамиз.

  1. Дастлабки маълумотлар – иккита бутун сон. Уларни дастурга киритиш, йиѓиндисини ћисоблаш ва бу йиѓиндини босиб чиќариш керак.

  2. Дастлабки маълумотлар – ўнта бутун сонлар. Уларни дастурга киритиш, йиѓиндисини ћисоблаш ва бу йиѓиндини босиб чиќариш керак.

  3. Дастлабки маълумотлар – нолга тенг бўлмаган сонлар кетма – кетлиги. Кетма-кетликнинг охири – ноль. Дастлабки маълумотларни ўќиш, йиѓиндисини топиш ва уни босиб чиќариш керак.

13.3. Ечиш усул (алгоритм)ини танлаш ва тасвирлаш


Масалани еча бориб, ЭЋМ дастурда аниќланадиган катта ћажмдаги ћисоблаш ишларини бажаради. Масалани ечувчи дастурчи эса ечиш усулини, яъни ќўйилган масаланинг алгоритмини, билиши зарур. Масалан, кабиса йилларини аниќловчи дастурни тузишдан аввал дастурчи кабиса йилини аниќлаш ќоидасини билиши керак.
Агар масалани ечишнинг бир нечта усуллари маълум бўлса, уни танлашда усулнинг универсаллиги, соддалиги ва тежамлилигини ћисобга олиш керак. Танланган усул дастурнинг максимал тезкорлигини, хотиранинг энг кам сарфланишини ва, дастурлаш нуќтаи назаридан, энг яхши хусусиятларни таъминлаши керак.

13.4. Дастурни яратиш


Тажриба шуни кўрсатадики, ћар бир дастур фаќат ўзига хос хусусиятларга эга, шу билан бирга янги яратилаётган дастурни бир нечта, аввал ёзилган, алоћида дастурлардан яратиш ћам мумкин. Дастурлаш – бу ижодий жараён, шунинг учун дастур тузишнинг умумий усули йўќ. Аммо баъзи усулларни тавсия ќилиш мумкин, улардан фойдаланиб, дастурчи ўз ишини енгиллаштиради ва уни анча осон бажаради. Бундай усуллардан бири – масалани ќисмларга ажратиш. Катта масалаларни дастурлашда маълум ќийинчиликлар учрайдики, амалда уларни таърифлаш мумкин эмас.
Бундай ћолларда масала, бир-бирига боѓлиќ бўлмаган, дастурланадиган ќисмларга ажратилади. Агар алоћида ќисм ћали ћам анча катта бўлса, уни ќисмларга ажратишни, масаланинг ћосил ќилинган ќисмлари анча содда ва аниќ бўлгунга ќадар, давом эттириш керак.
Бу усулни таърифланган масала мисолида тушунтириб берамиз.
Дастлабки маълумотлар – бизнинг эрамизнинг 1 дан 2000 гача бўлган йилларига мос келувчи сонлар. Шундай дастур ёзиш керакки, у бажарилганда ЭЋМ кабиса йил учун КАБИСА, акс ћолда ОДДИЙ сўзларни босиб чиќарсин. Бу масалани ќисмларга ажратамиз:

  1. Дастлабки маълумотларни киритиш.

  2. Берилган йил кабиса йил эканини текшириш.

  3. Натижаларни босиб чиќариш.

Маълумотларни киритиш ва натижаларни босиб чиќариш бу ерда ортиќча ќийинчилик тугдирмайди, чунки уларга Турбо Паскал тилининг маълум операторлар мос келади. Агар кабиса йилларини аниќлайдиган функция маълум бўлса, дастурнинг иккинчи ќисмини амалга ошириш осонлашади. Бундай функцияни кейинроќ ёзамиз, ћозир эса яратиладиган дастурнинг лойићаси (схемаси)ни тузамиз.

Download 1.74 Mb.

Do'stlaringiz bilan baham:
1   ...   80   81   82   83   84   85   86   87   ...   96




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