Više o Roster Softu
Sve usluge
Sva gotova rešenja
Svi članci

23. Operatori poređenja u C++ (==, !=, >, <, >=, <=)

Do sada smo naučili kako da kreiramo promenljive, čuvamo podatke, koristimo različite tipove podataka i izvršavamo matematičke operacije. U prethodnim lekcijama upoznali smo aritmetičke operatore, uključujući operator modulo (%), koji nam omogućava da proveravamo deljivost brojeva i rešavamo različite matematičke zadatke. Međutim, programiranje nije samo računanje. Jedna od najvažnijih sposobnosti svakog programa jeste da upoređuje […]

Mala škola C++Lekcija 23 od 23

Do sada smo naučili kako da kreiramo promenljive, čuvamo podatke, koristimo različite tipove podataka i izvršavamo matematičke operacije. U prethodnim lekcijama upoznali smo aritmetičke operatore, uključujući operator modulo (%), koji nam omogućava da proveravamo deljivost brojeva i rešavamo različite matematičke zadatke.

Međutim, programiranje nije samo računanje. Jedna od najvažnijih sposobnosti svakog programa jeste da upoređuje podatke i na osnovu rezultata donosi odluke.

Zamislimo nekoliko svakodnevnih situacija:

  • Bankomat proverava da li na računu postoji dovoljno novca za isplatu.

  • Internet prodavnica proverava da li je proizvod dostupan.

  • Fakultetski informacioni sistem proverava da li student ima dovoljno poena da položi ispit.

  • Aplikacija proverava da li je korisnik uneo ispravnu lozinku.

  • Video-igra proverava da li je igrač ostao bez života.

Sve ove situacije imaju nešto zajedničko: potrebno je uporediti dve vrednosti i utvrditi da li je određeni uslov ispunjen.

Upravo za to koristimo operatore poređenja.

Ova lekcija je posebno važna jer predstavlja osnovu za razumevanje if, else, switch i drugih konstrukcija koje ćemo detaljnije obrađivati u narednim lekcijama.

Šta ćemo naučiti u ovoj lekciji?

Nakon završetka lekcije znaćete da:

  • Objasnite šta su operatori poređenja i čemu služe.

  • Koristite svih šest osnovnih operatora poređenja u C++ jeziku.

  • Razlikujete operator dodele = od operatora jednakosti ==.

  • Razumete zašto je rezultat poređenja tipa bool.

  • Poredite cele i decimalne brojeve, karaktere i tekst.

  • Kombinujete poređenja sa promenljivama i korisničkim unosom.

  • Prepoznate najčešće logičke i sintaksne greške.

  • Samostalno rešavate tipične početničke i fakultetske zadatke.

1. Šta su operatori poređenja?

Operator poređenja je simbol koji omogućava programu da uporedi dve vrednosti.

Rezultat svakog poređenja je logička vrednost:

true

ili

false

Odnosno:

  • true — uslov je tačan.

  • false — uslov nije tačan.

Pogledajmo jednostavan primer:

5 > 3

Ovaj izraz postavlja pitanje:

Da li je broj 5 veći od broja 3?

Odgovor je potvrdan, pa rezultat izraza ima vrednost true.

Drugi primer:

10 < 4

Da li je 10 manje od 4?

Nije, pa je rezultat false.

Važno je razumeti da operator poređenja ne menja vrednosti koje upoređuje. On samo proverava odnos između njih.

 

2. Šest osnovnih operatora poređenja

C++ poseduje šest osnovnih operatora poređenja.

Operator Značenje Primer Rezultat
== Jednako 5 == 5 true
!= Nije jednako 5 != 3 true
> Veće od 8 > 4 true
< Manje od 3 < 2 false
>= Veće ili jednako 7 >= 7 true
<= Manje ili jednako 4 <= 2 false

Svaki od ovih operatora ima svoju namenu. Hajde da ih detaljno objasnimo kroz konkretne primere.

3. Operator jednakosti (==)

Operator == koristi se kada želimo da proverimo da li su dve vrednosti jednake.

Primer:

int a = 10;
int b = 10;

bool rezultat = (a == b);

Pošto obe promenljive imaju vrednost 10, rezultat je true.

Kompletan program:

#include <iostream>
using namespace std;

