Presentation is loading. Please wait.

Presentation is loading. Please wait.

Programiranje - Uvod - Kolegij: Programski jezik C++

Similar presentations


Presentation on theme: "Programiranje - Uvod - Kolegij: Programski jezik C++"— Presentation transcript:

1 Programiranje - Uvod - Kolegij: Programski jezik C++
Ak. god. 2017/2018 Doc. Dr. Sc. Marko Maliković

2 Program koji ne radi ništa
int main() { return 0; }

3 Program koji ne radi ništa
int main() { return 0; } Naziv za glavnu funkciju u svakom C++ programu Svaki C++ program mora imati jednu i samo jednu main funkciju To je dio programa koji će se prvi početi izvoditi

4 Program koji ne radi ništa
int main() { return 0; } Zagrade u koje se smještaju (eventualni) argumenti odnosno parametri funkcije Za sada su zagrade prazne i tako će ostati još dobar dio semestra (Što su argumenti ćemo usvojiti kasnije tijekom kolegija →)

5 Program koji ne radi ništa
int main() { return 0; } Kaže da će main() kao rezultat izvođenja vratiti cijeli broj O povratnim vrijednostima biti će još mnogo riječi tijekom kolegija →

6 Program koji ne radi ništa
int main() { return 0; } Naredba kojom glavni program vraća pozivnom programu broj 0 To je poruka operativnom sustavu da je program uspješno okončan (u svakom operacijskom sustavu postoji skup definiranih vrijednosti koje bi programi trebali vraćati)

7 Program koji ne radi ništa
int main() { return 0; } Početak i kraj bloka koji sadrži naredbe glavne funkcije Svaki blok naredbi koji se treba ponašati kao cjelina smješta se u vitičaste zagrade Vidi kasnije tijekom kolegija →

8 Program koji ne radi ništa
int main() { return 0; } Označava kraj naredbe Svaki zapis iza točka-zareza interpretira se kao nova naredba

9 Prvi program koji nešto radi
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; }

10 Prvi program koji nešto radi
// Prvi program koji nešto radi #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; } Komentar Zanemaruje se sav tekst od dvostruke kose crte do kraja tekućeg retka i program se nastavlja od početka slijedećeg retka

11 Komentari preko više redova
/* Osim već navedene dvije kose crte, C++ dopušta pisanje i komentara unutar crta i zvjezdica kao što je pisan i ovaj komentar. */

12 Komentari preko više redova
/* Osim već navedene dvije kose crte, C++ dopušta pisanje i komentara unutar crta i zvjezdica kao što je pisan i ovaj komentar. Ovakvi komentari se mogu protezati na više redaka, a da se znak za komentiranje ne mora ponavljati u svakom retku. */

13 Komentari preko više redova
/* Osim već navedene dvije kose crte, C++ dopušta pisanje i komentara unutar crta i zvjezdica kao što je pisan i ovaj komentar. Ovakvi komentari se mogu protezati na više redaka, a da se znak za komentiranje ne mora ponavljati u svakom retku. Ovakav način komentiranja je vrlo pogodan i za privremeno isključivanje dijelova programa. */

14 Prvi program koji nešto radi
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; } Nije naredba jezika C++ nego tzv. predprocesorska naredba Sve predprocesorske naredbe počinju znakom #

15 Prvi program koji nešto radi
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; } Od prevoditelja traži da u program uključi zaglavlje biblioteke iostream U toj datoteci su definirani izlazni tokovi (između ostalog, funkcije koje omogučavaju ispis podataka na monitor)

16 Prvi program koji nešto radi
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; } Aktivira imenski prostor odn. imenik (eng. namespace) pod nazivom std std je imenik u kojem su definirane sve standardne funkcije i tipovi Imenici služe kao zaštita od istih imena funkcija, klasa ili objekata iz različitih biblioteka Ako dvije različite funkcije iz različitih imenika imaju isto ime prevoditelj će javiti grešku (ili, u krajnjem slučaju, kada više programera piše isti program) Da nismo aktivirali cijeli imenik std onda bi u programu morali pisati npr. std::cout umjesto cout Analogija: Kućna adresa i nečije ime i prezime

17 Prvi program koji nešto radi
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; } Naziv izlaznog toka koji je u biblioteci iostream pridružen monitoru

18 Prvi program koji nešto radi
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; } Upućuje podatak koji slijedi na izlazni tok (u ovom slučaju na monitor)

19 Prvi program koji nešto radi
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; } Podatak koji treba poslati na izlazni tok Ako je podatak pisan u navodnicima onda ga treba ispisati doslovce (u suprotnom prevoditelj traži varijablu s tim nazivom, a ako ona ne postoji vraća grešku)

20 Prvi program koji nešto radi
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan"; return 0; } Ukratko: Naredba za ispis teksta Dobar dan

21 Kako ispisati navodnike?
Tako da ispred navodnika koje želimo ispisati stavimo kosu crtu u lijevo Na primjer: cout << "Ante je rekao: \"Ovako se ispisuju navodnici\"." << endl;

22 Pokrenimo prethodni program
Kako pomaknuti ispis nakon teksta "Dobar dan" u novi redak?

