28. Uslovna naredba if u C++ — donošenje odluka u programu
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, obavljamo matematičke operacije i upoređujemo vrednosti. U prethodnoj lekciji detaljno smo obradili prioritet operatora i redosled evaluacije izraza. Sada prelazimo na jednu od najvažnijih oblasti programiranja — donošenje odluka na osnovu […]
20. октобар 2026.22 min čitanjaLekcija 28/30
Mala škola C++Lekcija 28 od 30
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, obavljamo matematičke operacije i upoređujemo vrednosti.
U prethodnoj lekciji detaljno smo obradili prioritet operatora i redosled evaluacije izraza. Sada prelazimo na jednu od najvažnijih oblasti programiranja — donošenje odluka na osnovu određenih uslova.
Zamislimo program koji treba da utvrdi da li je student položio ispit. Student unosi broj osvojenih poena, a program proverava da li je dostigao potreban minimum.
Ili aplikaciju za internet prodavnicu koja proverava da li kupac ima dovoljno sredstava da izvrši plaćanje.
Slične situacije srećemo svakodnevno:
Bankomat proverava da li korisnik ima dovoljno novca za podizanje gotovine.
Program za evidenciju zaposlenih proverava da li je radnik punoletan.
Softver za prodaju proverava da li proizvod postoji na zalihama.
Sistem za prijavljivanje proverava da li su korisnički podaci ispravni.
Aplikacija za rezervacije proverava da li ima slobodnih mesta.
Program za obradu rezultata ispita proverava da li je student ostvario dovoljan broj poena.
U svim ovim primerima računar treba da izvrši određenu naredbu samo ako je neki uslov ispunjen.
Za takve situacije u C++ jeziku koristimo uslovnu naredbu if.
U ovoj lekciji naučićemo kako funkcioniše naredba if, kako se formiraju uslovi, šta se dešava kada je uslov tačan ili netačan i kako da izbegnemo najčešće greške.
Posebno ćemo obraditi tipične fakultetske zadatke, praktične primere i jedan mali projekat.
Šta ćemo naučiti u ovoj lekciji?
Nakon završetka lekcije znaćete da:
Objasnite šta predstavlja uslovna naredba if.
Razumete kako program donosi odluku.
Koristite relacione operatore unutar uslova.
Razlikujete tačan i netačan uslov.
Pišete jednostavne programe sa naredbom if.
Koristite vitičaste zagrade za grupisanje naredbi.
Kombinujete if sa logičkim operatorima.
Proveravate pozitivne, negativne i parne brojeve.
Proveravate da li broj pripada određenom intervalu.
Razumete najčešće greške pri pisanju uslova.
Samostalno rešavate osnovne zadatke sa uslovnom naredbom.
1. Šta je uslovna naredba if?
Uslovna naredba if omogućava programu da proveri određeni uslov i na osnovu rezultata odluči da li će izvršiti određeni deo koda.
Reč if na engleskom jeziku znači „ako“.
Osnovna ideja je jednostavna:
Ako je uslov ispunjen, izvrši određenu naredbu.
Na primer:
Ako student ima najmanje 51 poen, prikaži poruku da je položio ispit.
U programskom jeziku C++ to možemo napisati ovako:
if (poeni >= 51) {
cout << "Student je polozio ispit.";
}
Program proverava vrednost promenljive poeni.
Ako je broj poena veći ili jednak 51, uslov je tačan i izvršava se naredba za ispis poruke.
Ako student ima manje od 51 poena, uslov je netačan i naredba unutar if bloka se preskače.
Važno je razumeti da if ne zaustavlja program kada je uslov netačan. Program jednostavno nastavlja izvršavanje od prve naredbe koja dolazi posle if bloka.
2. Osnovna sintaksa naredbe if
Opšti oblik naredbe je:
if (uslov) {
// Naredbe koje se izvrsavaju
// ako je uslov tacan
}
Pogledajmo njene delove.
Deo
Značenje
if
Ključna reč za uslovnu naredbu
(uslov)
Izraz čija se logička vrednost proverava
{
Početak bloka naredbi
Naredbe
Kod koji se izvršava ako je uslov tačan
}
Kraj bloka naredbi
Uslov se navodi između običnih zagrada ().
Naredbe koje treba izvršiti kada je uslov ispunjen najčešće se nalaze između vitičastih zagrada {}.
Prvi kompletan primer
#include <iostream>
using namespace std;
int main() {
int godine = 20;
if (godine >= 18) {
cout << "Osoba je punoletna.";
}
return 0;
}
Rezultat:
Osoba je punoletna.
Kako program radi?
Prvo definišemo promenljivu:
int godine = 20;
Zatim proveravamo uslov:
godine >= 18
Pošto je 20 veće od 18, uslov je tačan.
Zato se izvršava:
cout << "Osoba je punoletna.";
Šta ako promenimo vrednost?
Ako napišemo:
int godine = 16;
uslov godine >= 18 neće biti ispunjen.
Program neće ispisati poruku iz if bloka.
Pošto u ovom primeru nemamo druge naredbe za ispis, program će se završiti bez prikazivanja poruke.
To je potpuno očekivano ponašanje.
3. Kako program proverava uslov?
U C++ jeziku uslov u naredbi if predstavlja izraz koji se može protumačiti kao logička vrednost.
Logičke vrednosti su:
true
false
Ako je uslov tačan (true), izvršava se telo naredbe if.
Ako je uslov netačan (false), telo se preskače.
Pogledajmo:
#include <iostream>
using namespace std;
int main() {
bool uslov = true;
if (uslov) {
cout << "Uslov je tacan.";
}
return 0;
}
Rezultat:
Uslov je tacan.
Ako promenimo:
bool uslov = false;
poruka se neće prikazati.
Uslov može biti i poređenje
U praksi se najčešće koriste izrazi poput:
broj > 0
broj < 100
broj == 10
broj != 0
godine >= 18
poeni <= 100
Svaki od ovih izraza daje logički rezultat.
4. Relacioni operatori u uslovnoj naredbi
Relacioni operatori omogućavaju poređenje dve vrednosti.
U prethodnim lekcijama već smo ih upoznali, a sada ćemo videti njihovu praktičnu primenu.
Operator
Značenje
Primer
==
Jednako
a == b
!=
Različito
a != b
>
Veće
a > b
<
Manje
a < b
>=
Veće ili jednako
a >= b
<=
Manje ili jednako
a <= b
Primer — provera da li je broj veći od 10
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj > 10) {
cout << "Broj je veci od 10.";
}
return 0;
}
Primer izvršavanja:
Unesite broj: 15
Broj je veci od 10.
Ako korisnik unese 8, uslov nije ispunjen i poruka se neće prikazati.
Primer — provera jednakosti
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj == 100) {
cout << "Uneli ste broj 100.";
}
return 0;
}
Ovde koristimo operator ==.
Veoma je važno da ne pomešamo operator poređenja == sa operatorom dodele =.
5. Razlika između = i == u uslovima
Ovo je jedna od najčešćih grešaka početnika.
Operator:
=
služi za dodelu vrednosti.
Operator:
==
služi za proveru jednakosti.
Pogledajmo primer:
int broj = 5;
Ova naredba promenljivoj broj dodeljuje vrednost 5.
Sa druge strane:
broj == 5
predstavlja izraz koji proverava da li promenljiva broj ima vrednost 5.
Pogrešan primer
int broj = 10;
if (broj = 5) {
cout << "Broj je pet.";
}
Ovaj kod je sintaksno dozvoljen za promenljivu tipa int, ali najverovatnije ne radi ono što programer želi.
Uslov:
broj = 5
dodeljuje vrednost 5 promenljivoj broj.
Rezultat dodele zatim se koristi kao uslov. Pošto je 5 različito od nule, uslov se smatra tačnim.
Zato se poruka ispisuje.
Ispravan primer
int broj = 10;
if (broj == 5) {
cout << "Broj je pet.";
}
Sada se zaista proverava jednakost.
Pošto 10 nije jednako 5, poruka se neće ispisati.
Pravilo za pamćenje: Jedno = dodeljuje vrednost, a dva znaka == proveravaju jednakost.
6. Provera pozitivnog broja
Jedan od najčešćih početnih zadataka na fakultetu jeste provera da li je broj pozitivan.
Pozitivan broj je svaki broj veći od nule.
Matematički:
[ x > 0 ]
Kompletan program
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite ceo broj: ";
cin >> broj;
if (broj > 0) {
cout << "Broj je pozitivan.";
}
return 0;
}
Primer:
Unesite ceo broj: 25
Broj je pozitivan.
Ako korisnik unese -5 ili 0, uslov neće biti ispunjen.
Važno je zapamtiti da nula nije pozitivan broj.
Provera negativnog broja
Za negativne brojeve koristimo:
if (broj < 0) {
cout << "Broj je negativan.";
}
Provera nule
if (broj == 0) {
cout << "Broj je jednak nuli.";
}
Ova tri uslova možemo koristiti i u jednom programu.
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj > 0) {
cout << "Broj je pozitivan." << endl;
}
if (broj < 0) {
cout << "Broj je negativan." << endl;
}
if (broj == 0) {
cout << "Broj je jednak nuli." << endl;
}
return 0;
}
Ovde imamo tri nezavisne if naredbe.
Program proverava svaki uslov redom. Za ispravno unet ceo broj tačan će biti samo jedan od ova tri uslova.
Kasnije ćemo naučiti kako isti problem možemo rešiti pomoću if-else strukture.
7. Provera parnog i neparnog broja
Da bismo proverili da li je broj paran, koristićemo operator modulo %, koji smo detaljno obradili u prethodnim lekcijama.
Paran broj pri deljenju sa 2 daje ostatak 0.
Uslov je:
broj % 2 == 0
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.";
}
return 0;
}
Primer:
Unesite ceo broj: 24
Broj je paran.
Provera neparnog broja
Neparan broj daje ostatak različit od nule.
if (broj % 2 != 0) {
cout << "Broj je neparan.";
}
Ovaj uslov radi i za negativne neparne brojeve.
Program koji proverava obe mogućnosti
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite ceo broj: ";
cin >> broj;
if (broj % 2 == 0) {
cout << "Broj je paran." << endl;
}
if (broj % 2 != 0) {
cout << "Broj je neparan." << endl;
}
return 0;
}
Ovo je jednostavan primer povezivanja aritmetičkih operatora, operatora poređenja i uslovne naredbe.
8. Vitičaste zagrade i blok naredbi
U C++ jeziku if može da upravlja jednom naredbom bez vitičastih zagrada.
Na primer:
if (broj > 0)
cout << "Broj je pozitivan.";
Ovaj zapis je ispravan.
Međutim, ako želimo da izvršimo više naredbi kada je uslov tačan, potrebno je da ih grupišemo u blok pomoću vitičastih zagrada.
if (broj > 0) {
cout << "Broj je pozitivan." << endl;
cout << "Uslov je ispunjen." << endl;
}
Šta se dešava ako zaboravimo zagrade?
Pogledajmo:
if (broj > 0)
cout << "Broj je pozitivan." << endl;
cout << "Provera je zavrsena." << endl;
Ovde samo prva naredba zavisi od uslova.
Druga naredba izvršava se u svakom slučaju.
To znači da program može ispisati:
Provera je zavrsena.
čak i kada broj nije pozitivan.
Preporuka
Iako C++ dozvoljava if bez vitičastih zagrada za jednu naredbu, početnicima preporučujemo da ih uvek koriste.
Na taj način kod postaje pregledniji i smanjuje se mogućnost grešaka prilikom kasnijih izmena.
9. Više naredbi unutar jednog if bloka
Uslovna naredba može sadržati više operacija.
Na primer, možemo proveriti da li je broj pozitivan, izračunati njegov kvadrat i prikazati rezultat.
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj > 0) {
int kvadrat = broj * broj;
cout << "Broj je pozitivan." << endl;
cout << "Kvadrat broja je: "
<< kvadrat << endl;
}
cout << "Kraj programa.";
return 0;
}
Primer:
Unesite broj: 6
Broj je pozitivan.
Kvadrat broja je: 36
Kraj programa.
Ako korisnik unese -3, program će preskočiti blok za izračunavanje kvadrata i ispisati samo:
Kraj programa.
Opseg promenljivih
Obratite pažnju na promenljivu:
int kvadrat = broj * broj;
Ona je deklarisana unutar if bloka.
Zato je dostupna samo unutar tog bloka.
Ako pokušamo da je koristimo nakon zatvaranja vitičaste zagrade, kompajler će prijaviti grešku.
Ovo pravilo povezano je sa opsegom važenja promenljivih, koji smo već obrađivali u prethodnim lekcijama.
10. Kombinovanje uslova pomoću logičkih operatora
U mnogim situacijama nije dovoljno proveriti samo jedan uslov.
Na primer, za pristup određenoj usluzi korisnik mora da ima najmanje 18 godina i da poseduje odgovarajuću dozvolu.
Za takve situacije koristimo logičke operatore.
Logičko I — &&
Operator && daje tačan rezultat samo kada su oba uslova tačna.
if (godine >= 18 && imaDozvolu) {
cout << "Pristup je dozvoljen.";
}
Kompletan primer
#include <iostream>
using namespace std;
int main() {
int godine;
int dozvola;
cout << "Unesite broj godina: ";
cin >> godine;
cout << "Da li imate dozvolu (1-da, 0-ne): ";
cin >> dozvola;
if (godine >= 18 && dozvola == 1) {
cout << "Pristup je dozvoljen.";
}
return 0;
}
Primer:
Unesite broj godina: 22
Da li imate dozvolu (1-da, 0-ne): 1
Pristup je dozvoljen.
Logičko ILI — ||
Operator || daje tačan rezultat kada je najmanje jedan od uslova tačan.
Primer:
if (dan == 6 || dan == 7) {
cout << "Vikend je.";
}
Ako promenljiva dan ima vrednost 6 ili 7, poruka će se prikazati.
Logička negacija — !
Operator ! menja logičku vrednost uslova.
bool prijavljen = false;
if (!prijavljen) {
cout << "Korisnik nije prijavljen.";
}
Pošto je prijavljen netačno, izraz !prijavljen je tačan.
11. Provera da li broj pripada intervalu
Jedan od najčešćih zadataka na ispitima jeste provera da li se broj nalazi između dve granice.
Na primer, potrebno je proveriti da li se broj nalazi u intervalu od 10 do 20, uključujući obe granice.
Matematički:
[ 10 leq x leq 20 ]
U C++ jeziku ne možemo direktno koristiti isti lančani zapis.
Pogrešno:
if (10 <= x <= 20) {
cout << "Broj je u intervalu.";
}
Ovaj izraz neće ispravno proveriti interval, jer se poređenja grupišu sleva nadesno.
Ispravno je:
if (x >= 10 && x <= 20) {
cout << "Broj je u intervalu.";
}
Kompletan program
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj >= 10 && broj <= 20) {
cout << "Broj pripada intervalu [10, 20].";
}
return 0;
}
Primer:
Unesite broj: 15
Broj pripada intervalu [10, 20].
Otvoreni i zatvoreni intervali
Interval
C++ uslov
Od 10 do 20, uključujući granice
x >= 10 && x <= 20
Između 10 i 20, bez granica
x > 10 && x < 20
Veće od 10, do 20 uključujući 20
x > 10 && x <= 20
Od 10 uključujući 10, manje od 20
x >= 10 && x < 20
Ovakve provere veoma su česte u zadacima koji se odnose na godine starosti, ocene, cene, temperature i ograničenja različitih sistema.
12. Interaktivni primer — kako funkcioniše if?
Pomoću sledećeg simulatora možete proveriti kako se naredba if ponaša kada se promeni vrednost promenljive.
C++ uslov
if (broj > 0)
Uslov je tačan (true)
Naredbe unutar if bloka će se izvršiti.
Za proveru parnosti koriste se celi brojevi. Simulator služi za razumevanje osnovne logike naredbe if.
13. Ugnježdene if naredbe
Jedna if naredba može se nalaziti unutar druge.
To nazivamo ugnježđavanje uslovnih naredbi.
Na primer, prvo možemo proveriti da li je korisnik punoletan, a zatim da li ima dozvolu.
#include <iostream>
using namespace std;
int main() {
int godine;
int dozvola;
cout << "Unesite broj godina: ";
cin >> godine;
cout << "Da li imate dozvolu (1-da, 0-ne): ";
cin >> dozvola;
if (godine >= 18) {
if (dozvola == 1) {
cout << "Pristup je dozvoljen.";
}
}
return 0;
}
U ovom programu druga if naredba proverava se samo ako je prvi uslov tačan.
Ako korisnik nema najmanje 18 godina, program neće ni doći do provere dozvole.
Kada koristiti ugnježdene uslove?
Ugnježdene uslove koristimo kada jedna provera ima smisla tek nakon što je ispunjen prethodni uslov.
Ipak, ne treba preterivati sa ugnježđavanjem. Kada postoji veliki broj nivoa, kod može postati nepregledan.
U mnogim situacijama jednostavnije je koristiti jedan složen uslov sa operatorom &&.
14. Tipični fakultetski zadaci
Zadatak 1 — provera punoletstva
Napisati program koji učitava broj godina i ispisuje poruku ako je osoba punoletna.
#include <iostream>
using namespace std;
int main() {
int godine;
cout << "Unesite godine: ";
cin >> godine;
if (godine >= 18) {
cout << "Osoba je punoletna.";
}
return 0;
}
Zadatak 2 — broj deljiv sa 5
Napisati program koji proverava da li je broj deljiv sa 5.
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj % 5 == 0) {
cout << "Broj je deljiv sa 5.";
}
return 0;
}
Zadatak 3 — broj deljiv sa 3 i 5
#include <iostream>
using namespace std;
int main() {
int broj;
cout << "Unesite broj: ";
cin >> broj;
if (broj % 3 == 0 && broj % 5 == 0) {
cout << "Broj je deljiv sa 3 i 5.";
}
return 0;
}
Za unos 15 uslov je tačan.
Za unos 9 uslov nije tačan, jer broj 9 nije deljiv sa 5.
Zadatak 4 — provera položenog ispita
Napisati program koji proverava da li student ima najmanje 51 poen.
#include <iostream>
using namespace std;
int main() {
int poeni;
cout << "Unesite broj poena: ";
cin >> poeni;
if (poeni >= 51 && poeni <= 100) {
cout << "Student je polozio ispit.";
}
return 0;
}
U ovom primeru proveravamo i gornju granicu od 100 poena.
Time sprečavamo da vrednost poput 150 bude prihvaćena kao validan broj poena za ispit sa maksimalno 100 poena.
Zadatak 5 — provera temperature
Napisati program koji ispisuje upozorenje ako je temperatura ispod nule.
#include <iostream>
using namespace std;
int main() {
double temperatura;
cout << "Unesite temperaturu: ";
cin >> temperatura;
if (temperatura < 0) {
cout << "Upozorenje: temperatura je ispod nule!";
}
return 0;
}
Zadatak 6 — najveći od dva broja
Napisati program koji učitava dva broja i ispisuje veći broj.
#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;
}
if (b > a) {
cout << "Veci broj je: " << b;
}
if (a == b) {
cout << "Brojevi su jednaki.";
}
return 0;
}
Ovaj primer pokazuje da isti problem možemo rešiti pomoću više nezavisnih uslovnih naredbi.
U narednoj lekciji videćemo kako to možemo napisati elegantnije pomoću if-else i else if konstrukcija.
15. Praktični projekat — provera uslova za popust
Napravimo jednostavan program koji proverava da li kupac ispunjava uslove za ostvarivanje popusta.
Pretpostavimo da prodavnica odobrava popust od 10% kupcima čija je vrednost kupovine najmanje 5.000 dinara.
Program treba da:
Ovaj projekat pokazuje kako se uslovne naredbe koriste u stvarnim poslovnim aplikacijama.
Napomena: tip double je ovde pogodan za edukativni primer. U finansijskim aplikacijama koje zahtevaju tačno računanje novčanih iznosa često se koriste celobrojne vrednosti u najmanjim novčanim jedinicama ili namenski decimalni tipovi.
16. Najčešće greške početnika
Greška 1 — korišćenje = umesto ==
Pogrešno:
if (broj = 10)
Ispravno:
if (broj == 10)
Greška 2 — tačka-zarez odmah posle if
Pogrešno:
if (broj > 0);
{
cout << "Broj je pozitivan.";
}
Tačka-zarez završava praznu naredbu koja pripada if uslovu.
Blok ispod se zato izvršava nezavisno od uslova.
Ispravno:
if (broj > 0) {
cout << "Broj je pozitivan.";
}
Greška 3 — pogrešno zapisivanje intervala
Pogrešno:
if (10 < broj < 20)
Ispravno:
if (broj > 10 && broj < 20)
Greška 4 — zaboravljene vitičaste zagrade
if (broj > 0)
cout << "Pozitivan broj.";
cout << "Uslov je ispunjen.";
Samo prva naredba pripada if uslovu.
Uvlačenje drugog reda ne menja strukturu programa.
Greška 5 — pogrešan logički operator
Ako želimo da proverimo da li je broj veći od 10 i manji od 20, koristimo:
broj > 10 && broj < 20
Ne koristimo ||, jer bi to predstavljalo drugačiji uslov.
Greška 6 — očekivanje da if obavezno ispisuje poruku
Ako uslov nije tačan, telo naredbe se preskače.
U jednostavnom programu sa samo jednim if blokom moguće je da se ništa ne ispiše.
To ne mora značiti da program ima grešku.
Promenljiva broj nema dodeljenu početnu vrednost.
Potrebno je da je inicijalizujemo ili da učitamo vrednost pre poređenja.
Greška 8 — neproveravanje korisničkog unosa
Ako očekujemo broj, a korisnik unese tekst, cin može preći u stanje greške.
Zato je u ozbiljnijim programima preporučljivo proveriti uspešnost unosa.
int broj;
if (!(cin >> broj)) {
cout << "Neispravan unos.";
return 1;
}
17. Kako pravilno rešavati ispitne zadatke sa if naredbom?
Kada dobijete zadatak koji zahteva proveru nekog uslova, preporučujemo sledeći postupak:
Pažljivo pročitajte tekst zadatka.
Odredite koje podatke program treba da učita.
Definišite odgovarajuće promenljive.
Matematički zapišite uslov koji treba proveriti.
Prevedite uslov u C++ izraz.
Napišite if naredbu.
Unutar bloka napišite operacije koje treba izvršiti.
Proverite ponašanje programa za više različitih ulaznih vrednosti.
Posebno testirajte granične slučajeve.
Ako zadatak zahteva proveru punoletstva, nemojte testirati samo vrednosti 20 i 15.
Proverite i vrednost 18, jer ona predstavlja granicu uslova.
Kod intervala od 10 do 20 proverite vrednosti 9, 10, 15, 20 i 21.
Na taj način možete otkriti greške u izboru operatora <, <=, > ili >=.
18. Zaključak
U ovoj lekciji naučili smo kako C++ program može da donosi odluke pomoću uslovne naredbe if.
Najvažnije je zapamtiti:
if proverava određeni uslov.
Ako je uslov tačan, izvršava se telo naredbe.
Ako je uslov netačan, telo se preskače.
Uslovi najčešće koriste relacione i logičke operatore.
Operator == proverava jednakost, dok = dodeljuje vrednost.
Vitičaste zagrade omogućavaju grupisanje više naredbi.
Operator && zahteva da oba uslova budu tačna.
Operator || zahteva da najmanje jedan uslov bude tačan.
Ugnježdene if naredbe omogućavaju dodatne provere.
Granične vrednosti posebno su važne prilikom testiranja programa.
Uslovna naredba if predstavlja jedan od osnovnih mehanizama upravljanja tokom programa. Bez nje bi programi izvršavali gotovo uvek iste operacije, bez mogućnosti da prilagode ponašanje različitim situacijama.
U narednim lekcijama ovo znanje proširićemo složenijim uslovnim strukturama.
19. Mini-test — proverite svoje znanje
Pokušajte da odgovorite bez pokretanja programa.
Pitanje 1. Čemu služi naredba if?
a) Za ponavljanje naredbi.
b) Za izvršavanje naredbi kada je uslov tačan.
c) Za deklarisanje promenljivih.
Pitanje 2. Šta će ispisati program?
int x = 10;
if (x > 5) {
cout << "DA";
}
a) DA
b) NE
c) Ništa.
Pitanje 3. Koji operator proverava jednakost?
a) =
b) ==
c) !=
Pitanje 4. Šta će ispisati program?
int x = 3;
if (x > 5) {
cout << "DA";
}
a) DA
b) NE
c) Ništa.
Pitanje 5. Koji uslov proverava da li je broj paran?
a) broj % 2 == 0
b) broj / 2 == 0
c) broj % 2 == 1
Pitanje 6. Koji uslov proverava da li je broj između 10 i 20, uključujući granice?
a) 10 <= broj <= 20
b) broj >= 10 && broj <= 20
c) broj >= 10 || broj <= 20
Pitanje 7. Šta će ispisati program?
int x = 5;
if (x == 5) {
cout << "A";
}
cout << "B";
a) A
b) B
c) AB
Pitanje 8. Šta se dešava kada je uslov netačan?
a) Program se automatski završava.
b) Telo if naredbe se preskače.
c) Program prijavljuje grešku.
Pitanje 9. Šta je problem u sledećem kodu?
if (x > 0);
{
cout << "Pozitivan.";
}
a) Nema problema.
b) Tačka-zarez završava praznu naredbu uz if.
c) Nedostaje operator ==.
Pitanje 10. Koji uslov proverava da li je broj deljiv i sa 3 i sa 5?
a) broj % 3 == 0 || broj % 5 == 0
b) broj % 3 == 0 && broj % 5 == 0
c) broj / 3 == 5
Rešenja mini-testa
Proverite odgovore nakon što završite test.
Pitanje
Tačan odgovor
1
b — if izvršava određeni kod kada je uslov tačan.
2
a — 10 je veće od 5.
3
b — Operator == proverava jednakost.
4
c — Uslov je netačan i nema ispisa.
5
a — Paran broj daje ostatak 0 pri deljenju sa 2.
6
b — Potrebna su oba uslova, povezana sa &&.
7
c — Prvo se ispisuje A, a zatim B.
8
b — Telo naredbe se preskače.
9
b — Tačka-zarez završava praznu naredbu, pa blok nije uslovljen.
10
b — Oba uslova deljivosti moraju biti tačna.
20. Zadaci za samostalnu vežbu
Zadatak 1 — pozitivan broj
Napisati program koji učitava ceo broj i ispisuje poruku ako je broj pozitivan.
Zadatak 2 — negativan broj
Napisati program koji proverava da li je uneti broj negativan.
Zadatak 3 — paran broj
Napisati program koji proverava da li je broj paran.
Zadatak 4 — deljivost sa 7
Napisati program koji proverava da li je broj deljiv sa 7.
Zadatak 5 — punoletstvo
Napisati program koji učitava broj godina i proverava da li je osoba punoletna.
Zadatak 6 — interval
Napisati program koji proverava da li se broj nalazi u intervalu od 50 do 100, uključujući granice.
Zadatak 7 — najveći od dva broja
Napisati program koji učitava dva broja i ispisuje veći broj. Ako su brojevi jednaki, ispisati odgovarajuću poruku.
Zadatak 8 — provera ocene
Napisati program koji proverava da li je uneta ocena između 6 i 10.
Zadatak 9 — provera popusta
Napisati program koji odobrava popust od 15% ako je vrednost kupovine veća od 10.000 dinara.
Zadatak 10 — složeni uslov
Napisati program koji proverava da li je broj pozitivan, paran i manji od 100.
21. Domaći zadatak — sistem za proveru uslova za stipendiju
Napraviti C++ program koji proverava da li student ispunjava osnovne uslove za dobijanje stipendije prema sledećim pravilima zadatka.
Student ispunjava uslove ako:
Dodatni izazov: proširiti program tako da prikazuje koji pojedinačni uslovi nisu ispunjeni.
Napomena: navedeni kriterijumi su izmišljeni za potrebe vežbe i ne predstavljaju zvanične uslove za bilo koju konkretnu stipendiju.
Najava naredne lekcije
U sledećoj lekciji nastavljamo sa uslovnim naredbama.
Tema 29 — if-else u C++: izvršavanje različitih naredbi u zavisnosti od uslova
Naučićemo kako program može da izabere između dve mogućnosti, kako funkcioniše grana else i kako da pišemo preglednije programe koji obrađuju i tačne i netačne uslove.
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…
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…
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.