Professional Documents
Culture Documents
ProgramiranjeI_sylabus.doc indira@fit.ba
Datum: 28.10.2017.
PROGRAMSKA STRUKTURA SELEKCIJA
uvjetnim operatorom,
if iskazom,
if – else iskazom i
switch iskazom.
IF ISKAZ
if (uvjet)
{blok_naredbi;}
Izraz koji
if ( predstavl ) { }
ja uvjet
iskaz
izraz
uvjet
predstavljen
izrazom
da
neka aktivnost
ne
1
Programiranje I::Vježbe
http://student.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc indira@fit.ba
Na primjer:
if (rezultat_testa<55)
cout<<"Pali ste na testu!";
if (radni_sati>40)
{
prekovremeni=radni_sati - 40;
honorar=prekovremeni*satnica;
}
Dizajn
Podatak Vrsta vrijednosti Tip podatka Identifikator
Broj koji unosi varijabla int pokusaj
korisnik
Broj koji predstavlja varijabla int pogodak
pogodak
start
#include <iostream>
pogodak=7;
using namespace std;
int main()
{
int pogodak = 7;
int pokusaj;
pokusaj
cout << "Zamislio sam broj izmedju 1 i 10" << endl;
cout << "Pokusajte pogoditi o kojem je broju rijec " << endl;
cin >> pokusaj;
if (pokusaj == pogodak)
cout << "Nevjerojatno, pogodili ste" << endl;
pokusaj==pogo
dak system ("pause");
return 0;
}
da
Bravo,
pogodili ne
ste!!!
kraj
2
Programiranje I::Vježbe
http://student.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc indira@fit.ba
Program radi,ali potrebna su neka poboljšanja. Ako korisnik unese broj 7, dobije poruku
"Nevjerojatno, pogodili ste". Šta se događa ukoliko korisnik unese pogrešan broj? Ništa.
Nema nikakve poruke, nikakve sugestije.
Ukoliko korisniku treba uputiti poruku da nije pogodio traženi broj nužno je upotrijebiti if-
else iskaz.
IF – ELSE ISKAZ
if (uvjet)
{blok_naredbi_1;}
else
{blok_naredbi_2;}
Izraz koji
if ( predstavl ) { } else { }
ja uvjet
iskaz iskaz
izraz izraz
3
Programiranje I::Vježbe
http://student.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc indira@fit.ba
Na primjer:
if (rezultat_testa<55)
cout<<"Pali ste na testu!";
else
cout<<"Polozili ste test!";
start
pogodak=7;
#include <iostream>
using namespace std;
int main()
{
pokusaj int pogodak = 7;
int pokusaj;
cout << "Zamislio sam broj izmedju 1 i 10" << endl;
cout << " Pokusajte pogoditi o kojem broju je rijec
da
pokusaj==pogo
ne "<<endl;
dak
cin >> pokusaj;
if (pokusaj == pogodak)
Bravo, Zao mi je, cout <<"Nevjerojatno, pogodili ste" << endl;
pogodili niste else
ste!!! pogodili
cout <<"Zao mi je, niste pogodili"<< endl;
system ("PAUSE>null");
return 0;
}
kraj
4
Programiranje I::Vježbe
http://student.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc indira@fit.ba
start
pogodak=7;
pokusaj
pokusaj==pogo
da ne
dak
Bravo,
pokusaj>pogod
pogodili da ne
ak
ste!!!
kraj
#include <iostream>
using namespace std;
int main()
{
int pogodak = 7;
int pokusaj;
cout << "Zamislio sam broj izmedju 1 i 10" << endl;
cout << " Pokusajte pogoditi o kojem broju je rijec "<<endl;
cin >> pokusaj;
if (pokusaj == pogodak)
cout <<"Nevjerojatno, pogodili ste" << endl;
else
{
if (pokusaj>pogodak)
cout <<"Zao mi je, niste pogodili. Unijeli ste prevelik broj";
else
cout<<"Zao mi je, niste pogodili. Unijeli ste premali broj"<<endl;
}
system ("PAUSE>null");
return 0;
5
Programiranje I::Vježbe
http://student.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc indira@fit.ba
U bloku neposredno iza ključne riječi else pojavljuje novi if-else iskaz.
Riječ je o tzv. ugniježđenom if-else iskazu, odnosno if-or-if-else formatu (strukturi).
Program je moguće još poboljšati. Naime, moguće je umjesto zadanog broj koji se
pogađa (int pogodak = 7;) koristiti funkciju koja generira „slučajni“ broj. Riječ je o
funkciji rand () iz biblioteke <cstdlib>. No, pri upotrebi funkcije rand () bez dodatnih
ograničenja funkcija će generirati „slučajni“ broj u intervalu od 1 do 32676. Riječ
„slučajni“ je pod navodnicima jer je zapravo riječ o generiranju broja po određenom
algoritmu. Dakle, dobiveni broj nije slučajan u pravom smislu te riječi, ali je moguće
dobiti dovoljan broj različitih brojeva prije nego se skvenca počne ponavljati.
Npr.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
int slucajni_broj = rand();
cout<<slucajni_broj<<endl;
return 0;
}
I ovako poboljšan program ima neke nedostatke. Svaki put kad se pokrene program
dobije se isti broj (ista vrijednost). Ukoliko želite da svaki put prilikom pokretanja
programa program generira različit broj, poželjno je povezati funkciju rand() sa
sistemskim vremenom, a za to je potrebna još jedna funkcija i još jedna biblioteka:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand((unsigned)time(0));
int slucajni_broj = rand()%10+1;
cout << slucajni_broj << endl;
return 0;
}
6
Programiranje I::Vježbe
http://student.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc indira@fit.ba
ZADATAK: Većina velikih svjetskih gradova redovito vrši mjerenja zagađenja zraka.
Očitavanja se vrše u 12:00 sati na tri različita mjesta u gradu. Prosječna vrijednost ova
tri očitanja se naziva indeks zagađenja. Napišite program za računanje indeksa
zagađenja, te ispišite odgovarajuće poruke. Vrijednost indeksa zagađenja veća ili jednaka
50 smatra se rizičnom, a vrijednost manja od 50 se smatra prihvatljivom.
Dizajn
Start
mjerenje1,
mjerenje2,
mjerenje3
indeks=(mjerenje1
+mjerenje2+mjere
nje3)/3
da ne
indeks>=50
Indeks
Indeks
zagađenja
zagađenja
je
je rizičan
prihvatljiv
kraj
7
Programiranje I::Vježbe
http://student.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc indira@fit.ba
Kod
// upotreba if-else iskaza
#include <iostream>
using namespace std;
int main()
{
float mjerenje1,mjerenje2,mjerenje3,indeks;
const int broj_mjerenja =3;
if (indeks>=50)
cout<<"Indeks zagadjenja je rizican i iznosi "<<indeks<<endl;
else
cout<<"Indeks zagadjenja se smatra prihvatljivim, a iznosi
"<<indeks<<endl;
system("pause>null");
return 0;
}
Dizajn
Start
masa,
visina
BMI=masa/visina2
da ne
(BMI>=20 )
&&
(BMI<=25)
ne
da BMI<20
Vasa masa
odgovoara
vasoj visini Pothranjeni Naginjete
ste gojaznosti
kraj
9
Programiranje I::Vježbe
http://student.fit.ba/
Fakultet informacijskih tehnologija
ProgramiranjeI_sylabus.doc
indira@fit.ba
Kod
// if-or-if-else format
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
float masa, visina, BMI;
BMI=masa/pow(visina,2);
if ((BMI>=20)&& (BMI<=25)) // u direktnom bloku se nalazi samo jedna naredba-nisu potrebne viticaste zagrade
cout<<"Vasa masa je u skladu s vasom visinom, a BMI iznosi "<<BMI<<endl;
else //u alterantivnom bloku se nalazi vise naredbi-potrebne viticaste zagrade
{
if (BMI<20)
cout<<"Pothranjeni ste "<<endl;
else
cout<<"Naginjete gojaznosti"<<endl;
}
system("pause");
return 0;
}
Programiranje I::Vježbe
http://student.fit.ba/