Podaci u jeziku C++

Lekcija 2 od 18 · C++

C++ je programski jezik koji proširuje osnovne mogućnosti C jezika, zadržavajući njegovu sintaksu, ali uvodeći mnoge napredne funkcionalnosti. Jedan od ključnih aspekata ovog jezika je rad sa podacima, gde su osnove slične C jeziku, ali sa značajnim unapređenjima.

C++ pruža fleksibilnost i efikasnost u upravljanju podacima kroz:

  • Osnovne tipove podataka: Nasleđene iz C jezika (npr. int, float, char) za rad sa osnovnim vrednostima.
  • Prostori imena (namespaces): Omogućavaju organizaciju i izbegavanje konflikata između imena funkcija i promenljivih.
  • Nove tipove podataka: Kao što su bool za logičke vrednosti i string za rad sa tekstom, što pojednostavljuje rad sa modernim aplikacijama.
  • Konstante: Definisane pomoću ključne reči const, koje osiguravaju da vrednosti ne mogu biti menjane tokom izvršavanja programa.

U nastavku ćemo detaljnije razmotriti osnovne i izvedene tipove podataka u C++ jeziku, razlike u odnosu na C jezik, kao i specifične karakteristike poput:

  • Deklaracije i inicijalizacije promenljivih,
  • Korišćenja konstanti,
  • Organizacije koda kroz prostore imena.

U c++ jeziku slično kao i u C jeziku podaci mogu biti promenljivi(promenljive), za koje je potrebno obezbediti memoriju, konstantni podaci, konstante i simboličke konstante. Za konstante ne rezervišemo memoriju, nego ih jednostavno koristimo u izrazima, ali za podatke, bilo da su promenljivi ili konstantni to moramo da uradimo. Npr. definisanje celobrojnog podatka bi bilo:

int a;

gde prva reč predstavlja tip podatka, a druga ime podatka (naziv). Dakle, definisanje podatka potrebno po sledećem šablonu uz napomenu da je reč o prostim podacima.

tip_podatka ime_podatka;

Da bi ste odgledali video - lekciju za rešavanje jednostavnih primera upotrebom alata "Code Block", kao i primere za samostalan rad, kliknite na sledeći link: Podaci-primeri

C++ podržava osnovne tipove podataka kao i C, uz dodatak specifičnih tipova i modernih koncepata. Podaci mogu biti:

  1. Promenljivi (varijable): Zahtevaju rezervaciju memorije. Primer:
int a; // Deklaracija promenljive tipa int
a = 5; // Dodela vrednosti

Konstantni podaci: Deklarišu se sa const ili constexpr

constexpr double PI = 3.14159;

Logički tip: Za opis logičkih podataka u jeziku C++ postoji tip podatka bool koji se koristi za logički tip. Upotreba logičkih tipova je obično kod grananja u programu upotrebom selekcija if, i-else i if-else if-else.

Ovaj tip je često korišćen u uslovnim izrazima:

bool isEven = (a % 2 == 0);

Znakovni tip(char): Za opis znakova, slova, brojeva, belih i specijalnih znakova se koristi tip char. Ovo je zapravo celobrojni tip koji zauzima veličinu podatka od 1 bajta(engl. 1 byte).

Primer kod-a sa upotrebom karaktera:

char c;
c = 'A';
printf("ASCII kod karaktera %c iznosi %d\n", c, c);

Izvedeni tipovi podataka

Osim nizova i pokazivača, C++ omogućava rad sa klasama, objektima, i standardnim bibliotekama koje pojednostavljuju rad sa kompleksnim strukturama podataka.

Nizovni tip: Ako treba definisati niz brojeva istog tipa, na primer, celih brojeva, koristi se sledeća sintaksa:

int niz[10];

Ovo rezerviše prostor za 10 elemenata tipa int. Pristup elementima niza se vrši preko indeksa, počevši od niz[0].

Pokazivački tip: Ako treba definisati pokazivač na podatak tipa double onda se definiše i inicijalizuje pokazivač na sledeći način:

double a;
double *pA; //Pokazivač na podatak tipa double
pA = &a;

Više o pokazivačima videti na stranici: Pokazivači u C/C++

Od izvedenih tipova podataka se koriste još i klase i funkcije

Tip void

U C++ jeziku, tip void koristi se kada funkcija ne vraća nikakvu vrednost:

void funkcija() {
    // Kod funkcije
}

Označeni i neoznačeni podaci(signed i unsigned)

