top of page

CIKLAS WHILE. TEORIJA

 

Ciklas yra naudojamas pasikartojantiems veiksmams atlikti. Labai dažnai veiksmai kartojami tol, kol tenkinama nurodyta sąlyga. 

while (sąlyga)

   Kartojamas sakinys;

 

Jeigu reikia kartoti kelis veiksmus, tai jie rašomi tarp riestinių skliaustų { }.

 

while (sąlyga){

   Kartojamas sakinys1;

   Kartojamas sakinys2;

   ...

   Kartojamas sakinysn;

}

 

 

1 pavyzdys

 

x=5;

while (x < 10)

   x=x + 2;

 

Atlikus šį ciklą, kintamojo x reikšmė lygi 11.

 

Paaiškinimai:

Prieš atliekant ciklo sakinį, x=5. Pirmą kartą atliekant ciklą, cikle x reikšmė padidinama 2, tampa lygi 7;

antrą kartą  x=7 + 2=9;

trečią kartą  x=9 + 2=11;

ketvirtą kartą ciklo sakiniai nebeatliekami, nes sąlyga x < 10 nebetenkinama.

 

2 pavyzdys

 

x = 5; y = 15;

while (x <= y) {

   x = x + 2;

   y = y - 3;

}

 

Atlikus šį ciklą,  x=11, y=6;

 

Paaiškinimai:

Prieš atliekant ciklą x=5, y=15,  sąlyga  5 <=15 tenkinama;

cikle x reikšmė padidinama, tampa x=5+2=7; y - mažinama y=15 - 3=12;

antrą kartą - sąlyga 7 <= 12 tenkinama, x=7 + 2=9;  y=12 - 3=9;

trečią kartą - sąlyga 9 <= 9 tenkinama,  x=9 + 2=11; y=9 - 3=6;

ketvirtą kartą ciklo sakiniai neatliekami, nes sąlyga 11 <=6 nebetenkinama.

 

3 pavyzdys

 

x = 5;

while (x > 10)

   x = x + 2;

x = x * 3 + 5;

 

Paaiškinimai:

Šis ciklas nevykdomas nė karto, nes sąlyga 5 > 10 netenkinama.

Atliekamas už ciklo esantis sakinys x = x * 3 + 5 =20, kintamojo x reikšmė lygi 20.

 

Svarbu: ciklo kartojimo sakiniuose turi būti keičiama ciklo sąlygoje esančio kintamojo reikšmė, kitaip ciklas tampa amžinu (nesibaigiančiu).

 

UŽDAVINIAI

 

1. Siena. (sprendimas)

Iš plytų galima pastatyti vienos plytos storio taisyklingą sieną, kurios viršunėje yra viena plyta, o kitose eilėse po vieną plytą daugiau (2, 3, 4... n  plytų). Parašyti programą, kuri apskaičiuotų, kelių plytų a bus sienos pagrindas ir kelių plytų aukščio k bus siena, jei statybai skirtas plytų skaičius p.

Pasitikrinkite, kai p=11, a=4, k=4.

 

2. Riešutai.

Adas labai mėgsta riešutus. Mamos slėptuvėje jis rado m riešutų. Pirmą dieną berniukas suvalgė 1 riešutą, antrą - 2, trečią - 3, ir taip kasdien vienu daugiau. Per kiek dienų d Adas suvalgys visus riešutus. Paskutinei dienai riešutų gali likti mažiau.

Pasitikrinkite, kai m  =11, tai d=5.

 

Modifikuokite programą. Kaip reiktų pakeisti skaičiavimus, jei pirma dieną Adas suvalgė ne vieną, bet k riešutų (k < m/2). Ir maišelyje rado b sugedusių riešutų. Jei rado sugedusį, jį išmesdavo, o jo vietoje paėmė kitą - sveiką. 

 

3. Paskola (sprendimas)

Pristigo žmogus pinigų ir nuėjo pasiskolinti jų iš kaimyno. Tas sutiko paskolinti, bet paprašė juos grąžinti tokia tvarka: pirmą dieną – 1 eurą, antrą – 2, trečią – 4 ir taip kasdien dvigubai daugiau, negu prieš tai. Tą dieną, kai skola bus padengta, reikės atiduoti ir visą tos dienos normą. Tai, kas bus atiduota daugiau ir bus kaimyno palūkanos. Parašykite programą, kuri apskaičiuotų, kiek palūkanų gaus kaimynas už paskolintus n eurų. Pasitikrinkite: kai n=11, turėtumėte gauti palukanos = 4.(XIII olimpiada, 2002 m)

 

4. Indėlis (sprendimas)

Bankas už indėlį moka p procentų palūkanų per metus. Metų gale palūkanos pridedamos prie indėlio. Jei indėlininkas pinigų nė kiek neišima, palūkanos skaičiuojamos nuo vis didesnės sumos. Parašykite programą, kuri apskaičiuotų, per kiek metų t pradinis indėlis ind pasieks sumą s.

Pasitikrinkite, kai p=5, ind=1000, s=1200, tuirėtumėte gauti t=4.

 

Modifikuokite programą. Reikia paskaičiuoti, per kiek metų indėlis padvigubės.

 

5. Paskolos terminas (sprendimas)

Algirdas gavo d dydžio paskolą automobiliui įsigyti. Jis grąžins kas mėnesį d_men//paskolos dalį ir mokės nuo negrąžintos paskolos 8 proc. metinių palūkanų.

Po kelerių metų m ir mėnesių men grąžins paskolą Algirdas? Kiek sumokės palūkanų p?

Pasitikrinkite: kai d=10.000, d_men=500,

turėtumėte gauti m=1, men=8, p=700.

 

 

bottom of page