Kada pišemo program, naš cilj nije samo da računar može da ga izvrši.
Važno je i da čovek može lako da razume šta taj program radi.

Zbog toga u programiranju koristimo komentare.

Komentari su delovi koda koje kompajler ignoriše. Oni ne utiču na izvršavanje programa, već služe da programeru objasne šta se dešava u određenom delu koda.

U ovom tekstu naučićemo:

  • šta su komentari,
  • zašto se koriste,
  • kako se pišu jednolinijski komentari,
  • kako se pišu višelinijski komentari,
  • kada komentare treba koristiti,
  • i koje greške početnici najčešće prave.

Šta su komentari?

Komentari su objašnjenja koja programer piše unutar koda.

Oni služe da:

  • objasne šta radi određeni deo programa,
  • olakšaju čitanje koda,
  • pomognu pri učenju,
  • podsete programera zašto je nešto napisano,
  • i olakšaju rad u timu.

Kompajler komentare preskače.

To znači da komentar ne menja ponašanje programa.

Primer:

// Ovo je komentar

Ovu liniju kompajler neće izvršiti.

Zašto su komentari važni?

Na početku učenja programi su kratki i jednostavni.

Na primer:

cout << "Hello World";

ovakav kod lako razumemo.

Ali kada program postane veći i ima:

  • više funkcija,
  • više promenljivih,
  • uslove,
  • petlje,
  • nizove,
  • i složenije algoritme,

komentari postaju veoma korisni.

Dobar komentar može objasniti:

  • šta program radi,
  • zašto je neko rešenje izabrano,
  • šta predstavlja promenljiva,
  • ili koji je sledeći korak algoritma.

Jednolinijski komentari

Jednolinijski komentar počinje sa:

//

Sve što se nalazi desno od // predstavlja komentar.

Primer:

// Ispisujemo poruku na ekran
cout << "Zdravo";

Kompajler izvršava samo:

cout << "Zdravo";

a komentar preskače.

Jednolinijski komentari su korisni za kratka objašnjenja.

Komentar na kraju linije

Komentar može stajati i na kraju naredbe.

Primer:

int broj = 10; // promenljiva cuva vrednost 10

Ovo je korisno kada želimo da kratko objasnimo čemu služi neka promenljiva ili naredba.

Još jedan primer:

cout << broj; // ispis vrednosti promenljive broj

Ovakvi komentari mogu biti korisni, ali ne treba ih previše koristiti ako je kod već sam po sebi jasan.

Višelinijski komentari

Ako želimo da napišemo komentar u više redova, koristimo:

/*
    Ovo je komentar
    koji se proteže
    kroz više redova
*/

Sve što se nalazi između:

/*

i:

*/

kompajler ignoriše.

Višelinijski komentari su korisni kada želimo da objasnimo veći deo programa ili ceo algoritam.

Primer programa sa komentarima

Pogledajmo jedan jednostavan program:

#include <iostream>
using namespace std;

int main() {
    // Deklaracija promenljive
    int broj;

    // Poruka korisniku da unese broj
    cout << "Unesi jedan broj: ";

    // Unos vrednosti sa tastature
    cin >> broj;

    // Ispis unete vrednosti
    cout << "Uneli ste broj: " << broj;

    return 0;
}

Ovaj program radi isto kao i program bez komentara.

Komentari služe samo da nama objasne šta se dešava.

Program bez komentara

#include <iostream>
using namespace std;

int main() {
    int broj;
    cout << "Unesi jedan broj: ";
    cin >> broj;
    cout << "Uneli ste broj: " << broj;
    return 0;
}

Program sa komentarima

#include <iostream>
using namespace std;

int main() {
    // Promenljiva u kojoj cuvamo uneti broj
    int broj;

    // Prikazujemo poruku korisniku
    cout << "Unesi jedan broj: ";

    // Ucitavamo broj sa tastature
    cin >> broj;

    // Prikazujemo rezultat
    cout << "Uneli ste broj: " << broj;

    return 0;
}

Oba programa daju isti rezultat.

Razlika je u tome što je drugi program lakši za razumevanje.

Komentari ne utiču na izvršavanje

Važno je zapamtiti:

Komentari ne utiču na rezultat programa.

Na primer:

#include <iostream>
using namespace std;

int main() {
    // cout << "Ovo se nece prikazati";

    cout << "Ovo ce se prikazati";

    return 0;
}

Rezultat će biti:

Ovo ce se prikazati

Prva cout naredba neće biti izvršena jer je pretvorena u komentar.

Ovo je korisno kada privremeno želimo da isključimo neku liniju koda.

Komentarisanje koda tokom testiranja

Programeri često koriste komentare kada testiraju program.

Na primer:

// cout << "Test poruka";

Ova linija trenutno nije aktivna.

Ako kasnije želimo da je ponovo koristimo, samo uklonimo:

//

Komentari se često koriste za:

  • privremeno isključivanje dela koda,
  • testiranje različitih rešenja,
  • objašnjavanje algoritma,
  • i beleženje ideja.

Dobri i loši komentari

Nije svaki komentar dobar.

Dobar komentar objašnjava ono što nije očigledno.

Loš komentar ponavlja ono što se već jasno vidi iz koda.

Loš komentar

int a = 5; // a je 5

Ovo nije mnogo korisno jer se to već vidi iz koda.

Bolji komentar

int brojPoena = 5; // pocetni broj poena za novog igraca

Ovaj komentar daje dodatno značenje.

Još bolji pristup

Često je bolje dati promenljivoj jasnije ime:

int pocetniBrojPoena = 5;

Tada komentar možda nije ni potreban.

Kada treba koristiti komentare?