Označeni (signed) podaci mogu imati pozitivne i negativne vrednosti, dok su neoznačeni (unsigned) uvek pozitivni. Po podrazumevanju, podaci u C++ jeziku su označeni (signed).

Primeri:

int a;
signed int b;
unsigned int c;

Opseg podataka zavisi od veličine u memoriji. Na primer, za 32-bitni int:

  • signed int: od -2,147,483,648 do 2,147,483,647
  • unsigned int: od 0 do 4,294,967,295

Prva cifra kod označenih brojeva koristi se za određivanje znaka (0 za pozitivne, 1 za negativne), dok preostale cifre predstavljaju vrednost. Ostali osnovni tipovi, poput char, takođe mogu biti označeni ili neoznačeni:

unsigned char z;

Napomena: Tipovi float i double ne mogu biti označeni (signed) ili neoznačeni (unsigned).

Dodela vrednosti podacima

Posmatrajmo sledeći primer:

Primer 1

Uneti dva cela broja, izračunati njihov proizvod i prikazati rezultat na ekranu.

Rešenje:

int a, b; // ili u dva reda
int a;
int b;

Dalje, podacima dodeljujemo neku vrednost korišćenjem operatora dodele vrednosti “=”.

Više o operatorima u jeziku c++ pogledati na web stranici: Operatori u C/C++ jeziku

Ovo ne znači jednakost i ne važi da je levo od znaka “=” isto što i desno. Ovde levo mora biti memorija koja treba da dobije neku vrednost a sa desne strane je ta vrednost ili neki izraz čiji će rezultat biti smešten u memoriju sa leve strane. Npr. dodelimo neke vrednosti promenljivima a i b:

a = 7;
b = 22;

Ovo su brojevi 7 i 22 u binarnom obliku. Radi uprošćenja posmatraćemo brojeve u memoriji kao dekadne brojeve

7

a

22

b

Ako sad uvedemo još jednu celobrojnu promenljivu c:

int c;

i zadamo izraz za množenje brojeva a i b:

c = a * b;

stanje u memoriji bi bilo:

154

c

Broj koji je izračunat, stoji u memoriji i da bi se prikazao na ekranu potrebna je neka komanda koja ispisuje vrednost na standarni izlaz(konzolu).

To je u c++ jeziku funkcija cout iz zaglavlja iostream.

U prethodnom primeru programer je naredbom a=7; i b=22; programski odredio vrednost a i b i korisnik programa na te vrednosti ne bi mogao da utiče. U većini slučajeva je potrebno obezbediti da korisnik unese vrednosti po svojoj želji i za to je potrebno obezbediti komandu koja broj ukucan na tastaturi od strane korisnika privremeno upamti kao niz karaktera a zatim konvertuje odgovarajućom ulaznom konverzijom u binarnom obliku. Vidi u nastavku čitanje podataka.

Kompletan kod:

#include <iostream>
using namespace std;

int main() {
    // Deklaracija promenljivih
    int a, b, c;

    // Unos vrednosti za a i b
    cout << "Unesite prvi broj: ";
    cin >> a;
    cout << "Unesite drugi broj: ";
    cin >> b;

    // Izračunavanje proizvoda
    c = a * b;

    // Prikaz rezultata
    cout << "Proizvod brojeva je: " << c << endl;
    return 0;
}

Konstantni podaci

Ako promenljiva ne menja svoju vrednost tokom programa, definiše se kao konstanta koristeći ključnu reč const.

Primer:

const double e = 2.718281;

Napomena: Vrednost konstante mora biti dodeljena prilikom deklaracije.

Konstante

TKonstante su vrednosti koje direktno koristimo u programu, poput 2, 3.14 ili 9.81. Iako nemaju rezervisanu memoriju, one imaju svoj tip:

Datoteke zaglavlja

Datoteke zaglavlja omogućavaju pristup predefinisanim funkcijama.

Primer:

  • #include <iostream> – za ulaz i izlaz podataka (cin, cout).
  • #include <cmath> – za matematičke funkcije poput sqrt ili pow.

Više informacija o zaglavljima: C++ Reference.

Tipovi podataka u C++ jeziku

U C++ osnovni tipovi podataka su slični kao i u jeziku C, sa proširenjem na logički tip bool i klase koje se koriste za slođene podatke ili objekte. Sledeća tabela ovo ilustruje: Podaci su osnovni element obrade u programima, a u C++ jeziku tipovi podataka su prošireni u odnosu na C.

