29. if-else u C++ — izvršavanje različitih naredbi u zavisnosti od uslova
U prethodnoj lekciji naučili smo kako se koristi uslovna naredba if u programskom jeziku C++. Videli smo da ona omogućava programu da proveri određeni uslov i izvrši deo koda samo kada je taj uslov tačan. Međutim, u stvarnim programima često nije dovoljno da reagujemo samo kada je uslov ispunjen. Potrebno je da program zna šta […]
20. октобар 2026.23 min čitanjaLekcija 29/30
Mala škola C++Lekcija 29 od 30
U prethodnoj lekciji naučili smo kako se koristi uslovna naredba if u programskom jeziku C++. Videli smo da ona omogućava programu da proveri određeni uslov i izvrši deo koda samo kada je taj uslov tačan.
Međutim, u stvarnim programima često nije dovoljno da reagujemo samo kada je uslov ispunjen. Potrebno je da program zna šta treba da uradi i kada uslov nije ispunjen.
Zamislimo aplikaciju koja proverava da li je student položio ispit. Ako student ima najmanje 51 poen, program treba da prikaže poruku „Položio“. Ako ima manje od 51 poena, treba da prikaže poruku „Nije položio“.
Slične situacije postoje u gotovo svim softverskim sistemima:
Bankomat odobrava ili odbija podizanje novca.
Internet prodavnica prihvata porudžbinu ili prijavljuje nedovoljnu količinu proizvoda.
Sistem za prijavljivanje odobrava ili odbija pristup.
Aplikacija proverava da li korisnik ima pravo na popust.
Program proverava da li je broj paran ili neparan.
Softver za evidenciju studenata određuje da li je ispit položen ili nije.
Za takve situacije koristimo uslovnu strukturu if-else.
U ovoj lekciji detaljno ćemo objasniti njenu sintaksu, način izvršavanja, razliku između if i if-else, kao i upotrebu više uslova pomoću konstrukcije else if.
Posebnu pažnju posvetićemo primerima koji se pojavljuju na fakultetskim kolokvijumima, praktičnim zadacima i čestim programerskim greškama.
Šta ćemo naučiti u ovoj lekciji?
Nakon završetka lekcije znaćete da:
Objasnite šta predstavlja struktura if-else.
Razlikujete jednostavni if od strukture if-else.
Razumete kada se izvršava grana if, a kada else.
Koristite if-else za proveru parnih i neparnih brojeva.
Upoređujete dva broja i određujete veći.
Koristite else if za izbor između više mogućnosti.
Pišete ugnježdene uslovne naredbe.
Kombinujete uslovne naredbe sa logičkim operatorima.
Prepoznate najčešće greške pri grananju programa.
Rešavate praktične i fakultetske zadatke.
1. Šta je if-else struktura?
Struktura if-else omogućava programu da izabere između dve različite grane izvršavanja.
Osnovno pravilo glasi:
Ako je uslov tačan, izvršava se if grana. U suprotnom, izvršava se else grana.
Na primer:
if (poeni >= 51) {
cout << "Student je polozio ispit.";
} else {
cout << "Student nije polozio ispit.";
}
Program proverava da li student ima najmanje 51 poen.
Ako je uslov tačan, ispisuje se poruka da je student položio ispit.
Ako uslov nije tačan, izvršava se deo koda iza ključne reči else.
Za razliku od jednostavne naredbe if, ovde postoji alternativna grana.
Razlika između if i if-else
Kod jednostavnog if uslova:
if (broj > 0) {
cout << "Broj je pozitivan.";
}
Ako broj nije pozitivan, program preskače blok i nastavlja dalje.
Kod if-else strukture:
if (broj > 0) {
cout << "Broj je pozitivan.";
} else {
cout << "Broj nije pozitivan.";
}
program izvršava jednu od dve grane.
Ako je broj 5, prikazaće se prva poruka.
Ako je broj -3 ili 0, prikazaće se druga poruka.
Obratite pažnju na nulu: ona nije pozitivan broj, pa je poruka „Broj nije pozitivan“ potpuno ispravna.
2. Osnovna sintaksa if-else naredbe
Opšti oblik:
if (uslov) {
// Naredbe ako je uslov tacan
} else {
// Naredbe ako je uslov netacan
}
Delovi strukture:
Element
Značenje
if
Početak uslovne provere
(uslov)
Logički izraz koji se proverava
Prvi { } blok
Naredbe koje se izvršavaju kada je uslov tačan
else
Alternativna grana
Drugi { } blok
Naredbe koje se izvršavaju kada je uslov netačan
Važno je zapamtiti da uz jedan if-else izbor program neće izvršiti obe grane.
Izvršiće se ili prva ili druga grana, u zavisnosti od rezultata uslova.
Prvi kompletan primer
#include <iostream>
using namespace std;
int main() {
int godine;
cout << "Unesite broj godina: ";
cin >> godine;
if (godine >= 18) {
cout << "Osoba je punoletna.";
} else {
cout << "Osoba je maloletna.";
}
return 0;
}
Primer izvršavanja:
Unesite broj godina: 22
Osoba je punoletna.
Drugi primer:
Unesite broj godina: 16
Osoba je maloletna.
Program koristi jedan uslov, ali ima dve moguće reakcije.
Za sada pretpostavljamo da je korisnik uneo ispravan broj godina. Kasnije ćemo dodati proveru ulaznih podataka.
3. Kako računar izvršava if-else?
Da bismo razumeli grananje, potrebno je da pratimo tok izvršavanja programa.
Posmatrajmo sledeći kod:
int broj = 10;
if (broj > 5) {
cout << "A";
} else {
cout << "B";
}
cout << "C";
Program prvo proverava:
broj > 5
Pošto je 10 veće od 5, uslov je tačan.
Izvršava se:
cout << "A";
Grana else se preskače.
Nakon toga program nastavlja izvršavanje i ispisuje slovo C.
Konačan rezultat:
AC
Šta ako je broj 3?
Ako promenimo:
int broj = 3;
uslov je netačan.
Izvršava se:
cout << "B";
Zatim se ispisuje C.
Rezultat:
BC
Dakle, naredbe nakon cele if-else strukture izvršavaju se normalno, bez obzira na to koja je grana prethodno izabrana, osim ako neka od njih ne prekine ili promeni tok izvršavanja programa.
4. Provera parnog i neparnog broja
Jedan od najčešćih početnih zadataka na fakultetu jeste određivanje da li je broj paran ili neparan.
Već znamo da operator modulo % vraća ostatak pri celobrojnom deljenju.
Ako broj pri deljenju sa 2 daje ostatak 0, broj je paran.
U suprotnom je neparan.
Kompletan program
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite ceo broj: ";
cin >> broj;
if (broj % 2 == 0) {
cout << "Broj je paran.";
} else {
cout << "Broj je neparan.";
}
return 0;
}
Primer 1:
Unesite ceo broj: 24
Broj je paran.
Primer 2:
Unesite ceo broj: 17
Broj je neparan.
Kako radi program?
Ako unesemo 24:
24 % 2 = 0
Uslov je tačan, pa se izvršava prva grana.
Ako unesemo 17:
Međutim, sa if-else struktrom jasnije pokazujemo da postoje dve međusobno isključive mogućnosti.
Takođe, ne moramo drugi put da proveravamo suprotan uslov.
5. Određivanje većeg od dva broja
Napisati program koji učitava dva cela broja i određuje koji je veći.
Za početak ćemo pretpostaviti da brojevi nisu jednaki.
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Unesite prvi broj: ";
cin >> a;
cout << "Unesite drugi broj: ";
cin >> b;
if (a > b) {
cout << "Veci broj je: " << a;
} else {
cout << "Veci broj je: " << b;
}
return 0;
}
Primer:
Unesite prvi broj: 25
Unesite drugi broj: 12
Veci broj je: 25
Šta ako su brojevi jednaki?
Ako unesemo:
10
10
uslov a > b je netačan, pa će se izvršiti grana else.
Program će prikazati:
Veci broj je: 10
Ovo nije precizno, jer su brojevi jednaki.
Potrebna nam je dodatna provera.
Upravo zato ćemo sada upoznati konstrukciju else if.
6. else if — izbor između više mogućnosti
Kada program treba da bira između više od dve mogućnosti, koristimo konstrukciju else if.
Opšti oblik:
if (uslov1) {
// Prva mogucnost
} else if (uslov2) {
// Druga mogucnost
} else {
// Sve ostale mogucnosti
}
Program proverava uslove redom.
Kada naiđe na prvi tačan uslov, izvršava odgovarajuću granu i preskače preostale grane u tom lancu.
Ako nijedan uslov nije tačan, izvršava se završna grana else, ako postoji.
Primer — pozitivan, negativan broj ili nula
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj > 0) {
cout << "Broj je pozitivan.";
} else if (broj < 0) {
cout << "Broj je negativan.";
} else {
cout << "Broj je jednak nuli.";
}
return 0;
}
Primeri:
Uneti broj
Rezultat
15
Broj je pozitivan.
-8
Broj je negativan.
0
Broj je jednak nuli.
Ovde imamo tri moguće grane, ali će se za jedan ispravno unet broj izvršiti samo jedna.
Ispravljeno poređenje dva broja
#include <iostream>
using namespace std;
int main() {
int a, b;
cout << "Unesite prvi broj: ";
cin >> a;
cout << "Unesite drugi broj: ";
cin >> b;
if (a > b) {
cout << "Veci broj je: " << a;
} else if (b > a) {
cout << "Veci broj je: " << b;
} else {
cout << "Brojevi su jednaki.";
}
return 0;
}
Sada program ispravno obrađuje sve tri situacije.
7. Redosled uslova u else if lancu
Redosled uslova može značajno uticati na rezultat.
Pogledajmo program koji određuje ocenu na osnovu osvojenih poena.
Pretpostavimo sledeću skalu:
Broj poena
Ocena
0–50
5 — nije položio
51–60
6
61–70
7
71–80
8
81–90
9
91–100
10
Kompletan program
#include <iostream>
using namespace std;
int main() {
int poeni;
cout << "Unesite broj poena (0-100): ";
cin >> poeni;
if (!cin || poeni < 0 || poeni > 100) {
cout << "Neispravan unos poena.";
return 1;
}
if (poeni >= 91) {
cout << "Ocena: 10";
} else if (poeni >= 81) {
cout << "Ocena: 9";
} else if (poeni >= 71) {
cout << "Ocena: 8";
} else if (poeni >= 61) {
cout << "Ocena: 7";
} else if (poeni >= 51) {
cout << "Ocena: 6";
} else {
cout << "Ocena: 5 - ispit nije polozen.";
}
return 0;
}
Primer izvršavanja
Unesite broj poena (0-100): 86
Ocena: 9
Zašto proveravamo od najvećeg broja poena?
Ako student ima 86 poena, uslov:
poeni >= 91
nije tačan.
Sledeći uslov:
poeni >= 81
jeste tačan.
Program ispisuje ocenu 9 i ne proverava preostale grane.
Student sa 95 poena dobio bi ocenu 6, jer je već prvi uslov tačan.
Zato je veoma važno da uslove postavimo odgovarajućim redosledom.
Napomena: ova skala ocenjivanja služi za vežbu i ne mora odgovarati pravilima svakog fakulteta.
8. Interaktivni primer — simulator ocenjivanja
Promenite broj poena i pogledajte kako program bira odgovarajuću granu if-else if-else strukture.
Broj osvojenih poena
75 / 100
Rezultat uslovnog grananja
8
Ispit je položen
Izabrana je grana za ocenu 8.
Provera uslova redom
if (poeni >= 91)
Netačno
else if (poeni >= 81)
Netačno
else if (poeni >= 71)
Izvršava se
else if (poeni >= 61)
Preskočeno
else if (poeni >= 51)
Preskočeno
else
Preskočeno
9. Ugnježdene if-else naredbe
Uslovne naredbe možemo postavljati jednu unutar druge.
Takvu strukturu nazivamo ugnježdena uslovna naredba.
Na primer, možemo proveriti da li je korisnik punoletan, a zatim da li poseduje dozvolu.
#include <iostream>
using namespace std;
int main() {
int godine;
int dozvola;
cout << "Unesite broj godina: ";
cin >> godine;
cout << "Imate li dozvolu (1-da, 0-ne): ";
cin >> dozvola;
if (godine >= 18) {
if (dozvola == 1) {
cout << "Pristup je dozvoljen.";
} else {
cout << "Nemate potrebnu dozvolu.";
}
} else {
cout << "Korisnik nije punoletan.";
}
return 0;
}
Kako radi program?
Prvo se proverava broj godina.
Ako korisnik ima najmanje 18 godina, program prelazi na unutrašnji if.
Zatim proverava da li korisnik ima dozvolu.
Ako je ima, pristup je dozvoljen.
Ako je nema, ispisuje se odgovarajuća poruka.
Ako korisnik nije punoletan, unutrašnji if se uopšte ne izvršava.
Da li ugnježđavanje može da se izbegne?
U mnogim slučajevima može.
Na primer:
if (godine >= 18 && dozvola == 1) {
cout << "Pristup je dozvoljen.";
}
Međutim, ovakav kod ne objašnjava korisniku zbog čega pristup nije dozvoljen.
Zato izbor između ugnježdenih uslova i složenog logičkog izraza zavisi od zahteva zadatka.
10. Logički operatori u if-else strukturama
Logički operatori omogućavaju kombinovanje više uslova.
Najčešće koristimo:
&& — logičko I.
|| — logičko ILI.
! — logička negacija.
Primer — broj u intervalu
Napisati program koji proverava da li je broj između 10 i 20, uključujući granice.
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj >= 10 && broj <= 20) {
cout << "Broj pripada intervalu.";
} else {
cout << "Broj ne pripada intervalu.";
}
return 0;
}
Primer — vikend ili radni dan
Pretpostavimo da brojevi od 1 do 7 predstavljaju dane u nedelji, pri čemu je 1 ponedeljak, a 7 nedelja.
#include <iostream>
using namespace std;
int main() {
int dan;
cout << "Unesite dan (1-7): ";
cin >> dan;
if (dan < 1 || dan > 7) {
cout << "Neispravan broj dana.";
} else if (dan == 6 || dan == 7) {
cout << "Vikend je.";
} else {
cout << "Radni dan.";
}
return 0;
}
Primer:
Unesite dan (1-7): 7
Vikend je.
Zašto prvo proveravamo neispravan unos?
Ako korisnik unese 9, taj broj ne predstavlja dan u nedelji.
Zato pre određivanja da li je vikend proveravamo da li je podatak u dozvoljenom opsegu.
Ovakav pristup predstavlja osnovu validacije korisničkog unosa.
11. Razlika između više nezavisnih if naredbi i else if lanca
Ova razlika je veoma važna za pravilno razumevanje toka programa.
Više nezavisnih if naredbi
int x = 15;
if (x > 0) {
cout << "A";
}
if (x > 10) {
cout << "B";
}
if (x > 20) {
cout << "C";
}
Rezultat:
AB
Zašto?
Zato što program proverava sva tri uslova nezavisno.
Prva dva su tačna, a treći nije.
else if lanac
int x = 15;
if (x > 0) {
cout << "A";
} else if (x > 10) {
cout << "B";
} else if (x > 20) {
cout << "C";
}
Rezultat:
A
Ovde se izvršava samo prva grana, jer je prvi uslov tačan.
Program neće proveravati naredne uslove u istom lancu.
Uporedna tabela
Osobina
Više if naredbi
if-else if lanac
Provera svakog uslova
Da
Samo dok se ne pronađe prvi tačan
Može se izvršiti više blokova
Da
Ne, najviše jedan
Pogodno za nezavisne provere
Da
Ne uvek
Pogodno za izbor jedne mogućnosti
Manje praktično
Da
Ovo je česta tema na kolokvijumima, posebno u zadacima u kojima treba predvideti izlaz programa.
12. Problem „visećeg else“ — dangling else
U C++ jeziku postoji pravilo koje određuje kojem if uslovu pripada else.
Kada nema vitičastih zagrada, else se povezuje sa najbližim prethodnim if koji još nema svoju else granu.
Pogledajmo:
int a = 10;
int b = 5;
if (a > 0)
if (b > 10)
cout << "A";
else
cout << "B";
Na prvi pogled neko može pomisliti da else pripada spoljašnjem if.
Međutim, on pripada unutrašnjem uslovu:
if (b > 10)
Pošto je b jednako 5, ispisuje se:
B
Kako izbeći zabunu?
Koristite vitičaste zagrade.
if (a > 0) {
if (b > 10) {
cout << "A";
} else {
cout << "B";
}
}
Sada je struktura jasna.
Ako želimo da else pripada spoljašnjem if, pišemo:
if (a > 0) {
if (b > 10) {
cout << "A";
}
} else {
cout << "B";
}
Vitičaste zagrade nisu samo pitanje estetike. One sprečavaju logičke greške.
13. Tipični fakultetski zadaci
Zadatak 1 — veći od dva broja
Napisati program koji određuje veći od dva uneta broja ili prijavljuje da su jednaki.
#include <iostream>
using namespace std;
int main() {
int a, b;
cin >> a >> b;
if (a > b) {
cout << a;
} else if (b > a) {
cout << b;
} else {
cout << "Jednaki";
}
return 0;
}
Zadatak 2 — apsolutna vrednost broja
Apsolutna vrednost predstavlja udaljenost broja od nule.
Za negativan broj menjamo znak, a za nenegativan broj vrednost ostaje ista.
Godina je prestupna ako je deljiva sa 400 ili ako je deljiva sa 4, ali nije deljiva sa 100.
#include <iostream>
using namespace std;
int main() {
int godina;
cout << "Unesite godinu: ";
cin >> godina;
if (godina <= 0) {
cout << "Unesite pozitivnu godinu.";
return 1;
}
if ((godina % 400 == 0) ||
(godina % 4 == 0 && godina % 100 != 0)) {
cout << "Godina je prestupna.";
} else {
cout << "Godina nije prestupna.";
}
return 0;
}
Primeri:
Godina
Rezultat
2024
Prestupna
2025
Nije prestupna
1900
Nije prestupna
2000
Prestupna
Ovo je čest fakultetski zadatak jer zahteva pravilno kombinovanje više logičkih i aritmetičkih operatora.
Zadatak 4 — određivanje najvećeg od tri broja
#include <iostream>
using namespace std;
int main() {
int a, b, c;
cout << "Unesite tri broja: ";
cin >> a >> b >> c;
if (a >= b && a >= c) {
cout << "Najveca vrednost je: " << a;
} else if (b >= a && b >= c) {
cout << "Najveca vrednost je: " << b;
} else {
cout << "Najveca vrednost je: " << c;
}
return 0;
}
Ovaj program radi i kada su neki brojevi jednaki, jer traži najveću vrednost, a ne nužno jedinstveni najveći broj.
Zadatak 5 — jednostavan kalkulator
Napraviti program koji učitava dva broja i znak operacije.
Dozvoljene operacije su +, -, * i /.
#include <iostream>
using namespace std;
int main() {
double a, b;
char operacija;
cout << "Unesite prvi broj: ";
cin >> a;
cout << "Unesite operaciju (+, -, *, /): ";
cin >> operacija;
cout << "Unesite drugi broj: ";
cin >> b;
if (!cin) {
cout << "Neispravan unos.";
return 1;
}
if (operacija == '+') {
cout << "Rezultat: " << a + b;
} else if (operacija == '-') {
cout << "Rezultat: " << a - b;
} else if (operacija == '*') {
cout << "Rezultat: " << a * b;
} else if (operacija == '/') {
if (b != 0) {
cout << "Rezultat: " << a / b;
} else {
cout << "Greska: deljenje nulom.";
}
} else {
cout << "Nepoznata operacija.";
}
return 0;
}
Primer:
Unesite prvi broj: 20
Unesite operaciju (+, -, *, /): /
Unesite drugi broj: 4
Rezultat: 5
Ovaj zadatak kombinuje operatore, uslove, korisnički unos i ugnježđene if-else naredbe.
14. Praktični projekat — obračun popusta u prodavnici
Napravimo mali program koji obračunava popust u zavisnosti od vrednosti kupovine.
Pretpostavimo sledeća pravila:
jeste tačan.
Program dodeljuje popust od 10% i preskače preostale grane.
Zašto je redosled važan?
Ako bismo prvo proveravali:
iznos >= 3000
kupac sa 15.000 dinara dobio bi samo 5% popusta.
Zato uslove proveravamo od najvećeg praga ka najmanjem.
Napomena: ovaj primer koristi double radi jednostavnosti. Za precizne finansijske obračune u produkcionom softveru bolje je koristiti odgovarajuću decimalnu aritmetiku ili celobrojne iznose u najmanjim novčanim jedinicama.
15. Najčešće greške početnika
Greška 1 — tačka-zarez posle if
Pogrešno:
if (broj > 0);
{
cout << "Pozitivan broj.";
}
Tačka-zarez završava praznu naredbu povezanu sa if, a blok ispod se izvršava nezavisno od uslova.
Ispravno:
Student sa 95 poena dobio bi ocenu 6.
Potrebno je prvo proveravati viši prag ili koristiti jasno definisane intervale.
Greška 5 — pogrešno shvatanje nezavisnih uslova
if (x > 0) {
cout << "A";
}
if (x > 10) {
cout << "B";
}
Ako je x = 15, izvršiće se oba bloka.
To nije isto što i if-else if lanac.
Greška 6 — zaboravljena završna grana else
Završna grana else nije obavezna.
Međutim, ako zadatak zahteva obradu svih mogućih slučajeva, treba proveriti da li je pokriven i slučaj kada nijedan prethodni uslov nije tačan.
Greška 7 — deljenje nulom
Kod kalkulatora moramo proveriti da li je delilac jednak nuli.
if (b != 0) {
cout << a / b;
} else {
cout << "Deljenje nulom nije dozvoljeno.";
}
Greška 8 — previše ugnježdenih uslova
Duboko ugnježđavanje otežava čitanje i održavanje programa.
Kada je moguće, koristite else if lanac, logičke operatore ili pomoćne promenljive sa smislenim nazivima.
16. Kako pravilno rešavati ispitne zadatke?
Prilikom rešavanja zadataka sa if-else strukturama preporučuje se sledeći postupak:
Odredite ulazne podatke.
Identifikujte sve moguće ishode.
Proverite da li su ishodi međusobno isključivi.
Definišite uslove za svaki ishod.
Odredite odgovarajući redosled provere.
Napišite if, else if i else grane.
Proverite granične vrednosti.
Testirajte program sa različitim podacima.
Na primer, za zadatak sa ocenjivanjem studenata obavezno testirajte:
0
50
51
60
61
90
91
100
Ove vrednosti pomažu da proverite da li ste ispravno postavili granice intervala.
Posebno je važno razlikovati operatore:
>
>=
<
<=
Jedan pogrešan znak jednakosti može dovesti do pogrešne ocene ili pogrešnog rezultata.
17. Zaključak
U ovoj lekciji naučili smo kako program u C++ jeziku može da izabere između dve ili više mogućnosti.
Najvažnije je zapamtiti:
if izvršava naredbe kada je uslov tačan.
else predstavlja alternativu kada je uslov netačan.
if-else omogućava izbor između dve grane.
else if omogućava proveru više različitih uslova.
U jednom if-else if-else lancu izvršava se najviše jedna grana.
Više nezavisnih if naredbi može izvršiti više različitih blokova.
Vitičaste zagrade poboljšavaju čitljivost i sprečavaju greške.
Provera graničnih vrednosti važna je za ispravnost programa.
Struktura if-else predstavlja jedan od osnovnih mehanizama upravljanja tokom izvršavanja programa. Koristi se u gotovo svim oblastima razvoja softvera — od jednostavnih kalkulatora do velikih poslovnih informacionih sistema.
18. Mini-test — proverite svoje znanje
Pokušajte da odgovorite bez pokretanja programa.
Pitanje 1. Čemu služi else?
a) Za ponavljanje naredbi.
b) Za izvršavanje alternativne grane kada uslov nije tačan.
c) Za deklaraciju promenljive.
Pitanje 2. Šta će ispisati program?
int x = 10;
if (x > 5) {
cout << "A";
} else {
cout << "B";
}
a) A
b) B
c) AB
Pitanje 3. Šta će ispisati program?
int x = 3;
if (x > 5) {
cout << "A";
} else {
cout << "B";
}
a) A
b) B
c) Ništa.
Pitanje 4. Koliko grana jednog if-else if-else lanca može biti izvršeno pri jednom prolasku?
a) Sve.
b) Najviše jedna.
c) Uvek dve.
Pitanje 5. Šta će ispisati program?
int x = 15;
if (x > 0) {
cout << "A";
}
if (x > 10) {
cout << "B";
}
a) A
b) B
c) AB
Pitanje 6. Koja konstrukcija je najpogodnija za izbor jedne od više mogućnosti?
a) if-else if-else
b) Samo cout
c) Samo deklaracija promenljivih.
Pitanje 7. Šta će ispisati program?
int x = 0;
if (x > 0) {
cout << "Pozitivan";
} else if (x < 0) {
cout << "Negativan";
} else {
cout << "Nula";
}
a) Pozitivan
b) Negativan
c) Nula
Pitanje 8. Šta je problem u sledećem kodu?
a) Nema problema.
b) Redosled uslova je pogrešan.
c) Nedostaje cin.
Pitanje 9. Kojem if uslovu pripada else kada nema vitičastih zagrada?
a) Uvek prvom.
b) Najbližem prethodnom if koji nema svoju else granu.
c) Nijednom.
Pitanje 10. Koji uslov ispravno proverava prestupnu godinu?
a) godina % 4 == 0
b) godina % 100 == 0
c) godina % 400 == 0 || (godina % 4 == 0 && godina % 100 != 0)
Rešenja mini-testa
Proverite odgovore nakon što završite test.
Pitanje
Tačan odgovor
1
b — else predstavlja alternativnu granu.
2
a — Uslov 10 > 5 je tačan.
3
b — Uslov 3 > 5 je netačan, pa se izvršava else.
4
b — Izvršava se najviše jedna grana lanca.
5
c — Oba nezavisna if uslova su tačna.
6
a — else if omogućava izbor između više mogućnosti.
7
c — Broj je jednak nuli.
8
b — Prvo se mora proveriti viši prag ili precizan interval.
9
b — else se vezuje za najbliži odgovarajući if.
10
c — To je pravilna provera prestupne godine u gregorijanskom kalendaru.
19. Zadaci za samostalnu vežbu
Zadatak 1 — paran ili neparan broj
Napisati program koji učitava ceo broj i određuje da li je paran ili neparan.
Zadatak 2 — pozitivan, negativan ili nula
Napisati program koji učitava broj i određuje kojoj kategoriji pripada.
Zadatak 3 — veći od dva broja
Napisati program koji učitava dva broja i prikazuje veći ili poruku da su jednaki.
Zadatak 4 — najveći od tri broja
Napisati program koji određuje najveću vrednost među tri uneta broja.
Zadatak 5 — ocena na ispitu
Napisati program koji na osnovu broja poena određuje ocenu od 5 do 10.
Zadatak 6 — popust
Napisati program koji određuje popust od 5%, 10% ili 15% u zavisnosti od vrednosti kupovine.
Zadatak 7 — prestupna godina
Napisati program koji proverava da li je uneta godina prestupna.
Zadatak 8 — jednostavan kalkulator
Napisati program koji podržava sabiranje, oduzimanje, množenje i deljenje pomoću if-else if-else konstrukcije.
Zadatak 9 — provera trougla
Učitati tri pozitivne dužine stranica i proveriti da li mogu predstavljati stranice trougla.
Uslov je da zbir bilo koje dve stranice bude veći od treće.
Zadatak 10 — obračun poštarine
Napisati program koji određuje poštarinu prema vrednosti porudžbine:
Ispod 2.000 RSD — 450 RSD.
Od 2.000 do manje od 5.000 RSD — 250 RSD.
Od 5.000 RSD naviše — besplatna dostava.
Program treba da prikaže ukupnu cenu porudžbine sa dostavom.
20. Domaći zadatak — sistem za obračun zarade
Napraviti C++ program koji izračunava bonus zaposlenog na osnovu ostvarenog mesečnog učinka.
Pretpostavimo sledeća pravila:
Dodatni izazov: omogućiti unos broja godina radnog staža i dodati poseban bonus od 3% osnovne zarade zaposlenima sa najmanje 10 godina staža.
Napomena: pravila obračuna su izmišljena za potrebe vežbe i ne predstavljaju stvarni obračun zarade prema propisima.
Najava naredne lekcije
U sledećoj lekciji nastavljamo sa uslovnim strukturama, ali prelazimo na način izbora koji je posebno pogodan kada jednu promenljivu upoređujemo sa više unapred poznatih vrednosti.
Tema 30 — switch-case u C++: izbor između više mogućnosti
Naučićemo kako funkcioniše naredba switch, čemu služe case, break i default, kako se razlikuje od if-else strukture i kada je bolje koristiti jednu, a kada drugu.
U prethodnim lekcijama našeg serijala „Mala škola programiranja — C++“ naučili smo kako program donosi odluke pomoću naredbi if, if-else i else if. Videli…
Do sada smo u našem serijalu „Mala škola programiranja — C++“ naučili kako da definišemo promenljive, unosimo i ispisujemo podatke, koristimo različite tipove podataka,…
U prethodnim lekcijama upoznali smo aritmetičke operatore, operatore poređenja, logičke operatore, operatore dodele, kao i inkrement i dekrement. Naučili smo kako da sabiramo i…
Koristimo neophodne kolačiće da bi sajt i forme za upit ispravno radili, a uz vašu dozvolu i opcionalne kolačiće za analitiku, personalizaciju i marketing. Saznajte više.
PRIVATNOST
Podešavanja kolačića
Izaberite koje opcionalne kategorije dozvoljavate. Neophodni kolačići su uvek aktivni jer su potrebni za rad sajta, slanje upita i bezbednost.
NeophodniOmogućavaju osnovne funkcije sajta i zaštitu formi i ne mogu se isključiti.
FunkcionalniPamte vaša podešavanja, kao što su izabrani jezik prevoda i svetla ili tamna tema.
AnalitičkiPomažu nam da razumemo posećenost i način korišćenja sajta.
MarketinškiKoriste se za merenje kampanja i relevantnije oglase.