Definiranje konstanti sa #define
Da biste definirali konstantu na sa staromodnim, i lošim načinom unest ćete
#define ucenika_po_razredu 15;
Primjetite da ucenika_po_ucionici nema konkretni tip (int, char itd.). Svaki puta kad preprocesor vidi riječ ucenika_po_razredu upisat će broj 15 u tekst.
Zbog toga što se preprocesor pokreće prije kompajlera, kompjuter nikad ne vidi vašu konstantu, ono vidi broj 15.
Definiranje konstanti sa const
Iako #define radi, postoji bolji, ukusniji način definiranja konstanti u C++
const unsigned int ucenika_por_ucionici = 15;
U ovom primjeru se isto deklarira simbolična konstanta imenovana ucenika_po_ucionici, ali ovaj puta ucenika_po_ucionici je napisano kao unsigned int (bez predznaka, cijeli broj)
S ovime imate više za tipkati ali nudi nekoliko prednosti.Najveća razlika je u tome što ova konstanta ima tip i kompajler može prisliti da to bude korišteno po svom tipu.
Aritmetički operatori
Operator je simbol koji predstavlja specifičnu akciju. Već smo kod primjera zbrajanja koristili operator "+". Osim operatora + imamo još nekoliko aritmetičkih operatora.
Evo tablice za pregled operatora.
% operator se naziva još i modulus operator .
Aritmetički operatori jednako dobro rade sa negativnim brojevima kao i sa pozitivnim, sa iznimkom modulus operatora, rade sa cijelim brojevima jednako dobro kao i sa brojevima sa pomičnim zarezom.
Neki programski jezici imaju eksponent operator, što nije slučaj kod C++. Umjesto toga C++ ima ugrađenu funkciju pow koja je definirana u standardnoj biblioteci cmath
pow funkcija ima dva arumenta. Prvi argument je baza (glavni broj), a drugi broj je eksponent.
Pogledajmo primjer:
#include <iostream>
#include <cmath> // ukljucili smo biblioteku cmath
using namespace std;
int main()
{
double baza, eksponent, rezultat;
cout << "Unesite broj ";
cin >> baza;
cout << "Unesite eksponent ";
cin >> eksponent;
rezultat = pow(baza, eksponent);
cout << "Rezultat = " << rezultat;
char x;
cin >> x;
return 0;
}
Prvo novo što morate primjetiti je to da smo uključili biblioteku cmath. Zatim smo deklarirali broj, eksponent i rezultat kao double tip. (Zbog ogromnih brojeva ako npr. upišete 10 na 10-u). Zatim smo im sa cin >> pridružili vrijednosti, te su te vrijednosti zapravo parametri u funkciji pow.
Odnosni operatori
U programskom jeziku C++ kao i u mnogim drugim programskim jezicima postoje odnosni operatori. Takvi operatori se npr. koriste ako želite napraviti program koji će iz baze podataka odrediti osobe sa više od 30 godina i slično.
Evo tih odnosnih operatora:
Odnosne naredbe
Kao i aritmetički operatori, odnosni operatori su binarni tj. uspoređuju dva operanda. Naredba sa dva operanda i odnosnim operatorom zove se odnosna naredba (eng. relational expression.)
Rezultat odnosne naredbe je Boolean vrijednost odnosno istinu ili laž (true ili false). S ovom tablicom možete vidjeti kako to funkcionira
U ovoj tablici se koriste konkretne ( literal ) vrijednosti koje ne mogu biti promijenjene. 4 je konkretna vrijednost (konstanta), i ona se ne može mijenjati (moglo bi se mijenjati da je umjesto konstanta koristimo varijable)
Isprobajmo sada ovaj kod koji umjesto konstanti koristi varijable
#include <iostream>
using namespace std;
int main()
{
int a = 4, b = 5;
cout << (a > b) << endl;
cout << (a >= b) << endl;
cout << (a == b) << endl;
cout << (a <= b) << endl;
cout << (a < b) << endl;
char x;
cin >> x;
return 0;
}
Ovaj program će ispisati:
0
0
0
1
1
S time da 0 predstalja laž (false) a 1 istinu (true).