Tip podatka u C++ određuje skup vrednosti koje podatak može imati i operacije koje se nad njim mogu izvršavati.

Tip podatka Opis Memorija [bit]
bool Binarni podatak (true ili false) 8
char Znakovni podatak, koristi se za čuvanje jednog karaktera 8
wchar_t Prošireni znakovni podatak za Unicode znakove 16 ili 32
short Kratak celobrojni podatak 16
int Celobrojni podatak 16 ili 32
long Dugački celobrojni podatak 32
long long Veoma dugački celobrojni podatak 64
float Realan broj sa jednostrukom preciznošću 32
double Realan broj sa dvostrukom preciznošću 64
long double Realan broj sa proširenom preciznošću 80 ili 128

Kao što se može videti iz prethodnih tabela, programski jezik C: nema ugrađen tip bool. Logičke vrednosti se obično predstavljaju pomoću int (0 za false, bilo koja nenulta vrednost za true).

programski jezik C++: Uvodi tip bool sa vrednostima true i false. To poboljšava čitljivost i jasnoću koda.

Primer upotrebe bool promenljive u C++

#include <iostream>
using namespace std;

int main() {
    bool isValid = true;
    if (isValid) {
        cout << "Vrednost je true!" << endl;
    } else {
        cout << "Vrednost je false!" << endl;
    }
    return 0;
}

Ovde je prikazana if naredba koja na osnovu logičke promenljive(tip bool) isValid proverava njenu vrednost i ako je ona tačna izvršava se naredba: cout << "The value is true!" << endl;

koja ispisuje tekst: "Vrednost je true", a ako isValid promenljiva ima vrednost false, onda se ispisuje tekst "Vrednost je false".Naredbe cout i cin će biti opisane u tekstu, u nastavku.

Razlika za klase i objekte u programskim jezicima C i C++

  • C: Klase nisu podržane. Podaci i funkcije su organizovani pomoću struktura (struct) i funkcija.
  • C++: Uvodi klase, koje omogućavaju objektno-orijentisano programiranje. Klase kombinuju podatke i metode u jednu jedinicu, podržavaju enkapsulaciju, nasledstvo i polimorfizam.

Primer sa klasama i objektima u C++

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

class Student {
  public:
    string ime;
    int starost;

    void introduce() {
        cout << "Zdravo, ja sam " << ime << " i imam " << starost << " godina." << endl;
    }
};

int main() {
    Student s1;
    s1.ime = "Marko";
    s1.starost = 20;

    s1.introduce();
    return 0;
}

Ulazno izlazni tokovi podataka u C++

Ulazna konverzija u C++ (cin)

Objekat cin koristi se za unos podataka u C++ jeziku i dolazi iz biblioteke <iostream>. Unos se ostvaruje pomoću operatora ekstrakcije (>>), koji preuzima vrednosti unete sa tastature i čuva ih u promenljive.

Primer

#include <iostream>
using namespace std;

int main() {
    int broj; //definiše se podatak broj
    cout << "Unesite broj: "; //Ispis teksta na ekranu
    cin >> broj; //unos broja
    cout << "Uneli ste: " << broj << endl; //Ispis broja na ekranu
    return 0;
}

Izlazna konverzija u C++ (cout)

Objekat cout, takođe iz <iostream> biblioteke, koristi se za ispis podataka. Operator umetanja (<<) šalje podatke na standardni izlaz (obično ekran). Može se koristiti lančano za ispis više vrednosti.

Primer

cout << "Zdravo, " << "svete!" << endl;

Tokovi podataka u C++

U C++-u, cin i cout rade sa tokovima podataka:

  • cin je ulazni tok za čitanje podataka.
  • cout je izlazni tok za slanje podataka.

Ovi tokovi omogućavaju konverziju tipova, rad sa baferima i proveru grešaka.

Napomena: Možete proširiti objašnjenje primerima sa formatiranim unosom (getline) i ispisom.

Pročitajte više o tome u člancima:C Stringovikao i Stringovi u C/C++ jezikuKada se izvrši naredba:

cout << "Zdravo, " << "svete!" << endl;

evo šta se događa:

  1. Objekat cout: cout je objekat klase ostream, koji se koristi za ispis podataka na standardni izlaz (najčešće ekran).
  2. Operator <<: Ovo je preopterećeni operator umetanja (insertion operator). On prebacuje vrednosti na desnoj strani u tok podataka koji cout obrađuje.
  3. Tok podataka: "Zdravo, " se prvo šalje u tok podataka vezan za cout. Zatim se operator << primenjuje ponovo sa "svete!", dodajući ga na postojeći tok.
  4. endl: Ovaj manipulator dodaje znak za novi red (\n) i odmah isprazni tok (flush), osiguravajući da podaci budu prikazani.

