if a 0
then b : = 0
else
if a < 0
then b : = -a
Бу шартли операторнинг иккинчи ќисмида ортиќча шартли оператор ёзилганини сезиш ќийин эмас, чунки а0 шартни икки марта текшириш содир бўлади.
Шартли операторни ќисќароќ ва яќќолроќ ёзамиз:
if a 0
then b : = 0
else b : = -a
Бошќа мисол кўрамиз:
for k: = 1 to 100 do
write (a + b)
Циклнинг ћар бир бажарилишида а ва b ўзгарувчилар ќийматларини йиѓиндиси ћисобланади ва босиб чиќарилади. Йиѓиндини ћисоблашни циклдан ташќарига чиќарамиз:
c: = a + b;
for k: = 1 to 100 do
write (c)
Энди ўзгарувчиларнинг ќийматларини ќўшиш фаќат бир марта бажарилади. Демак, бу дастурни бажаришда машина ваќти ќисќаради.
Кабиса йилларни аниќловчи функциядаги шартли операторни соддалаштиришга ћаракат ќиламиз
if yil mod 100 = 0
then
if y mod 400 = 0
then kabisa:=true
else kabisa:=false
else
if y mod 4=0
then kabisa:=true
else kabisa:=false
Агар йил, берилган сон 400 га бўлинса, бундай йил кабиса йили бўлади, шунинг учун олдин берилган сонни 400 га бўлинишини текшириш, кейин эса ќолган ћолларни кўриб чиќиш керак:
if y mod 400 = 0
then kabisa:=true
else . . . . . .
Агар сон 400 га бўлинмасдан 100 га бўлинса, бу сон асрнинг оддий йилини белгилайди. Шартли операторни ёзишни давом эттирамиз:
if y mod 400 = 0
then kabisa: = true
else
if y mod 100=0
then kabisa:=false
else
. . . . .
Ќолган йиллар сонининг 4 га бўлинишини текширамиз ва шартли операторнинг охирини ёзамиз:
if y mod 400 = 0
then kabisa:=true
Do'stlaringiz bilan baham: |