U prethodnom tekstu upoznali smo osnovnu strukturu jednog C++ programa. Videli smo da čak i najjednostavniji program ima nekoliko važnih delova koji zajedno omogućavaju da program bude ispravno napisan, kompajliran i pokrenut.

U ovom tekstu detaljnije ćemo objasniti tri veoma važna elementa koja se skoro uvek pojavljuju u početničkim C++ programima:

  • #include
  • namespace
  • main() funkcija

Ova tri dela često zbunjuju početnike jer se pojavljuju odmah na početku programa, a ne objašnjava se uvek dovoljno jasno zašto su tu i čemu služe.

Zato ćemo ih sada objasniti korak po korak.

Primer programa koji ćemo analizirati

Pogledajmo jednostavan C++ program:

#include <iostream>
using namespace std;

int main() {
    cout << "Zdravo svete!";
    return 0;
}

Ovaj program ispisuje tekst:

Zdravo svete!

Iako je kratak, u njemu se nalaze tri ključna dela:

  • uključivanje biblioteke,
  • korišćenje namespace-a,
  • glavna funkcija programa.

Šta znači #include?

Linija:

#include <iostream>

govori kompajleru da u program uključi određenu biblioteku.

Biblioteka je skup već pripremljenih funkcija, klasa i alata koje možemo koristiti u programu.

Drugim rečima, ne moramo sve praviti sami od početka. C++ već ima veliki broj gotovih biblioteka koje nam olakšavaju rad.

Biblioteka:

iostream

koristi se za osnovni unos i ispis podataka.

Zahvaljujući njoj možemo koristiti:

cout

za ispis podataka na ekran, i:

cin

za unos podataka sa tastature.

Bez #include <iostream> kompajler ne bi znao šta znače cout i cin.

Šta je biblioteka u programiranju?

Biblioteku možemo zamisliti kao kutiju sa gotovim alatima.

Na primer, ako želimo da ispišemo tekst na ekran, ne moramo sami pisati ceo mehanizam za komunikaciju sa konzolom.

Dovoljno je da uključimo biblioteku:

#include <iostream>

i onda možemo koristiti gotove alate:

cout << "Hello";

Kao što majstor koristi alat iz kutije, tako programer koristi funkcije iz biblioteka.

Zašto se koristi znak #?

Znak:

#

označava preprocesorsku direktivu.

To znači da se ova linija obrađuje pre samog kompajliranja programa.

Kada kompajler vidi:

#include <iostream>

on pre kompajliranja priprema potrebne delove biblioteke iostream.

Zato se #include obično nalazi na početku programa.

Najčešće korišćene biblioteke

Pored iostream, često ćemo koristiti i druge biblioteke.

Primeri:

#include <string>

koristi se za rad sa tekstom.

#include <cmath>

koristi se za matematičke funkcije.

#include <vector>

koristi se za rad sa dinamičkim nizovima.

#include <algorithm>

koristi se za sortiranje, pretragu i druge algoritme.

Za početak je najvažnije da zapamtimo:

#include <iostream>

jer ćemo ga koristiti u skoro svakom početničkom programu.

Šta znači namespace?

Sledeća linija u programu je:

using namespace std;

Da bismo razumeli ovu liniju, prvo moramo razumeti šta je namespace.

Namespace je prostor imena.

On služi da organizuje funkcije, klase i objekte tako da ne dođe do konflikta između istih naziva.

Na primer, u velikim programima može postojati više funkcija ili objekata sa istim imenom. Namespace pomaže da se zna kojoj grupi određeni naziv pripada.

Šta je std?

std je skraćenica za standard.

To je standardni namespace u C++ jeziku.

U njemu se nalaze mnogi elementi standardne biblioteke, kao što su:

cout
cin
string
endl

Kada napišemo:

using namespace std;

mi govorimo programu:

Koristi standardni namespace, tako da ne moramo stalno pisati std::.

Primer bez namespace-a

Ako ne napišemo:

using namespace std;

onda bismo morali pisati ovako:

#include <iostream>

int main() {
    std::cout << "Hello World";
    return 0;
}

Ovde koristimo:

std::cout

što znači da cout pripada standardnom namespace-u.

Primer sa namespace-om

Kada napišemo:

using namespace std;

onda možemo pisati kraće:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello World";
    return 0;
}

Za početnike je ovaj oblik jednostavniji i pregledniji.

Da li je using namespace std obavezan?

Ne, nije obavezan.

Program može raditi i bez njega, ali tada moramo koristiti prefiks:

std::

Na primer:

std::cout
std::cin
std::endl

Na fakultetima i u početničkim primerima često se koristi:

using namespace std;

jer pojednostavljuje kod.

Kasnije, u većim profesionalnim projektima, često se izbegava zbog bolje organizacije i izbegavanja konflikta imena.

Šta je main funkcija?

Najvažniji deo svakog C++ programa je funkcija:

int main()

Ovo je glavna funkcija programa.

Izvršavanje C++ programa uvek počinje od main() funkcije.

Kada pokrenemo program, računar traži main() i počinje da izvršava naredbe koje se nalaze unutar nje.

Primer:

int main() {
    cout << "Program pocinje ovde";
    return 0;
}

Sve što se nalazi između vitičastih zagrada pripada funkciji main().

Zašto piše int ispred main?

U izrazu:

int main()

reč int označava da funkcija vraća celobrojnu vrednost.

Na kraju programa obično pišemo:

return 0;

To znači da se iz funkcije main() vraća broj 0.

Broj 0 najčešće označava da je program uspešno završen.

Šta znači return 0?

Naredba:

return 0;

označava kraj funkcije main() i poruku operativnom sistemu da je program završen bez greške.

Možemo to posmatrati ovako:

  • return znači vrati rezultat,
  • 0 znači uspešno izvršavanje.

U početničkim programima skoro uvek ćemo pisati:

return 0;

na kraju funkcije main.

Vitičaste zagrade u main funkciji

Funkcija main() ima telo programa koje se nalazi između:

{

i:

}

Primer:

int main() {
    cout << "Hello";
    return 0;
}

Sve naredbe između ovih zagrada izvršavaju se redom.

Ako zaboravimo neku zagradu, program neće moći da se kompajlira.

Redosled izvršavanja programa

Pogledajmo ponovo program:

#include <iostream>
using namespace std;

int main() {
    cout << "Prva naredba" << endl;
    cout << "Druga naredba" << endl;
    return 0;
}

Kada pokrenemo program, izvršavanje ide ovim redom:

  1. Uključuje se biblioteka iostream
  2. Omogućava se korišćenje std namespace-a
  3. Program ulazi u main()
  4. Izvršava se prvi cout
  5. Izvršava se drugi cout
  6. Program dolazi do return 0
  7. Program se završava

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

1. Nedostaje biblioteka

Pogrešno:

using namespace std;

int main() {
    cout << "Hello";
    return 0;
}

Kompajler neće znati šta je cout.

Ispravno:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello";
    return 0;
}

2. Pogrešno napisan include

Pogrešno:

include <iostream>

Ispravno:

#include <iostream>

Znak # je obavezan.

3. Pogrešno napisano namespace

Pogrešno:

using namespase std;

Ispravno:

using namespace std;

4. Nedostaje main funkcija

Pogrešno:

#include <iostream>
using namespace std;

cout << "Hello";

Ispravno:

#include <iostream>
using namespace std;

int main() {
    cout << "Hello";
    return 0;
}

5. Nedostaju zagrade

Pogrešno:

int main() {
    cout << "Hello";
    return 0;

Ispravno:

int main() {
    cout << "Hello";
    return 0;
}

Zašto su ova tri dela važna?

#include, namespace i main() funkcija predstavljaju osnovu skoro svakog početničkog C++ programa.

Bez biblioteke ne možemo koristiti gotove alate za unos i ispis.

Bez pravilnog namespace-a moramo pisati duže nazive.

Bez main() funkcije program nema početnu tačku izvršavanja.

Zato je važno da ih ne učimo napamet, već da razumemo njihovu ulogu.

Primer za vežbu

Pogledaj sledeći program:

#include <iostream>
using namespace std;

int main() {
    cout << "Ucim C++";
    return 0;
}

Pitanja:

  • Koja linija uključuje biblioteku?
  • Gde počinje izvršavanje programa?
  • Koja naredba ispisuje tekst?
  • Šta znači return 0?

Rezime

U ovom tekstu naučili smo da svaki početnički C++ program obično sadrži tri važna dela:

  • #include <iostream> — uključuje biblioteku za unos i ispis,
  • using namespace std; — omogućava kraće korišćenje standardnih komandi,
  • int main() — označava glavnu funkciju od koje počinje izvršavanje programa.

Razumevanje ovih delova je veoma važno jer se oni pojavljuju u gotovo svakom programu koji ćemo pisati.

Mini test

  1. Šta radi #include <iostream>?
    a) Pokreće računar
    b) Uključuje biblioteku za unos i ispis
    c) Briše program
  2. Šta predstavlja std?
    a) Standardni namespace
    b) Tip podataka
    c) Grešku u programu
  3. Od koje funkcije počinje izvršavanje C++ programa?
    a) start()
    b) main()
    c) begin()
  4. Šta znači return 0;?
    a) Program se uspešno završava
    b) Program se briše
    c) Program čeka unos
  5. Šta se dešava ako ne uključimo iostream, a koristimo cout?
    a) Program radi normalno
    b) Kompajler prijavljuje grešku
    c) Računar se restartuje

Zadaci za vežbu

  1. Napiši program koji koristi #include <iostream> i ispisuje tvoje ime.
  2. Napiši isti program bez using namespace std;, koristeći std::cout.
  3. Objasni svojim rečima šta je namespace.
  4. Napiši program koji ima dve cout naredbe.
  5. Namerno ukloni # iz #include i pogledaj kakvu grešku prijavljuje kompajler.

Domaći zadatak

Napravi dokument u kome ćeš objasniti tri osnovna dela C++ programa:

  • #include
  • using namespace std
  • int main()

Za svaki deo napiši:

  • čemu služi,
  • primer upotrebe,
  • šta se dešava ako ga pogrešno napišemo.

Pristupačnost