Konverzija podataka

  • "Zdravo, " i "svete!" su stringovi tipa const char*. Tok automatski prepoznaje njihov tip i prosleđuje ih metodi ostream::operator<< koji zna kako da obradi stringove.
  • Ako bi se koristili drugi tipovi podataka (npr. int ili double), operator << bi pozvao odgovarajuću funkciju za konverziju tih tipova u tekst.

Ilustracija s različitim tipovima:cout << "Broj: " << 42 << ", Realan broj: " << 3.14 << endl;

Broj 42 se konvertuje u tekstualni oblik "42", a 3.14 u "3.14" pre umetanja u tok.

Suština:

Operator << i tok cout zajedno omogućavaju fleksibilan, tip-bezbedan ispis podataka u C++, oslanjajući se na preopterećenje funkcija kako bi podržali različite tipove podataka.

Deklaracija i inicijalizacija različitih tipova podataka

U programskim jezicima C i C++, promenljive moraju biti deklarisane pre nego što ih koristimo. Deklaracija uključuje definisanje tipa podatka i imena promenljive, dok inicijalizacija podrazumeva dodelu početne vrednosti promenljivoj.

Primer deklaracije i inicijalizacije osnovnih tipova podataka

Sledeći primer ilustruje deklaraciju i inicijalizaciju različitih tipova podataka u C++ jeziku:

#include <iostream>
// Uključivanje biblioteke za ulaz/izlaz
#include <iomanip>
// Za formatiranje izlaza

int main() {
    // Celobrojni tipovi
    int a = 10; // Deklaracija i inicijalizacija celog broja
    short b = 5; // Kratki tip
    long c = 1000000; // Dugi tip

    // Realni brojevi
    float pi = 3.14f; // Float tip (kraća decimalna preciznost)
    double e = 2.71828; // Double tip (duža decimalna preciznost)

    // Karakteri
    char ch = 'A'; // Jedan karakter

    // Logički tip
    bool isValid = true; // Logička vrednost

    // Ispis rezultata koristeći std::cout
    std::cout << "Celobrojni: " << a << ", " << b << ", " << c << std::endl;
    std::cout << "Realni brojevi: " << std::fixed << std::setprecision(2) << pi << ", "
              << std::setprecision(5) << e << std::endl;
    std::cout << "Karakter: " << ch << std::endl;
    std::cout << "Logička vrednost: " << std::boolalpha << isValid << std::endl;

    return 0;
}

Objašnjenje:

  1. #include <iostream>:
    • Koristi se za ulaz/izlaz putem std::cout i std::cin.
  2. #include <iomanip>:
    • Omogućava kontrolu nad formatiranjem, kao što su decimalna preciznost (std::setprecision) i fiksni format (std::fixed).
  3. std::boolalpha:
    • Prikazuje logičke vrednosti (true/false) kao tekstualni prikaz umesto numeričkog (1/0).
  4. std::fixed i std::setprecision:
    • Koriste se za kontrolu formata realnih brojeva.

Razlika između float i double

  • float koristi 4 bajta memorije i omogućava manju preciznost (približno 6 do 7 decimalnih cifara).
  • double koristi 8 bajtova memorije i omogućava veću preciznost (približno 15 do 16 decimalnih cifara).

Primer

#include <iostream>
#include <iomanip>
// Potrebno za setprecision

int main() {
    float x = 0.123456789f; // Float tip
    double y = 0.123456789; // Double tip

    // Podešavanje preciznosti i ispis float vrednosti
    std::cout << std::fixed << std::setprecision(9);
    std::cout << "Float vrednost: " << x << std::endl;

    // Podešavanje preciznosti i ispis double vrednosti
    std::cout << std::fixed << std::setprecision(16);
    std::cout << "Double vrednost: " << y << std::endl;

    return 0;
}

Objašnjenje:

  1. #include <iomanip>
    Ovo zaglavlje omogućava korišćenje funkcija poput std::setprecision za podešavanje broja značajnih cifara pri ispisu.
  2. std::fixed
    Postavlja ispis brojeva u fiksni decimalni format, čime se sprečava naučni zapis.
  3. std::setprecision(9) i std::setprecision(16)
    Određuje broj cifara posle decimalne tačke.
  4. Razlika između float i double
    • float: Prikazuje 6-7 značajnih cifara.
    • double: Prikazuje 15-16 značajnih cifara.

