Fakultet elektrotehnike, strojarstva i brodogradnje Sveucilista u Splitu Studij racunarstva Kolegij: Programiranje 1 Sk.god. 2004/2005 Student/ica: _____________________________ DOMACI RAD - VJEZBA 4 1. Kratko opisite a) Svrhu if-else naloga b) Razliku izmedju while i do-while naloga c) Razliku izmedju for i while naloga d) Kada se moraju, a kada ne moraju, primijeniti zagrade {} unutar if-else naloga e) Ulogu indeksa u for nalogu 2. Opisite izlazne rezultate sljedecega C programa: #include main() { int i = 0, x = 0; while (i<20) { if (i % 5 == 0) {x +=i; printf ("%d", x);} i++; } printf ("\nx = %d", x); } 3. Izradite racunalni program koji ce izracunavati iznose faktorijela za proizvoljni argument If. Ako je If manji od 13, faktorijele izracunavati kao cijele brojeve (int), a ako je If 13 ili veci, faktorijele izracunavati kao brojeve s pomicnim zarezom (double). Koliko je 171! ? Pokusaj obrazloziti rezultat. 4. Izradite racunalni program koji ce upitati korisnika koliko je sati (float). Nakon toga, program ce napisati pozdravnu poruku: Dobro jutro - ako je izmedju 5 i 12 sati Dobar dan - ako je izmedju 12 i 18 sati Dobra vecer - ako je izmedju 18 i 24 sata Kako je bilo na tulumu? - ako je izmedju 24 i 5 sati Probudi se, moras na faks - u ostalim slucajevima (-4, 32.55 itd.) ---------------------------------------------------------------------- ODGOVORI / RJESENJA ---------------------------------------------------------------------- 1) a) If-else nalog se koristi prilikom postavljanja petlje , kada treba iskoristiti navedene uvjete da bi se sami programi izvrsili. b) Glavna razlika izmedju while i do while naloga je u tome sto se kod while naloga uvjet provjerava na pocetku (tj. ako uvjet nije zadovoljen petlja se nece izvrsiti) , a kod do while naloga uvjet se provjerava na kraju petlje. c) Kod while uvjeta postavljamo sami uvjet i ako je on izvrsen program ce krenuti u izvrsavanje petlje , a kod for uvjeta , na pocetku potrebno je inicijalizirati varijablu ako prethodno nije inicijalizirana , postavljamo uvjet te na kraju sami nalog za izvrsavanje. d) Primijeniti zagrade {} unutar if-else naloga nije potrebno ako zelimo da se unutar toga naloga izvrsi samo jedna naredba,a potrebno je ako zelimo da se 2 ili vise naredbi izvrsi u tome nalogu. e) Index govori o tome koliko puta ce se for petlja izvrsit. 2) Ova petlja se izvrsava tocno dvadeset puta , i prikazuje visekratnike broja 5. 3) main() { int a,b,fakt=1; double c; printf("\n\t Program za izracunavanje faktorjela\n"); printf("\t Unesite broj:"); scanf("%d",&a); if(a==0){printf("\n0 faktorjela iznosi 1\n");} if(a<0){printf("\nNegativne faktorjele nisu definirane\n");} if(a>0 && a<=13) { for(b=1;b<=a;b++) fakt=fakt*b; printf("%d faktorjela iznosi %d",a,fakt); } if(a>13) { for(b=1;b<=a;b++) fakt=fakt*b; printf("%d faktorjela iznosi %lf",a,double(fakt)); } } 171!-ravunalo prikaze kao nulu,ali to je vjerojatno zbog toga sto ni double ne moze prikazati tolikvi broj! 4) #include main () { float a; printf("\nKoliko je sati ?\n"); scanf("%f",&a); if(a>5 && a<=12) printf("\nDobro jutro !"); if(a>12 && a<=18) printf("\nDobar dan !"); if(a>18 && a<=24) printf("\nDobra vecer!"); if(a>=0 && a<=5) printf("\nKako je bilo na tulumu?"); if(a>24 || a<0) printf("\nProbudi se, moras na faks"); }