int main() {
    int a = 10;
    int b = 10;

    cout << (a == b);

    return 0;
}

Rezultat:

1

Zašto program ispisuje 1, a ne true?

Zato što cout podrazumevano prikazuje logičku vrednost true kao 1, a false kao 0.

Ako želimo da prikažemo reči true i false, koristimo boolalpha:

cout << boolalpha << (a == b);

Rezultat:

true

Praktična primena — provera PIN koda

Zamislimo program koji proverava da li je korisnik uneo odgovarajući PIN.

#include <iostream>
using namespace std;

int main() {
    int tacanPin = 1234;
    int unetiPin;

    cout << "Unesite PIN: ";
    cin >> unetiPin;

    bool ispravan = (unetiPin == tacanPin);

    cout << boolalpha;
    cout << "PIN je ispravan: " << ispravan;

    return 0;
}

Ako korisnik unese 1234, rezultat je:

PIN je ispravan: true

Ako unese 4321, rezultat je:

PIN je ispravan: false

Ovo je pojednostavljen edukativni primer. Prave aplikacije ne bi trebalo da čuvaju PIN kodove kao obične brojeve direktno u izvornom kodu.

4. Razlika između = i ==

Ovo je jedna od najvažnijih razlika u C++ programiranju i čest izvor grešaka kod početnika.

Operator = služi za dodelu vrednosti.

int broj = 10;

Operator == služi za poređenje vrednosti.

broj == 10

Pogledajmo primer:

int broj = 5;

broj = 10;

Nakon izvršavanja druge linije, promenljiva broj ima vrednost 10.

Ali ako napišemo:

bool rezultat = (broj == 10);

program samo proverava da li je vrednost promenljive jednaka broju 10.

Ne menja njenu vrednost.

Opasna početnička greška

int broj = 5;

if (broj = 10) {
    cout << "Uslov je ispunjen";
}

Ovaj program može da se kompajlira, ali ne radi ono što početnik očekuje.

Izraz broj = 10 dodeljuje vrednost 10 promenljivoj broj. Zatim se ta vrednost tumači kao logička vrednost true, pa se telo if naredbe izvršava.

Ispravno:

if (broj == 10) {
    cout << "Uslov je ispunjen";
}

Zapamtite: jedan znak jednakosti dodeljuje vrednost, a dva znaka jednakosti proveravaju jednakost.

5. Operator nejednakosti (!=)

Operator != proverava da li su dve vrednosti različite.

Primer:

int a = 5;
int b = 8;

cout << (a != b);

Rezultat:

1

Pošto 5 nije jednako 8, poređenje je tačno.

Ako napišemo:

int a = 5;
int b = 5;

cout << (a != b);

rezultat će biti:

0

Primer — provera pogrešnog odgovora

#include <iostream>
using namespace std;

int main() {
    int tacanOdgovor = 25;
    int odgovor;

    cout << "Koliko je 5 * 5? ";
    cin >> odgovor;

    if (odgovor != tacanOdgovor) {
        cout << "Odgovor nije tacan.";
    }

    return 0;
}

Operator != je veoma koristan kada proveravamo da li je nešto pogrešno, promenjeno ili različito od očekivane vrednosti.

6. Operator veće od (>)

Operator > proverava da li je leva vrednost veća od desne.

Primer:

int a = 15;
int b = 10;

cout << (a > b);

Rezultat:

1

Praktičan primer — poređenje rezultata dva studenta

#include <iostream>
using namespace std;

int main() {
    int poeniAna = 85;
    int poeniMarko = 72;

    bool anaImaVise = (poeniAna > poeniMarko);

    cout << boolalpha;
    cout << "Ana ima vise poena: " << anaImaVise;

    return 0;
}

Rezultat:

Ana ima vise poena: true

Ovakva poređenja se koriste u rangiranju, analizi rezultata, statistici i poslovnim aplikacijama.

7. Operator manje od (<)

Operator < proverava da li je leva vrednost manja od desne.

Primer:

int temperatura = 12;

cout << (temperatura < 15);

Rezultat:

1

Pošto je 12 manje od 15, uslov je tačan.

Praktičan primer — stanje proizvoda

#include <iostream>
using namespace std;