Rezultat izvršavanja programa:

Float vrednost: 0.123456791
Double vrednost: 0.1234567890000000

Praktična upotreba različitih tipova

  • Koristite float kada vam je potrebna manja preciznost i želite da štedite memoriju (npr. u grafičkim aplikacijama ili igrama).
  • Koristite double kada vam je potrebna velika preciznost (npr. u naučnim ili finansijskim aplikacijama).

Razlike u memoriji i veličini osnovnih tipova podataka

Ova tabela prikazuje osnovne tipove podataka, veličinu memorije koju zauzimaju i njihove opsege vrednosti.

Tip podatka Memorija [bajtovi] Opseg vrednosti
char 1 -128 do 127 (ili 0 do 255 za unsigned)
int 4 -2,147,483,648 do 2,147,483,647
float 4 ±3.4e−38 do ±3.4e+38
double 8 ±2.2e−308 do ±1.7e+308
short 2 -32,768 do 32,767
long 8 -9,223,372,036,854,775,808 do 9,223,372,036,854,775,807

Prostor imena(namespace) u C++

U C++ prostor imena (namespace) je mehanizam koji omogućava organizaciju koda i sprečava konflikt između identifikatora (npr. imena funkcija, klasa ili promenljivih) koji imaju isto ime, ali se koriste u različitim kontekstima.

Prostor imena se definiše pomoću ključne reči namespace. Sve što se deklariše unutar prostora imena pripada tom prostoru i može se pozivati samo pomoću odgovarajuće kvalifikacije (ime prostora imena kao prefiks).

Primer

#include <iostream>

// Definicija dva prostora imena
namespace MojProstor {
void prikazi() {
    std::cout << "Funkcija u MojProstor" << std::endl;
}
}

namespace DrugiProstor {
void prikazi() {
    std::cout << "Funkcija u DrugiProstor" << std::endl;
}
}

int main() {
    // Poziv funkcija iz različitih prostora imena
    MojProstor::prikazi();
    DrugiProstor::prikazi();

    return 0;
}

Rezultat:

Funkcija u MojProstor
Funkcija u DrugiProstor

Ključna reč using

Ključna reč using se koristi za:

  1. Uvođenje prostora imena u trenutno okruženje, čime se pojednostavljuje pristup članovima tog prostora.
  2. Deklaraciju pojedinačnih članova prostora imena.

Primer 1: Korišćenje cele sadržine prostora imena

#include <iostream>
namespace MojProstor {
void prikazi() {
    std::cout << "Koristimo MojProstor bez prefiksa" << std::endl;
}
}

using namespace MojProstor;

int main() {
    prikazi(); // Direktan poziv jer je MojProstor uveden
    return 0;
}

Primer 2: Uvođenje samo jedne funkcije iz prostora imena

#include <iostream>
namespace MojProstor {
void funkcija1() {
    std::cout << "Funkcija 1" << std::endl;
}
void funkcija2() {
    std::cout << "Funkcija 2" << std::endl;
}
}

using MojProstor::funkcija1;

int main() {
    funkcija1(); // Direktan poziv
    MojProstor::funkcija2(); // Ovo je potrebno za funkcija2 jer nije uvedena sa using
    return 0;
}

Testirajte svoj kod ovde!

// Ovde pišite C++ kod...



Primeri za vežbu

  1. ​Uneti poluprecnik kruga i izracunati površinu
  2. Učitati stranice trapeza i izračunati površinu.
  3. Učitati vreme u sekundama i ispisati u obliku hh:mm:ss

Rešenja

Resenje primera 1

Zadatak rešavamo u 4 koraka:

Prvo moramo da definišemo podatke koji su nam potrebni: U program je potrebno da korisnik unese poluprečnik, a program treba da izračuna površinu kruga. Da bi definisali te podatke daćemo im nazive i staviti tip podatka za realne brojeve(double). Dakle prva naredba:

double r,P;

Ovim smo rezervisali memoriju za dva podatka tipa double koje smo oznacili sa r i sa P

Drugi korak je da omogucimo da korisnik unese poluprecnik. Za unos koristimo metodu cin koja se nalazi u datoteci iostream

Ovu datoteku cemo ukljuciti pomocu direktive #include za uklucivanje datoteka i ovo pisemo pri vrhu dokumenta

