Ўзгарувчиларни камайиш цикли
Масала. Бутун сонларни кубларини ва квадратларини экранга чиқаринг 8 дан 1гача (камайиш тартибда).
Хосса: ўзгарувчи цикл камайиши керак.
Ечим:
for ( )
{
i2 = i*i;
i3 = i2*i;
Caption+“i2="+FloatToStr(i2)+" i3="+FloatToStr(i3)+"\n";
}
i = 8; i >= 1; i --
http://acm.tuit.uz/forum
12:59
Ўзгарувчан цикл
for (бошланғич қиймат;
циклни давом эттириш шарти;
ҳар бир қадамдаги ўзгариш)
{
// цикл танаси
}
Мисоллар:
for (a = 2; a < b; a+=2) { ... }
for (a = 2, b = 4; a < b; a+=2) { ... }
for (a = 1; c < d; x++) { ... }
for (; c < d; x++) { ... }
for (; c < d; ) { ... }
12:59
Ўзгарувчан цикл
Хосса:
- Шарт циклнинг кейинги қадами бошланишидан олдин текширилади, агар у ёлғон бўлса цикл бажарилмайди;
- ўзгартириш (сарлавханинг учинчи қисми) циклнинг навбатдаги қадамининг охирида бажарилади;
- Агар шарт ёлғон бўлмаса цикл тўхтовсиз ишлаши мумкин (цикл ичига тушиб қолади)
- Агар цикл танасида битта оператор бўлса, қавсни {} қўймаса ҳам бўлади:
for(i=1; i<8; i++) { i--; }
for (i = 1; i < 8; i++) a += b;
Цикл танасида цикл ўзгарувчиларини ўзгартириш тавсия этилмайди!
!
12:59
for (i=8; i>=1; i--) printf("Привет");
printf("i=%d", i);
Ўзгарувчан цикл:
Хоссалари:
- Кўп схемаларда цикл бажарилишидан сўнг ўзгарувчан циклнинг шарти бузилган ҳолдаги биринчи ифодаси киритилади:
for (i=1; i<=8; i++) printf("Привет");
printf("i=%d", i);
i=9
i=0
http://acm.tuit.uz/forum
12:59
Цикл неча маротаба такрорланмоқда?
a = 1;
for(i=1; i<4; i++) a++;
a = 4
a = 1; b=2;
for(i=3; i >= 1; i--)a += b;
a = 7
a = 1;
for(i=1; i >= 3; i--)a = a+1;
a = 1
a = 1;
for(i=1; i<= 4; i--)a ++;
Цикл ичида қолиш
a = 1;
for(i=1; i<4; i++) a = a+i;
a = 7
12:59
Do'stlaringiz bilan baham: |