int main() {
    int stanje = 4;
    int minimalnoStanje = 10;

    bool potrebnoNarucivanje = (stanje < minimalnoStanje);

    cout << boolalpha;
    cout << "Potrebno narucivanje: "
         << potrebnoNarucivanje;

    return 0;
}

Rezultat:

Potrebno narucivanje: true

Ovo je pojednostavljen primer poslovnog pravila koje se može koristiti u softveru za vođenje magacina.

8. Operator veće ili jednako (>=)

Operator >= proverava da li je leva vrednost veća od desne ili joj je jednaka.

Primer:

int godine = 18;

cout << (godine >= 18);

Rezultat:

1

Zašto?

Zato što je 18 jednako 18, a operator >= prihvata i jednakost.

Primer — uslov za polaganje ispita

Pretpostavimo da je za prolaz potrebno najmanje 51 poen.

#include <iostream>
using namespace std;

int main() {
    int poeni;

    cout << "Unesite broj poena: ";
    cin >> poeni;

    bool polozio = (poeni >= 51);

    cout << boolalpha;
    cout << "Student je polozio: " << polozio;

    return 0;
}

Ako student ima 51 poen, uslov je ispunjen.

Ako ima 50 poena, nije.

Razlika između > i >= može potpuno promeniti rezultat programa.

9. Operator manje ili jednako (<=)

Operator <= proverava da li je leva vrednost manja od desne ili joj je jednaka.

Primer:

int brojPokusaja = 3;

cout << (brojPokusaja <= 3);

Rezultat:

1

Praktičan primer — ograničenje broja pokušaja

#include <iostream>
using namespace std;

int main() {
    int brojPokusaja = 2;
    int maksimalnoPokusaja = 3;

    bool dozvoljenPokusaj =
        (brojPokusaja < maksimalnoPokusaja);

    cout << boolalpha;
    cout << "Dozvoljen novi pokusaj: "
         << dozvoljenPokusaj;

    return 0;
}

Ovde pretpostavljamo da promenljiva brojPokusaja predstavlja broj već iskorišćenih pokušaja.

Zato koristimo <, a ne <=: ako su već iskorišćena sva tri pokušaja, novi pokušaj ne treba dozvoliti.

Ovaj primer pokazuje da nije dovoljno poznavati simbol operatora. Moramo razumeti i poslovnu logiku zadatka.

10. Rezultat poređenja je uvek bool

Već smo naučili da tip bool može imati dve vrednosti:

true
false

Svi osnovni operatori poređenja vraćaju upravo takav rezultat.

Primer:

int a = 10;
int b = 20;

bool rezultat1 = (a < b);
bool rezultat2 = (a > b);
bool rezultat3 = (a == b);

Vrednosti su:

rezultat1 = true
rezultat2 = false
rezultat3 = false

Možemo ih ispisati:

cout << boolalpha;

cout << rezultat1 << endl;
cout << rezultat2 << endl;
cout << rezultat3 << endl;

Rezultat:

true
false
false

Ovo je važna veza između tipova podataka i logičkog odlučivanja.

11. Poređenje različitih numeričkih tipova

C++ dozvoljava poređenje različitih numeričkih tipova.

Primer:

int a = 10;
double b = 10.0;

cout << (a == b);

Rezultat:

1

U ovom slučaju obe vrednosti predstavljaju isti broj.

Međutim, kod decimalnih brojeva postoji važna zamka.

Problem preciznosti decimalnih brojeva

Pogledajmo sledeći primer:

#include <iostream>
using namespace std;

int main() {
    double a = 0.1 + 0.2;
    double b = 0.3;

    cout << boolalpha;
    cout << (a == b);

    return 0;
}

Na uobičajenim sistemima koji koriste IEEE 754 aritmetiku rezultat je:

false

Matematički, 0.1 + 0.2 jednako je 0.3.

Ali računar mnoge decimalne brojeve ne može potpuno precizno da predstavi u binarnom obliku.

Zbog toga se pojavljuju veoma male razlike.

Kako se porede decimalni brojevi?

Kada želimo da proverimo da li su dve decimalne vrednosti dovoljno bliske, možemo koristiti toleranciju.

#include <iostream>
#include <cmath>
using namespace std;

int main() {
    double a = 0.1 + 0.2;
    double b = 0.3;

    double tolerancija = 0.000001;

    bool jednaki =
        abs(a - b) < tolerancija;

    cout << boolalpha << jednaki;

    return 0;
}