23 Tako da dodamo << endl na kraj naredbe za ispis
// Prvi program koji radi nešto #include <iostream> using namespace std; int main() { cout << "Dobar dan" << endl; return 0; }

24 Prelazak u novi red

25 Umjesto << endl imamo još dvije mogućnosti:
cout << "Dobar dan" << '\n'; cout << "Dobar dan \n"; Razlika između endl i \n postoji ali nama sada nije važna (razlika je u pražnjenju buffera prilikom ispisa u datoteku...)

26 Nadovezivanje operatora za ispis
cout << "Dobar dan dragi gosti!" << endl << "Smjestite se." << endl << "Jeste li za kavu?" << endl;

27 Program za zbrajanje dva broja (naš prvi interaktivni program)
// Program za zbrajanje dva broja #include <iostream> using namespace std; int main() { int a, b, c; cout << "Upiši prvi broj: "; cin >> a; cout << "Upiši drugi broj: "; cin >> b; c = a + b; cout << "Zbroj je jednak: " << c << endl; return 0; }

28 Program za zbrajanje dva broja
// Program za zbrajanje dva broja #include <iostream> using namespace std; int main() { int a, b, c; cout << "Upiši prvi broj: "; cin >> a; cout << "Upiši drugi broj: "; cin >> b; c = a + b; cout << "Zbroj je jednak: " << c << endl; return 0; } Deklariramo tri varijable cjelobrojnog tipa (integer) Deklariranje varijabli je zadavanje imena varijabli i određivanje tipa te varijable Bez deklaracije prevoditelj neće htjeti prevesti program Deklaraciju ćemo preciznije opisati kasnije →

29 Program za zbrajanje dva broja
// Program za zbrajanje dva broja #include <iostream> using namespace std; int main() { int a, b, c; cout << "Upiši prvi broj: "; cin >> a; cout << "Upiši drugi broj: "; cin >> b; c = a + b; cout << "Zbroj je jednak: " << c << endl; return 0; } Program će stati i čekati da upišemo vrijednost varijable a (prvog broja kojeg želimo zbrajati)

30 Program za zbrajanje dva broja
// Program za zbrajanje dva broja #include <iostream> using namespace std; int main() { int a, b, c; cout << "Upiši prvi broj: "; cin >> a; cout << "Upiši drugi broj: "; cin >> b; c = a + b; cout << "Zbroj je jednak: " << c << endl; return 0; } Program će stati i čekati da upišemo vrijednost varijable b (drugog broja kojeg želimo zbrajati)

31 Program za zbrajanje dva broja
// Program za zbrajanje dva broja #include <iostream> using namespace std; int main() { int a, b, c; cout << "Upiši prvi broj: "; cin >> a; cout << "Upiši drugi broj: "; cin >> b; c = a + b; cout << "Zbroj je jednak: " << c << endl; return 0; } Program će izračunati zbroj brojeva a i b i rezultat pohraniti u varijablu c O dodjeljivanju vrijednosti varijablama ćemo još govoriti kasnije

32 Mogućnost ispravka unosa
Prilikom čekanja koje vrši naredba cin >> a; broj a neće biti pohranjen sve dok ne pritisnemo tipku Enter. To znači da ga možemo ispraviti ako pogriješimo. Primjećujemo da se hrvatski dijakritički znakovi ne prikazuju ispravno Neka nam to za sada ne smeta nego pisimo tekst bez kvacica O hrvatskim dijakritičkim znakovima kasnije na nastavi

33 Razdvajanje znakovnih nizova
Znakovni nizovi ne smiju biti razdvojeni u dva reda, a da se to ne naznači Ako napišemo: cout << "Ovo je prvi redak, a ovo je drugi redak" << endl; … prevoditelj će javiti grešku Možemo na kraju prvog retka pisati kosu crtu u lijevo: cout << "Ovo je prvi redak, \

34 Razdvajanje znakovnih nizova
cout << "Ovo je prvi redak, \ a ovo je drugi redak" << endl; Prije drugog retka ne smije biti praznina jer će prevoditelj te praznine shvatiti kao dio niza:

35 Datoteke zaglavlja i biblioteke
C++ datoteke (ekstenzija .cpp) nisu jedine koje postoje u C++ programima Druge vrste datoteka se zovu datoteke zaglavlja (header file, include file) Datoteke zaglavlja obično imaju ekstenziju .h ali ponekad i .hpp ili nemaju ekstenziju Namjena datoteka zaglavlja je da sadrže deklaracije funkcija te definicije konstanti i klasa sadržanih u odgovarajućim bibliotekama Npr. naredba cout je deklarirana u datoteci zaglavlja iostream Naredbom #include <iostream> zahtijevamo da sav sadržaj datoteke zaglavlja iostream bude bude kopiran u našu datoteku Međutim, datoteke zaglavlja obično sadrže samo deklaracije, a ne sadrže definicije kako je nešto implementirano Dakle, cout je samo deklarirano u datoteci zaglavlja, a definirano odnosno implementirano je u biblioteci koja se povezuje u naš program tijekom povezivanja (linkanja)


Download ppt "Programiranje - Uvod - Kolegij: Programski jezik C++"

Similar presentations


Ads by Google