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


program daraja (input, output); var


Download 1.74 Mb.
bet87/96
Sana30.04.2023
Hajmi1.74 Mb.
#1413831
1   ...   83   84   85   86   87   88   89   90   ...   96
Bog'liq
Turbo Pascal назария

program daraja (input, output);
var k, n, p : integer;
begin
read (n);
p:=1
for k:=1 to n do
p:=p*2;
write (p);
end.
Бу дастурни текшириш учун бир вараќ ќоѓоз олиб, унга дастур матнида учрайдиган барча ўзгарувчиларни ёзиб чиќамиз. (жадвалнинг биринчи йўли.)

Ўзгарувчилар ќийматлари

К

N

p

Дастурнинг бажарилишидан олдин

?

?

?

read (n) оператори бажарилгандан кейин

?

3

?

р: = 1 оператори бажарилгандан кейин

?

3

1

1 – цикл бажарилгандан кейин

1

3

2

2 – цикл бажарилгандан кейин

2

3

4

3 – цикл бажарилгандан кейин

3

3

8

Дастур бажарилгандан кейин

3

3

8

Дастур бажарилгунга ќадар ўзгарувчиларнинг ќийматлари аниќланган эмас. Дастурнинг бажарилишида ўзгарувчиларга аниќ ќийматлар ўзлаштирилади, уларни жадвалга устун бўйлаб пастга томон ёзиб борамиз.


Daraja дастурда read (n) оператор хотирадан n нинг ќийматини ўќийди. n=3 деб, фараз ќиламиз, p – ўзгарувчига 1 ќиймат ўзлаштирилади. Цикл операторлари бажарилганда к ва p ўзгарувчиларнинг ќийматлари доим ўзгариб боради. Ћисоблаш охирида k=3, р= 8 бўлади. Демак, daraja дастур 2 сонини 3 – даражага тўѓри кўтаради, чунки 23 = 8.
Дастурни ташкил ќилувчи функциялар ва процедураларни бир-биридан мустаќил равишда текшириш, олинган натижаларни эса масаланинг ћаммасини текширишда ишлатиш маќсадга мувофиќдир. Рекурсив процедура функцияларнинг тўѓрилигини аниќлаш анча мураккаб. Ўзгарувчиларнинг ќийматларини аниќ кўрсатиш учун рекурсив процедура ёки функциянинг ћар бир нусхасини алоћида жадвалга ёзиш керак.
Дастурнинг тўѓрилигини текширишда фойдланиладиган маълумотлар назорат маълумотлари дейилади. Ќулай ва шу билан бирга айнан шу масала учунгина хос назорат маълумотларини танлаш жуда мућимдир. Масалан, агар дастурга цикл киритилган ва унинг такрорланиш сони дастлабки маълумотга боѓлиќ бўлса, бу ћолда назорат ќиймат сифатида шундай ќийматни танлаш маќсадга мувофиќки, унда цикл амалларини кўп марта бажариш талаб ќилинмайдиган бўлсин. Акс ћолда циклни текшириш кўп ваќтни олади.
Юќорида ёзилган daraja дастурини текширамиз. n = 3 да дастур тўѓри тузилганлиги кўрсатилган эди. Яна n=0 ва n=1 бўлган икки ћолни кўрамиз. Бу ќийматлар билан дастур амалларини бажариб, мос равишда p=1 ва р=2 натижаларни оламиз. n=0 да дастур цикли бажарилмайди ва р ўзгарувчининг ќиймати 1 га тенг бўлиб ќолаверади. Демак, daraja дастур, 2 сонини, n  0 даражага кўтаришга мўлжалланган. Шундай ќилиб, циклнинг тўѓрилигини текшириш учун шундай назорат ќийматларини танлаш керакки, унда цикл бир марта , бир неча марта бажариладиган ёки умуман бажарилмайдиган бўлсин. Шартли операторни текширишда унинг ћар бир ќисми (тармоги) ћеч бўлмаганда бир марта бажариладиган бўлиши керак. Масалан, kabisa функциянинг тўѓрилигига ишонч ћосил ќилиш учун ушбу 1600, 1900, 1988,1987 назорат маълумотлардан фойдаланамиз. Функцияда кўрсатилган амалларни бажариб, true, false, true, false тўѓри натижаларни оламиз.
Баъзи назорат ќийматларда дастур натижалари тўѓри бўлса, дастурнинг ўзи ћам тўѓри тузилганлигин тасдиќлаш мумкинми? Йўќ, албатта.
Бошќа дастур мисолида бу фикрнинг тўѓрилигини тушунтириб борамиз. 2 сонини n даражага кўтариш учун ќуйидаги дастур тузилган бўлсин:

Download 1.74 Mb.

Do'stlaringiz bilan baham:
1   ...   83   84   85   86   87   88   89   90   ...   96




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