Rezultat:

true

Funkcija abs() iz biblioteke <cmath> ovde računa apsolutnu vrednost razlike.

Toleranciju treba birati u skladu sa problemom. Kod veoma velikih ili veoma malih vrednosti često je potrebno koristiti i relativnu toleranciju.

12. Poređenje karaktera

Operatori poređenja mogu se koristiti i sa tipom char.

Primer:

char a = 'A';
char b = 'B';

cout << (a < b);

Rezultat:

1

U ASCII kodiranju:

'A' = 65
'B' = 66

Pošto je 65 manje od 66, rezultat je tačan.

Velika i mala slova

char veliko = 'A';
char malo = 'a';

cout << (veliko == malo);

Rezultat:

0

Veliko i malo slovo nisu isti karakter.

Na sistemima sa ASCII-kompatibilnim kodiranjem njihovi numerički kodovi su različiti.

Ovo je posebno važno kod obrade korisničkog unosa, pretrage i poređenja tekstualnih podataka.

13. Poređenje stringova

C++ omogućava i poređenje tekstualnih vrednosti tipa std::string.

Primer:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string ime1 = "Marko";
    string ime2 = "Marko";

    cout << boolalpha;
    cout << (ime1 == ime2);

    return 0;
}

Rezultat:

true

Ako napišemo:

string ime1 = "Marko";
string ime2 = "marko";

rezultat poređenja jednakosti biće:

false

Zato što se razlikuju velika i mala slova.

Poređenje redosleda stringova

Možemo koristiti i operatore < i >:

string a = "Ana";
string b = "Marko";

cout << (a < b);

Za ove vrednosti rezultat je 1.

Važno: std::string poredi tekst leksikografski, prema vrednostima karaktera u korišćenom kodiranju. To nije isto što i jezičko sortiranje prema pravilima srpske abecede.

14. Operatori poređenja i if naredba

Do sada smo često rezultate poređenja čuvali u promenljivama tipa bool.

Međutim, operatori poređenja svoju najveću primenu imaju u uslovnim naredbama.

Jedna od njih je:

if

Ona omogućava da program izvrši određeni deo koda samo kada je uslov ispunjen.

Primer:

#include <iostream>
using namespace std;

int main() {
    int broj;

    cout << "Unesite broj: ";
    cin >> broj;

    if (broj > 0) {
        cout << "Broj je pozitivan.";
    }

    return 0;
}

Ako korisnik unese 15, program ispisuje:

Broj je pozitivan.

Ako unese -5, uslov nije ispunjen i poruka se neće prikazati.

U narednim lekcijama detaljno ćemo proučavati uslovne naredbe. Za sada je važno da razumemo kako poređenje proizvodi logički rezultat koji if koristi.

15. Tipični fakultetski zadaci

Sada ćemo rešiti nekoliko zadataka koji se često pojavljuju na početnim vežbama iz programiranja.

Zadatak 1 — Uporediti dva broja

Napisati program koji učitava dva cela broja i ispisuje da li je prvi veći od drugog.

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cout << "Unesite prvi broj: ";
    cin >> a;

    cout << "Unesite drugi broj: ";
    cin >> b;

    bool prviJeVeci = (a > b);

    cout << boolalpha;
    cout << "Prvi broj je veci: "
         << prviJeVeci;

    return 0;
}

Primer izvršavanja:

Unesite prvi broj: 25
Unesite drugi broj: 18
Prvi broj je veci: true

Zadatak 2 — Provera jednakosti

Napisati program koji proverava da li su dva uneta broja jednaka.

#include <iostream>
using namespace std;

int main() {
    int a, b;

    cout << "Unesite dva broja: ";
    cin >> a >> b;

    cout << boolalpha;
    cout << "Brojevi su jednaki: "
         << (a == b);

    return 0;
}

Zadatak 3 — Provera punoletstva

Napisati program koji učitava broj godina i proverava da li osoba ima najmanje 18 godina.

#include <iostream>
using namespace std;

int main() {
    int godine;

    cout << "Unesite godine: ";
    cin >> godine;

    bool punoletan = (godine >= 18);

    cout << boolalpha;
    cout << "Punoletan: " << punoletan;

    return 0;
}