Komentare treba koristiti kada:

  • objašnjavamo složeniji algoritam,
  • opisujemo svrhu promenljive,
  • objašnjavamo uslov ili petlju,
  • privremeno isključujemo deo koda,
  • pišemo uputstvo za buduće izmene,
  • ili želimo da kod bude lakši za učenje.

Primer:

// Proveravamo da li je broj paran
if (broj % 2 == 0) {
    cout << "Broj je paran";
}

Ovaj komentar može pomoći početniku da razume logiku provere.

Kada ne treba preterivati sa komentarima?

Previše komentara može učiniti kod nepreglednim.

Ako komentari objašnjavaju svaku očiglednu liniju, kod može postati teži za čitanje.

Na primer:

int x = 10; // promenljiva x dobija vrednost 10
x = x + 1; // x se povecava za 1
cout << x; // ispisujemo x

Ovo nije neophodno ako je kod jednostavan.

Bolje je komentarisati logiku programa, a ne svaku pojedinačnu očiglednu naredbu.

Komentari i čitljiv kod

Komentari nisu zamena za loše napisan kod.

Dobar kod treba da bude:

  • uredan,
  • lepo formatiran,
  • sa jasnim imenima promenljivih,
  • i logično organizovan.

Komentari treba da pomognu, ali ne treba da sakrivaju lošu organizaciju.

Primer lošeg koda:

int x;
cin >> x;
if (x > 17) cout << "OK";

Bolje:

int godine;
cin >> godine;

if (godine > 17) {
    cout << "Korisnik je punoletan";
}

U drugom primeru komentar možda nije ni potreban jer su nazivi jasni.

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

1. Zaboravljen drugi deo višelinijskog komentara

Pogrešno:

/*
Ovo je komentar

Nedostaje:

*/

Kompajler će ostatak koda tretirati kao komentar ili prijaviti grešku.

2. Korišćenje komentara umesto razumevanja

Neki početnici prepišu kod i samo dodaju komentare, ali ne razumeju šta kod radi.

Komentari treba da pomognu razumevanju, ali ne mogu zameniti učenje.

3. Previše komentara

Ako svaka linija ima komentar, kod postaje nepregledan.

Komentari treba da budu kratki i korisni.

4. Netačni komentari

Najgori komentari su oni koji ne odgovaraju kodu.

Primer:

// Sabiramo dva broja
razlika = a - b;

Komentar kaže jedno, a kod radi drugo.

Takvi komentari zbunjuju i prave problem.

5. Komentarisanje važnog koda i zaboravljanje

Ako privremeno isključimo deo koda komentarom, treba zapamtiti zašto smo to uradili.

Inače kasnije možemo zaboraviti da je važan deo programa isključen.

Komentari u učenju programiranja

Za studente i početnike komentari su posebno korisni.

Kada učite novi koncept, preporučljivo je da uz kod napišete kratko objašnjenje.

Primer:

// Unosimo vrednost promenljive a
cin >> a;

// Unosimo vrednost promenljive b
cin >> b;

// Racunamo zbir
zbir = a + b;

Na ovaj način lakše pamtite redosled koraka i razumete algoritam.

Komentari u ispitnim zadacima

Na kolokvijumima i ispitima komentari mogu pomoći da zadatak bude jasniji.

Kratki komentari mogu pokazati profesoru da razumete logiku rešenja.

Na primer:

// Pronalazimo najveci element niza
for (int i = 0; i < n; i++) {
    if (niz[i] > max) {
        max = niz[i];
    }
}

Komentar jasno objašnjava cilj dela programa.

Rezime

Komentari su važan deo programiranja jer pomažu da kod bude razumljiviji.

U C++ jeziku postoje:

  • jednolinijski komentari,
  • i višelinijski komentari.

Jednolinijski komentari počinju sa:

//

Višelinijski komentari pišu se između:

/*

i:

*/

Komentari ne utiču na izvršavanje programa, ali mnogo pomažu u učenju, objašnjavanju i održavanju koda.

Dobro napisan komentar objašnjava razlog, ideju ili logiku — a ne samo ono što se već vidi iz koda.

Mini test

  1. Šta su komentari u C++ kodu?
    a) Delovi koda koje kompajler izvršava
    b) Objašnjenja koja kompajler ignoriše
    c) Obavezne naredbe programa
  2. Kako počinje jednolinijski komentar?
    a) //
    b) ##
    c) --
  3. Kako se piše višelinijski komentar?
    a) između /* i */
    b) između { i }
    c) između < i >
  4. Da li komentari utiču na rezultat programa?
    a) Da
    b) Ne
    c) Samo ako su na početku programa
  5. Koji komentar je bolji?
    a) // x je 5
    b) // pocetni broj poena za novog igraca
    c) // ovo je linija

Zadaci za vežbu

  1. Napiši program koji ispisuje tvoje ime i dodaj komentar iznad svake važne naredbe.
  2. Napiši program koji unosi dva broja i računa zbir. Dodaj komentare za unos, računanje i ispis.
  3. Pretvori jednu cout naredbu u komentar i pokreni program.
  4. Napiši jedan višelinijski komentar na početku programa u kome ćeš objasniti šta program radi.
  5. Pronađi u svom kodu jedan komentar koji nije potreban i ukloni ga.

Domaći zadatak

Napravi C++ program koji unosi dva broja i računa:

  • zbir,
  • razliku,
  • proizvod.

Program treba da sadrži:

  • jednolinijske komentare,
  • jedan višelinijski komentar na početku,
  • lepo formatiran kod,
  • i jasna imena promenljivih.

Na kraju napiši kratak odgovor:
Zašto komentari pomažu u učenju programiranja?

Pristupačnost