#include <iostream>

U ovoj datoteci se još nalazi i metoda cout za ispisivanje podataka i teksta na konzolu.

Pre unosa ispisujemo poruku na konzolu da bi korisnik znao šta treba da unese. Za ispisivanje koristimo metodu cout što zapravo predstavlja izlaznu konverziju. Ulazna konverzija ostvaruje se metodom cin. Ovaj drugi korak je:

#include <iostream>
using namespace std;

int main() {
    // Declare a variable for radius
    double r;
    // Prompt the user to enter the radius
    cout << "Please enter the radius of the circle: " << endl;
    cin >> r;
    return 0;
}

U trećem koraku izračunavamo površinu koristeći poznati obrazac za površinu kruga. Za množenje je obavezna upotreba operatora " * " , dok je simbolička konstanta definisana direktivom pretprocesora #define u gornjem delu fajla.

U 4. koraku se na ekranispisuje poruka sa vrednošću površine, koja se isčitava iz memorije označene u ovom programu sa P. Za izlaznu konverziju se koristi format %f za podatke tipa double.

#include <iostream>
using namespace std;

int main() {
    // Deklaracija promenljivih
    double r, povrsina;

    // Unos vrednosti za poluprečnik
    cout << "Unesite poluprecnik kruga: " << endl;
    cin >> r;

    // Izračunavanje površine kruga
    povrsina = 3.14159 * r * r;

    // Ispis rezultata
    cout << "Povrsina kruga je: " << povrsina << endl;
    return 0;
}

Resenje primera 3

Zadatak rešavamo u 4 koraka:

Ovde korisnik unosi vreme u sekundama koje treba biti ceo broj

int ukupnoSekundi;
// Unos vrednosti za vreme u sekundama
cout << "Unesite vreme u sekundama: " << endl;
cin >> vrSec;

Da bi od ovog broja dobili minute i sate upotrebićemo operator % koji daje ostatak deljenja dva cela broja, kao i operator “/” koji daje rezultat deljenja bez decimalnog dela odnosno ceo broj zaokružen na prvu manju vrednost. Da bi dobili broj celih časova u ukupnom broju sekundi delimo

vremena u sekundama i 3600, vrSek/3600, a da bi dobili koliko je sekundi preostalo koristimo „%“, dakle vrSek % 3600.

Kod koji ovo radi:

int hh, ukupnoSekundi;
hh = vrSek / 3600;
ukupnoSekundi = ukupnoSekundi % 3600;

U slučaju da je uneto vreme 7400s, h bi bilo 2 časa, jer 7500/2=2, ako zaokružimo na prvi manji ceo broj, dok bi ostalo nepodeljeno 300s. To je rezultat peracije 7200%3600=300;

Na sličan način bi od preostalog broja sekundi (ostSek) dobili minute, ali u ovom slučaju bi za delilac uzeli 60 jer 1min=60sek;

int mm;
mm = ukupnoSekundi / 60;
ukupnoSekundi = ukupnoSekundi % 60;

Ostatak bi sada ostale sekunde koje dalje ne treba deliti. Konačno za prikaz vremena koristimo printf formatiranu da prikazuje 2 cifre za sate, minute i vreme. U slučaju jednocifrenih brojeva prikazuje 0 kao prefiks. Dakle:

cout << hh << mm << ukupnoSekundi << endl;

Kompletan kod:

#include <iostream>
using namespace std;

int main() {
    // Deklaracija promenljivih
    int ukupnoSekundi, hh, mm, ss;

    // Unos vremena u sekundama
    cout << "Unesite vreme u sekundama: " << endl;
    cin >> ukupnoSekundi;

    // Izračunavanje sati, minuta i sekundi
    hh = ukupnoSekundi / 3600;
    ukupnoSekundi = ukupnoSekundi % 3600;
    mm = ukupnoSekundi / 60;
    ss = ukupnoSekundi % 60;

    // Ispis rezultata u formatu hh:mm:ss
    cout << "Vreme: " << hh << ":" << mm << ":" << ss << endl;
    return 0;
}

Posle pokretanja:

Rešenje zadatka
Slika 1: Rešenje zadatka "formatirano vreme"-izlaz

Proveri znanje

Otvori kviz

Kviz: Podaci u C++-u

1. Koji tip čuva logičku vrednost true ili false?




2. Šta je const double PI = 3.14159;?




3. Koliko bajtova najčešće zauzima char?




4. Koji tip je bolji za realan broj sa više tačnih cifara?