Razmislite: zašto ovde koristimo >=, a ne >?

Zato što osoba sa tačno 18 godina ispunjava postavljeni uslov.

Zadatak 4 — Provera opsega poena

Student može ostvariti od 0 do 100 poena.

Napisati program koji proverava da li je uneta vrednost u dozvoljenom opsegu.

#include <iostream>
using namespace std;

int main() {
    int poeni;

    cout << "Unesite broj poena: ";
    cin >> poeni;

    bool ispravno = (poeni >= 0 && poeni <= 100);

    cout << boolalpha;
    cout << "Ispravan unos: " << ispravno;

    return 0;
}

Ovde smo upotrebili operator &&, koji znači logičko I.

Oba uslova moraju biti tačna:

  • broj poena mora biti najmanje 0,

  • broj poena ne sme biti veći od 100.

Logičke operatore ćemo posebno detaljno obrađivati u narednim lekcijama.

Zadatak 5 — Poređenje tri broja

Napisati program koji učitava tri broja i proverava da li je prvi broj veći od preostala dva.

#include <iostream>
using namespace std;

int main() {
    int a, b, c;

    cout << "Unesite tri broja: ";
    cin >> a >> b >> c;

    bool prviNajveci = (a > b && a > c);

    cout << boolalpha;
    cout << "Prvi broj je strogo najveci: "
         << prviNajveci;

    return 0;
}

Ako su vrednosti:

15 10 8

rezultat je:

Prvi broj je strogo najveci: true

Ako su vrednosti:

15 15 8

rezultat je false, jer prvi broj nije strogo veći od drugog.

16. Redosled izvršavanja operatora

U C++ jeziku različiti operatori imaju različit prioritet.

Pogledajmo primer:

int a = 5;
int b = 3;

bool rezultat = (a + b > 7);

Program prvo računa:

5 + 3 = 8

Zatim proverava:

8 > 7

Rezultat je:

true

Aritmetički operator + ima veći prioritet od operatora >.

Među operatorima poređenja postoji još jedna važna razlika: operatori <, >, <= i >= imaju veći prioritet od == i !=.

Zato je dobra praksa da složenije izraze pišemo sa zagradama radi čitljivosti.

Posebno važna greška — lančana poređenja

Početnici često pokušavaju da matematički zapis prenesu direktno u C++.

Na primer:

0 < broj < 100

U matematici ovaj zapis ima jasno značenje.

Ali u C++ ne funkcioniše na očekivani način.

Izraz se tumači kao:

(0 < broj) < 100

Prvo poređenje vraća true ili false, odnosno vrednost koja se u narednom poređenju pretvara u 1 ili 0.

Zbog toga će ovaj izraz biti tačan čak i za mnoge brojeve koji nisu u željenom opsegu.

Ispravno je:

broj > 0 && broj < 100

Ova greška je posebno česta na testovima i praktičnim vežbama.

17. Najčešće greške početnika

Greška 1 — Mešanje dodele i poređenja

Pogrešno:

if (broj = 5)

Ispravno:

if (broj == 5)

Greška 2 — Pogrešan izbor operatora

Ako želimo da proverimo da li student ima najmanje 51 poen:

Pogrešno:

poeni > 51

Ispravno:

poeni >= 51

Prvi izraz ne prihvata tačno 51 poen.

Greška 3 — Poređenje decimalnih brojeva bez razumevanja preciznosti

double a = 0.1 + 0.2;
double b = 0.3;

cout << (a == b);

Rezultat može biti neočekivan zbog načina predstavljanja decimalnih brojeva.

Greška 4 — Pogrešno lančano poređenje

Pogrešno:

10 < broj < 20

Ispravno:

broj > 10 && broj < 20

Greška 5 — Mešanje char i broja

char znak = '5';

cout << (znak == 5);

Rezultat je 0 na ASCII-kompatibilnim sistemima, jer karakter '5' ima numerički kod 53, a ne 5.

Greška 6 — Pogrešno razumevanje granica

broj < 10

ne uključuje broj 10.

broj <= 10

uključuje broj 10.

Ova razlika je veoma važna kod validacije, petlji i rada sa nizovima.

18. Praktični projekat — sistem za proveru rezultata ispita

