16.1.2012 dvije godine postojanja naših stranica

Petlja do-while

Petlja do-while se rabi ako broj ponavljanja petlje nije unaprijed poznat, nego ovisi o ispunjenju zadanog uvjeta.
Osnovni oblik petlje do-while je:
 

do

{

      blok naredbi

}

while (uvjet);
 

 

Glavno obilježje petlje do-while je izvođenje bloka naredbi petlje bar jedanput neovisno o istinitosti uvjeta jer se uvjet ispituje nakon izvođenja bloka naredbi petlje. U tome je i osnovna razlika petlje do-while u odnosu na petlje for i while kod kojih se može dogoditi da se blok naredbi ne izvede nijedanput.
 
 

 

Zadatak:

Treba unijeti N prirodnih brojeva (N nije unaprijed poznat!) pa pronaći i ispisati najveći uneseni broj. Nakon posljednjeg broja treba unijeti 0. Ispis neka bude oblika:

Nakon posljednjeg broja unesi nulu.

Unesi prirodni broj:

Unesi prirodni broj:

...

Najveci broj je ...

  • Na početku programa, prije petlje, od korisnika se očekuje unos prvog broja b.

  • Potom valja pretpostaviti da je prvi uneseni broj najveći. Pretpostavlja se tako da se broj b pohrani u varijablu max (max=b).

  • Petlja će se ponavljati sve dok se unose brojevi veći od 0. Zato je uvjet: while(b>0).

  • U petlji se mora dokazati ili odbaciti pretpostavka da je u varijablu max pohranjen trenutno najveći broj
    (if(b>max)). Ako uvjet nije ispunjen, unosi se novi broj, a ako je, varijabla max dobiva vrijednost trenutno najvećeg broja a potom se unos nastavlja.

  • Po unosu broja 0, petlja završava. Najveći broj je pohranjen u varijabli max.

Rješenje:

 

#include<iostream>

using namespace std;

int main()

{

     int b,max;

     cout<<endl<<"Nakon posljednjeg broja unesi 0. Unesi prirodni broj: ";

     cin>>b;

     max=b;

     do

     {

            if(b>max)

            {

                   max=b;

            }

     cout<<"Unesi prirodni broj: ";

     cin>>b;

     }

     while(b>0);

     cout<<endl<<"Najveci broj je: "<<max<<endl;

     return 0;

}

 

Rezultat:

 

Nakon posljednjeg broja unesi nulu.

Unesi prirodni broj: 85

Unesi prirodni broj:14

Unesi prirodni broj:396

Unesi prirodni broj:384

Unesi prirodni broj:0

Najveci broj je 396