do - while naredba

     

 

Do-while naredba koristi se u slučajevima u kojima se uvjet o kojem ovisi ponavljanje provjerava tek na kraju bloka naredbi.

Primjer 1:

Našim biolozima potrebno je napraviti još jedan program. Program omogućuje unos dnevnih temperatura zraka u intervalu zadanom na ovaj način:
prvi dan promatranja je prvi dan u godini u kojem je dnevna temperatura zraka 10 stupnjeva. Mjerenje prestaje onog dana kada temperatura postane viša od 25 stupnjeva.

Potrebno je izračunati broj dana u kojima je temperatura bila između 10 i 25 stupnjeva, te srednju temperaturu promatranog intervala.

U ovom slučaju potrebno je tek nakon unesenog podatka za temperaturu zraka provjeriti je li ona veća od 25. Ako je, ponavljanje se prekida. U protivnom računaju se traženi podaci i traži novi unos.

Za rješavanje ovog zadatka najprikladnija je naredba ponavljanja koja uvjet ispituje na kraju - do-while naredba.

Opći oblik do-while naredbe:

do
{
blok naredbi;
}while (uvjet);

Grafički prikaz:

Vježba 1:

U diskusiji, u temi "Naredbe ponavljanja" objavite i prodiskutirajte tijek izvršavanja do-while naredbe.

Primjer 2:

U sljedećem prozoru pogledajte kôd programa potrebnog vašim biolozima.

Rješenje proučite i prodiskutirajte u diskusiji. Imate li možda bolje ili jednostavnije rješenje? Podijelite svoje znanje sa čitavom skupinom!


#include<stdio.h>
#include<conio.h>

main()
{
 float temp=10,zbroj=0,srednja;
 int dan=0;
 do
 {
    zbroj+=temp;
    dan++;
    printf("Unesite temperaturu zraka:");
    scanf("%f",&temp);
 }
 while (temp<=25);
 srednja=zbroj/dan;
 printf("Srednja temperatura ovog perioda od %d dana je %.2f stupnjeva celzijusevih",dan,srednja);
 getch();
}

Vježba 2:

Naredbu while u sljedećem programu zamijenite naredbom do-while. Program traži unošenje brojeva sve dok se ne unese broj -1 i na zaslon ispisuje koliko je brojeva uneseno i njihov zbroj isključujući broj -1. Tražene primjere napravite na svom računalu.


#include<stdio.h>
#include<conio.h>

main()
{
 int broj=0,zbroj=0,br=0;
 while (broj!=-1)
 {
    zbroj+=broj;
    br++;
    printf("Upisite jedan broj: ");
    scanf ("%d",&broj);
 }
 printf ("Unijeli ste %d brojeva, a njihov zbroj je %d",br-1,zbroj);
 getch();
}

Vježba 3:

Naredbu for u sljedećem programu zamijenite naredbom do-while. Program računa umnožak prvih n prirodnih brojeva (n se unosi s tipkovnice). I ove promjene također napravite na svom računalu.

Napomena:

Umnožak prvih n prirodnih brojeva ima svoj naziv i način zapisivanja - zapisuje se kao n!, a čita "n faktorijela".
Znači, ako zapišemo 5!, to je isto kao da smo zapisali 1*2*3*4*5


#include<stdio.h>
#include<conio.h>

main()
{
 int i,n,faktorijel=1;
 printf("Unesite broj n: ");
 scanf("%d",&n);
 for(i=2;i<=n;i++)
    faktorijel*=i;
 printf("%d!=%d",n,faktorijel);
 getch();
}