Za kraj praktičnog dela napravićemo mali program koji proverava rezultat studenta.

Program treba da:

  1. Učita ime studenta.

  2. Učita broj ostvarenih poena.

  3. Proveri da li je broj poena u dozvoljenom opsegu.

  4. Proveri da li je student položio ispit.

  5. Proveri da li je ostvario maksimalan broj poena.

  6. Prikaže rezultate.

#include <iostream>
#include <string>
using namespace std;

int main() {
    string ime;
    int poeni;

    cout << "Ime studenta: ";
    getline(cin, ime);

    cout << "Broj poena (0-100): ";
    cin >> poeni;

    if (!cin) {
        cout << "Greska: morate uneti ceo broj.";
        return 1;
    }

    bool ispravanUnos = (poeni >= 0 && poeni <= 100);

    if (!ispravanUnos) {
        cout << "Greska: broj poena mora biti od 0 do 100.";
        return 1;
    }

    bool polozio = (poeni >= 51);
    bool maksimalanRezultat = (poeni == 100);
    bool nijePolozio = (poeni < 51);

    cout << "\n--- REZULTAT ISPITA ---\n";
    cout << "Student: " << ime << endl;
    cout << "Poeni: " << poeni << endl;

    cout << boolalpha;
    cout << "Polozio: " << polozio << endl;
    cout << "Nije polozio: " << nijePolozio << endl;
    cout << "Maksimalan rezultat: "
         << maksimalanRezultat << endl;

    return 0;
}

Primer izvršavanja:

Ime studenta: Marko Petrovic
Broj poena (0-100): 87

--- REZULTAT ISPITA ---
Student: Marko Petrovic
Poeni: 87
Polozio: true
Nije polozio: false
Maksimalan rezultat: false

Ovaj program već povezuje nekoliko prethodno naučenih oblasti: promenljive, tipove podataka, unos i ispis, logičke vrednosti i operatore poređenja.

Takođe koristi jednostavne uslovne naredbe i logičke operatore, koje ćemo detaljnije proučavati u nastavku serijala.

19. Gde se operatori poređenja koriste u stvarnim aplikacijama?

Operatori poređenja prisutni su praktično u svakom ozbiljnom softverskom sistemu.

Bankarski softver

bool dovoljnoSredstava = (stanje >= iznosIsplate);

Program proverava da li postoji dovoljno sredstava za zahtevanu isplatu.

Internet prodavnica

bool dostupno = (stanjeMagacina > 0);

Program proverava dostupnost proizvoda.

Školski informacioni sistem

bool polozio = (poeni >= 51);

Program proverava rezultat ispita.

Video-igra

bool krajIgre = (zivoti == 0);

Program proverava da li je igrač ostao bez života.

Sistem za kontrolu temperature

bool alarm = (temperatura > maksimalnaTemperatura);

Program proverava da li je izmerena temperatura prešla dozvoljenu granicu.

U svim ovim primerima operator poređenja predstavlja osnovu za donošenje odluke.

20. Zaključak

U ovoj lekciji naučili smo kako C++ upoređuje vrednosti i kako rezultati poređenja omogućavaju programu da donosi odluke.

Upoznali smo šest osnovnih operatora:

Operator Značenje
== Jednako
!= Različito
> Veće
< Manje
>= Veće ili jednako
<= Manje ili jednako

Najvažnije je zapamtiti da rezultat poređenja ima tip bool, odnosno vrednost true ili false.

Takođe smo naučili da pogrešan izbor operatora može promeniti logiku programa, čak i kada se kod uspešno kompajlira.

Dobro programiranje ne znači samo napisati kod koji radi, već napisati kod koji pravilno proverava uslove i daje očekivane rezultate u svim predviđenim situacijama.

Operatori poređenja su temelj uslovnih naredbi, logičkih izraza, validacije podataka i algoritama odlučivanja.

21. Mini-test — proverite svoje znanje

Pokušajte da odgovorite bez pokretanja programa.

Pitanje 1. Koji operator proverava jednakost dve vrednosti?

a) =

b) ==

c) !=

Pitanje 2. Šta će ispisati sledeći kod?

int a = 10;
int b = 5;

cout << (a > b);

a) 0

b) 1

c) 10

Pitanje 3. Šta znači operator !=?

a) Dodela vrednosti

