Lekcija 1:C++ osnove
Ovaj članak je za sve vas;bilo da nikad niste programirali, ili ako imate iskustva sa programiranjem u drugim jezicima i želite preći na C++.
C++ je programski jezik sa dosta narječja,kao što i svaki jezik ima svoja narječja.U C++u, to je zato što postoji nekoliko različitih
kompajlera(engl:compiler).Postoji nekoliko poznatih kompajlera: Borland C++, Microsoft C++, GNU C++, itd..
Svaki od ovih kompajlera je malo drugačiji. Svaki bi trebao podržavati ANSI/ISO standardne C++ funkcije, ali svaki kompajler će također sadržavati i nestandardne funkcije (ove funkcije su slične načinu govora (slengu) u različitim dijelovima države.
Ponekad, korištenje nestandardnih funkcija će izazvati probleme kad pokušate kompajlovati izvorni kod (stvarni, početni kod napisan od programera kao tekstualni dokument) sa drugim kompajlerom. Ovi tutoriali koriste ANSI/ISO standardni C++
kompajler i nebi trebali patiti od problema sa modernim kompajlerima.
Ako još uvijek nemate kompajler, jako vam preporučujem da ga nabavite.
C++ program počinje sa funkcijom, tj.skupinom naredbi da se nešto izvrši. Funkcija koja započinje C++ program se zove main(engl:main-bos:glavni-a). Iz main, mi također možemo zvati druge funkcije bilo da su one pisane od nas ili nekog drugog. Da uključite standardu funkciju koja dolazi sa kompajlerom, morate staviti header (engl:header-bos:zaglavlje) sa #include direktivom (engl:include-bos: uključiti, uvrstiti). Header je kao poziv na kod iz biblioteke sa raznim kodovima koji nam olakšava posao, tako što ih samo moramo pozvati. Oni sami imaju urađen dio koda koji nam treba, tako da nemoramo taj kod sami pisati. Pogledajmo
jedan jednostavan programčić koji nam izbacuje tekst na ekran:
#include <iostream>
int main()
{
cout<<"Želim biti C++ programer!"<<endl;
cin.get();
} |
Pogledajmo elemente ovog programa koji ispisiva tekst na ekran.
#include je pretprocesorska direktiva koja govori kompajleru
da stavi kod zvan iostream (tačnije iostream.h) iz naše "biblioteke" u kod koji smo sami napisali. Uključujući header file-ove, dobijamo pristup različitim funkcijama. Naprimjer, cout funkcija zahtjeva iostream.
Sljedeća važna linija je int main(). Ova linija kaže kompajleru da postoji funkcija zvana main tj. naša glavna funkcija, i da funkcija vraća brojnu vrijednost-integer, zato stoji int. Neka vas ne zbunjiva razlog zbog ćega brojna vrijednost, to ćemo malo više obraditi u članku o funkcijama.
Zagrade ({ i }) označuju početak i kraj funkcija i ostalih dijelova koda.
Sljedeća linija bi vam mogla biti malo čudna. Ako ste programirali
u drugom jeziku (kao npr.C), očekivali ste da print bude funkcija za ispisivanje teksta. No, u C++, cout funkcija je korištena da se ispiše tekst.
Ona koristi << simbole, poznat kao operator ubacivanja (insertion operator). Dvostruki navodnici kažu kompajleru da želiš izbaciti literalni string "onakav-kakav je".
endl komanda označava početak novog reda. Koristite ovo ako morate izbaciti dosta teksta na ekran ili ako želite da vam je ispis na ekranu pregledniji. Znak pokreće vaš kursor na ekranu na sljedeći red. Tačka-zarez(;)(ili semikolona, kako god...)se koristi na KRAJU SVAKE KOMANDE u C++.
Sljedeća komanda je cin.get(). Mnogi kompajleri će otvoriti novi prozor, pokrenuti program, a zatim zatvoriti prozor.
Ova komanda drži prozor otvoren zato jer program nije gotov.
Daje ti vremena da vidiš program kako radi.
Pri završetku main-a, zatvarajuća zagrada, naš program će vratiti vrijednost 0 (brojnu vrijednost, zato smo rekli main-u da vrati int)operativnom sistemu.
Ova return vrijednost (pogledajte sljedeći primjer)
je važna zato jer se može iskoristiti da kaže OS-u dali je naš program uspio ili ne.
return vrijednost 0 znači uspjeh i vraćen je automatski
(ali samo za main, ostale funcije zahtjevaju da im ručno vratiš vrijednost), ali da smo htjeli vratiti nešto drugo, npr. 1, morali bi to uraditi sa return izjavom:
#include <iostream>
int main() //Početak glavne funkcije
{
cout<<"Želim biti C++ programer!"<<endl;
cin.get();
return 1;
} |
Zadnja zagrada zatvara funkciju.Isprobajte kompajlovati ovaj program i pokrenuti ga. Možete kopirati ovaj kod, zatim ga zalijepiti u neki file i sačuvati taj file sa .cpp ekstenzijom, (ili kakvu god vaš kompajler koristi). Ako koristite kompajler kao Borland C++ 5.5, trebali biste pročitati instrukcije kompajlera kako da kompajlirate kod, no sve bi trebalo biti jednostavno kao pritisak na dugme (npr."Compile").
Komentari služe da programer nešto objasni u kodu.Kada stavite znak za komentar(//),
Sve poslije tog znaka se neće računati kao kod, dajući vam način kako da opišete pojedinu komandu ili funkciju ili nešto drugo. Također možete koristiti i ovu oznaku za komentar:
da blokirate sve između tih znakova
kao komentar.
Dosada bi vi, programer, trebali znati da napišete običan programski kod koji izbacuje neki tekst na ekran. Također je moguće da vaš program prihvati ulaz (input) za unošenje podataka u program. Komanda koju koristite je cin,i za njom slijedi operator ubacivanja >>.
Možda ste primjetili da strelice imaju sada drugi smjer.
Naravno, prije nego pokušate primiti input (unos), morate imati mjesto za taj unos.
U programiranju, unos i podaci su smješteni u varijablama.
Postoji nekoliko različitih tipova varijabla. Kad kažete kompajleru da imenujete varijablu, morate uključiti tip podatka uz naziv varijable. Nekoliko osnovnih tipova uključuje:
Varijabla tipa char pohranjuje slovne znakove, varijabla tipa int pohranjuje brojke (integers) (brojevi bez decimalnih mjesta), i varijable tipa float pohranjuju brojke sa decimalnim mjestima. Svaki od ovih tipova varijable -char, int i float - se koristi kad imenujete varijablu.
Da imenujete varijablu koristite sintaksu tip,
gdje imeVarijable označava ono što i piše (nadam se da bar to shvatate). Dopušteno je imenovati više varijabli istog tipa u istoj liniji, svaka bi trebala biti odvojena zarezom. Deklaracija varijable se teba završti tačkom-zarezom (;). Ako pokušate koristiti nedefiniranu (neimenovanu) varijablu, vaš program se neće pokrenuti, a vi ćete dobiti error poruku da ste nešto pogriješili.
Evo nekoliko primjera kako definirati varijablu:
int x;
int a, b, c, d;
char slovo;
#include <iostream>
int main()
{
int nekibroj;
cout<<"Molim unesite broj:";
cin>>nekibroj;
cin.ignore();
cout<<"Vi ste unijeli:"<< nekibroj <<endl;
cin.get();
} |
Hajdemo malo "promozgati" ovaj programčić. Riječ int označava da je nekibroj brojka. Komanda cin>> učita vrijednost u nekibroj, korisnik mora pritisnuti Enter da bi ga program učitao.
Nemojte zaboraviti da je varijabla definirana kao brojka; ako korisnik pokuša utipkati decimalnu brojku, biće odbačena (tj. decimalna komponenta broja će biti odbačena). Pokušajte unijeti red slova ili decimalnih brojeva kad pokrenete programa, rezultat će varirati od unosa do unosa, ali ni u jednom slučaju nije lijepo. Primjetite da kod pisanja varijable dvostruki navodnici nisu se koristili. Kad bi tu bili dvostruki navodnici, izlaz bi bio
"Vi ste unijeli: nekibroj."
Nedostatak dvostrukih navodnika upozorava kompajler da je to varijabla , i da bi program trebao provjeriti vrijednost varijable da bi mogao zamijeniti ime varijable sa varijablom u trenutku pokretanja izlaza funkcije. Nemojte biti zbunjeni sa više operatora ubacivanja u jednoj liniji. To je uvijek prihvatljivo dok god svaki operator ubacivanja daje drugi dio informacije. Nekoliko operatora korištenih sa varijablama su:
*, -, +, /, =, ==, >, <.
* množi, - oduzima, a + dodaje. Važno je znati da ako želimo modifikovati vrijednost varijable u programu trebamo koristiti znak =. U nekim jezicima, znak = upoređuje vrijednosti
lijeve i desne strane, ali u C++ dvostruki znak = (==) je korišten za taj posao.
Znak = je još uvijek važan znak. On postavlja lijevi unos na jednak znak, koja mora biti jedna, i samo jedna, varijabla jednaka vrijednosti na desnoj strani znaka =.
Operatori koji vrše matematičke funkcije bi se trebali koristiti na desnoj strani znaka = da bi se dodao varijabli na lijevoj strani znaka =.
Evo nekoliko primjera:
a = 8* 3; // (Primjetite korištenje komentara i tačke-zareza) //a je jednako 24
a = a + 5; // a je jednako originalnoj vrijednosti a plus //dodanoj vrijednosti 5
a == 5 // NE stavlja vrijednost a na 5. Ono provjerava da li //je a jednako 5. |
Drugi oblik znaka jednako, ==, nije način da se stavi vrijednost a na željenu vrijednost. On provjerava dali su vrijednosti jednake. Korisno je u drugim područjima C++a, npr., često ćete koristiti == u petljama. Vjerovatno znate kako znakovi < i > rade.
Na primjer:
a < 5 // provjerava dali je a manje od 5
a > 5 // provjerava dali je a veće od 5
a == 5 // provjerava dali je a jednako 5 |
|