b) Veće ili jednako

c) Nije jednako

Pitanje 4. Koji izraz proverava da li student ima najmanje 51 poen?

a) poeni > 51

b) poeni >= 51

c) poeni == 51

Pitanje 5. Šta će biti rezultat?

int x = 7;

cout << boolalpha << (x == 10);

a) true

b) false

c) 7

Pitanje 6. Da li su sledeći izrazi jednaki?

broj > 10
broj >= 10

a) Da

b) Ne

Pitanje 7. Šta će ispisati program?

int a = 5;
int b = 5;

cout << (a != b);

a) 0

b) 1

c) 5

Pitanje 8. Koji izraz ispravno proverava da li je broj strogo između 10 i 20?

a) 10 < broj < 20

b) broj > 10 && broj < 20

c) broj == 10 && broj == 20

Pitanje 9. Koji tip podataka predstavlja rezultat poređenja?

a) int

b) double

c) bool

Pitanje 10. Šta je rezultat sledećeg poređenja?

char a = 'A';
char b = 'a';

cout << (a == b);

a) 1

b) 0

c) Greška pri kompajliranju

22. Zadaci za samostalnu vežbu

Zadatak 1 — Veći broj

Napisati program koji učitava dva cela broja i proverava da li je prvi veći od drugog.

Zadatak 2 — Jednakost brojeva

Napisati program koji učitava dva broja i ispisuje da li su jednaki.

Zadatak 3 — Punoletstvo

Napisati program koji učitava broj godina i proverava da li osoba ima najmanje 18 godina.

Zadatak 4 — Pozitivan, negativan ili nula

Napisati program koji učitava jedan broj i proverava tri uslova: da li je pozitivan, negativan ili jednak nuli.

Zadatak 5 — Rezultat ispita

Napisati program koji učitava broj poena i proverava da li je student položio ispit, uz pretpostavku da je za prolaz potrebno najmanje 51 poen.

Zadatak 6 — Poređenje temperatura

Napisati program koji učitava dve temperature i proverava koja je veća, odnosno da li su jednake.

Zadatak 7 — Opseg brojeva

Napisati program koji proverava da li se uneti broj nalazi u intervalu od 1 do 100, uključujući obe granice.

Zadatak 8 — Najveći od tri broja

Napisati program koji učitava tri broja i određuje najveći od njih. Obratiti pažnju na slučajeve kada su dva ili sva tri broja jednaka.

23. Domaći zadatak — mini-sistem za proveru kupovine

Napraviti C++ program koji simulira osnovnu proveru kupovine u internet prodavnici.

Program treba da omogući unos:

  • Naziva proizvoda.

  • Cene proizvoda.

  • Količine koju kupac želi.

  • Trenutne količine na stanju.

  • Raspoloživog iznosa novca kupca.

Zatim treba izračunati ukupnu vrednost kupovine i proveriti:

  1. Da li je cena proizvoda veća od nule.

  2. Da li je tražena količina veća od nule.

  3. Da li na stanju postoji dovoljno proizvoda.

  4. Da li kupac ima dovoljno novca.

  5. Da li je ukupan iznos kupovine jednak raspoloživom novcu kupca.

  6. Da li kupac može da realizuje kupovinu.

Na kraju prikazati pregled svih podataka i rezultate provera.

Za ovaj zadatak koristite int, double, string, bool, aritmetičke operatore i operatore poređenja.

Dodatni izazov: koristite if i else kako biste umesto logičkih vrednosti prikazali razumljive poruke, kao što su „Kupovina je moguća“ ili „Nema dovoljno proizvoda na stanju“.

Za potrebe vežbe koristite double za cenu, uz napomenu da se u stvarnim finansijskim aplikacijama novčani iznosi najčešće obrađuju celobrojnim najmanjim novčanim jedinicama ili odgovarajućim decimalnim tipovima radi izbegavanja grešaka zaokruživanja.

Najava naredne lekcije

U narednoj lekciji nastavljamo sa logikom programiranja i učimo kako da kombinujemo više uslova.

Tema 24 — Logički operatori (&&, ||, !)

Naučićemo kako da proveravamo više uslova istovremeno, šta znače logičko I, ILI i NE i kako se koriste u stvarnim programima.

Vaša privatnost nam je važna

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.