Osnovna struktura programa Osnovna struktura programa n Program

  • Slides: 43
Download presentation
Osnovna struktura programa

Osnovna struktura programa

Osnovna struktura programa n Program se sastoji od više funkcionalnih delova. n Način na

Osnovna struktura programa n Program se sastoji od više funkcionalnih delova. n Način na koji se ti delovi slažu i povezuju u celinu, naziva se struktura programa. (c) S. Šutalo i D. Grundler, 2009. 2

Funkcije n Razlaganjem glavnog zadatka na manje celine olakšava se izrada programa. n Posebnim

Funkcije n Razlaganjem glavnog zadatka na manje celine olakšava se izrada programa. n Posebnim rešavanjem pojedinih celina nastaju funkcije. n Funkcije su nizovi naredbi koji čine logičke celine a obavljaju određene zadatke. (c) S. Šutalo i D. Grundler, 2009. 3

Funkcije n Moguće je: n Koristiti već napravljene, za uporabu pripremljene funkcije pohranjene u

Funkcije n Moguće je: n Koristiti već napravljene, za uporabu pripremljene funkcije pohranjene u bibliotekama, ili n Napraviti sopstvene funkcije. (c) S. Šutalo i D. Grundler, 2009. 4

Funkcija main n Programi mogu sadržati mnogo funkcija. n Za da se zna na

Funkcija main n Programi mogu sadržati mnogo funkcija. n Za da se zna na koje mesto na kojem mjestu počinje glavni program, uvodi se funkcija main. n Funkcija main se zato naziva “ulazna točka”. (c) S. Šutalo i D. Grundler, 2009. 5

Funkcija main n Svaki C++ program mora imati funkciju main jer ako je nema,

Funkcija main n Svaki C++ program mora imati funkciju main jer ako je nema, program ne bi “znao” gdje da počne n Ako program ne sadrži funkciju main prevodilac javlja grešku. (c) S. Šutalo i D. Grundler, 2009. 6

Deklaracija funkcije main n Postoji više oblika funkcije main. int main() n Funkcija main

Deklaracija funkcije main n Postoji više oblika funkcije main. int main() n Funkcija main završava naredbom return 0. (c) S. Šutalo i D. Grundler, 2009. 7

Prvi program int main() { return 0; } (c) S. Šutalo i D. Grundler,

Prvi program int main() { return 0; } (c) S. Šutalo i D. Grundler, 2009. 10

Prvi program n Ako se napiše program kao u primeru, pa se pokrene prevođenje

Prvi program n Ako se napiše program kao u primeru, pa se pokrene prevođenje i povezivanje, sve će proći bez greške. (c) S. Šutalo i D. Grundler, 2009. 11

Prvi program n Kada se taj program izvrši, neće se dogoditi ništa jer u

Prvi program n Kada se taj program izvrši, neće se dogoditi ništa jer u tijelu funkcije između vitičastih zagrada nema naredbi osim return 0. (c) S. Šutalo i D. Grundler, 2009. 12

Pretprocesorske naredbe n Pre glavne, main funkcije navode se pretprocesorske naredbe. n To su

Pretprocesorske naredbe n Pre glavne, main funkcije navode se pretprocesorske naredbe. n To su naredbe koje se izvršavaju pre početka prevođenja izvornog koda. n Program pretprocesor dopunjuje izvorni kôd, dopunjeni (modificirani) izvorni kôd prevodi. (c) S. Šutalo i D. Grundler, 2009. 13

Pretprocesorske naredbe n Opći oblik pretprocesorskih naredbi je: #naredba parametri n Pretprocesorske naredbe započinju

Pretprocesorske naredbe n Opći oblik pretprocesorskih naredbi je: #naredba parametri n Pretprocesorske naredbe započinju znakom #. n Za razliku od ostalih naredbi, ne završavaju znakom točka-zarez (; ). (c) S. Šutalo i D. Grundler, 2009. 14

include n Jedna od pretprocesorskih naredbi je naredba include oblika: #include <naziv_biblioteke> (c) S.

include n Jedna od pretprocesorskih naredbi je naredba include oblika: #include <naziv_biblioteke> (c) S. Šutalo i D. Grundler, 2009. 15

include n Naredbom include se u izvorni kod programa uključuje sadržaj biblioteke koja je

include n Naredbom include se u izvorni kod programa uključuje sadržaj biblioteke koja je navedena unutar znakova < i >. Biblioteke (engl. libraries) su datoteke koje sadrže gotove, prevedene funkcije koje se mogu koristiti u raznim programima. (c) S. Šutalo i D. Grundler, 2009. 16

include n Kada programer naredbom include uključi željenu biblioteku, na raspolaganju su mu sve

include n Kada programer naredbom include uključi željenu biblioteku, na raspolaganju su mu sve funkcije te biblioteke. n Postoje razne biblioteke u koje su smeštene funkcije po smislu. (c) S. Šutalo i D. Grundler, 2009. 17

include n U programu se mogu koristiti i proizvoljan broj naredbi include (on zavisi

include n U programu se mogu koristiti i proizvoljan broj naredbi include (on zavisi od broja biblioteka čiji se sadržaj želi uključiti u izvorni kod). (c) S. Šutalo i D. Grundler, 2009. 18

Ulazni i izlazni funkcii n Da bi program mogao primati podatke i prikazivati rezultate

Ulazni i izlazni funkcii n Da bi program mogao primati podatke i prikazivati rezultate mora komunicirati s ulazno/izlaznim uređajima (tastatura , monitorom, diskom i sl. ). n Komunikacija s ulazno/izlaznim uređajima se u C++u ostvaruje pomoću ulaznih i izlaznih uređaja (engl. input and output streams). (c) S. Šutalo i D. Grundler, 2009. 19

Ulazni i izlazni funkcii n Ulazna funkcija prima podatke od ulaznog uređaja (s konzole)

Ulazni i izlazni funkcii n Ulazna funkcija prima podatke od ulaznog uređaja (s konzole) i predaje ih programu. n Izlazna funkcija prima podatke od programa i prosljeđuje ih izlaznom uređaju (konzoli). n Ulazno-izlaznim funkcije su sastavni deo biblioteke iostream. (c) S. Šutalo i D. Grundler, 2009. 20

iostream n iostream je bibloteka koja sadrži niz ulazno-izlaznih funkcija koje omogućavaju rukovanje ulazno-izlaznim

iostream n iostream je bibloteka koja sadrži niz ulazno-izlaznih funkcija koje omogućavaju rukovanje ulazno-izlaznim tokovima. n Najčešće korišćene funkcije ove biblioteke su cout i cin. n Programer ih poziva prema potrebi u svoj program. (c) S. Šutalo i D. Grundler, 2009. 21

cout n Funkcija cout zajedno s operatorom ispisa << omogućava ispis podataka na konzolu

cout n Funkcija cout zajedno s operatorom ispisa << omogućava ispis podataka na konzolu koja je u većini slučajeva monitor. Npr. : cout<<13; Posledica: na monitora će ispisati broj 13. (c) S. Šutalo i D. Grundler, 2009. 22

cout n S desne strane operatora ispisa može biti varijabla, vrednost ili znakovni niz.

cout n S desne strane operatora ispisa može biti varijabla, vrednost ili znakovni niz. konstanta varijabla znakovni niz (c) S. Šutalo i D. Grundler, 2009. 23

cout n Moguće je ispisa niza koje se izvodi s lijeva na desno. (c)

cout n Moguće je ispisa niza koje se izvodi s lijeva na desno. (c) S. Šutalo i D. Grundler, 2009. 24

endl n Za ispis podataka u posebnom redu, treba koristiti konstantu endl. n Omogućava

endl n Za ispis podataka u posebnom redu, treba koristiti konstantu endl. n Omogućava pokazivač ispisa da se pomeri na početak sledećeg reda. n Konstanta endl je pohranjena u biblioteci iostream. (c) S. Šutalo i D. Grundler, 2009. 25

endl n Ako se u prethodni primer doda endl, ispis će izgledati ovako: (c)

endl n Ako se u prethodni primer doda endl, ispis će izgledati ovako: (c) S. Šutalo i D. Grundler, 2009. 26

endl n endl je moguće dodati i u slučaju ulančavanja operatora ispisa. Rezultat je

endl n endl je moguće dodati i u slučaju ulančavanja operatora ispisa. Rezultat je isti kao i u prethodnom primeru. (c) S. Šutalo i D. Grundler, 2009. 27

Ulančavanje operatora << n Ako se pri ulančavanju operatora ispisa dug red želi prelomiti,

Ulančavanje operatora << n Ako se pri ulančavanju operatora ispisa dug red želi prelomiti, to je potrebno učiniti ispred operatora ispisa. Npr: cout<<34<<a<<" Moguc je i ispis niza znakova"; n može se prelomiti i zapisati ovako: cout<<34<<a <<" Moguc je i ispis niza znakova"; (c) S. Šutalo i D. Grundler, 2009. 28

cin n Funkcija cin zajedno s operatorom unosa >> omogućava unos podataka s konzole

cin n Funkcija cin zajedno s operatorom unosa >> omogućava unos podataka s konzole što je u većini slučajeva tipkovnica. Npr. : cin>>a; Posljedica: očekuje se unos podatka s tastature, podatak će biti pohranjen u varijablu a. (c) S. Šutalo i D. Grundler, 2009. 29

cin n S desne strane operatora unosa može biti varijabla bilo kojeg tipa podatka.

cin n S desne strane operatora unosa može biti varijabla bilo kojeg tipa podatka. (c) S. Šutalo i D. Grundler, 2009. 30

Unos podataka n Rezultat funkcije unosa je prekid izvršenja programa sve dok se ne

Unos podataka n Rezultat funkcije unosa je prekid izvršenja programa sve dok se ne unese podatak i pritisne Enter (program “čeka” na podatak). Enter (c) S. Šutalo i D. Grundler, 2009. 31

Ulančavanje operatora >> n Moguće je ulančavanje operatora unosa koje se izvodi s lieva

Ulančavanje operatora >> n Moguće je ulančavanje operatora unosa koje se izvodi s lieva na desno. (c) S. Šutalo i D. Grundler, 2009. 32

Ulančavanje operatora >> n Ako je operator unosa ulančan, ulazni podaci se upisuju: n

Ulančavanje operatora >> n Ako je operator unosa ulančan, ulazni podaci se upisuju: n jedan ispod drugog, posle svakog unosa, Enter, ili n u istome redu odvojeni prazninama, n tek nakon posljednjeg unosa pritisnuti Enter. (c) S. Šutalo i D. Grundler, 2009. 33

namespace n Korisnik može u istom programu koristiti više biblioteka. (c) S. Šutalo i

namespace n Korisnik može u istom programu koristiti više biblioteka. (c) S. Šutalo i D. Grundler, 2009. 34

namespace n Da bi se izbjegla zabuna, funkcije pojedine biblioteke dodatno se označavaju ključnom

namespace n Da bi se izbjegla zabuna, funkcije pojedine biblioteke dodatno se označavaju ključnom riječju namespace uz zadavanje dodatnog imena. n Dodatno označavanje je oblika: namespace dodatno_ime n Zadatak označavanja je jednoznačno odrediti funkcije neke biblioteke. (c) S. Šutalo i D. Grundler, 2009. 35

namespace n U priimeru se funkcije biblioteke 1 označavaju dodatnim imenom prva, a funkcije

namespace n U priimeru se funkcije biblioteke 1 označavaju dodatnim imenom prva, a funkcije biblioteke 2 dodatnim imenom druga. (c) S. Šutalo i D. Grundler, 2009. 36

namespace n Da bi se funkcije označene dodatnim imenom učinile aktivnima koristi se: n

namespace n Da bi se funkcije označene dodatnim imenom učinile aktivnima koristi se: n operator dodele područja (dvije dvotočke, : : ) ili n naredba using. (c) S. Šutalo i D. Grundler, 2009. 37

Operator dodjele područja n Pri pozivanju funkcije se uz željeno ime funkcije navodi i

Operator dodjele područja n Pri pozivanju funkcije se uz željeno ime funkcije navodi i njeno dodatno ime Npr. : (c) S. Šutalo i D. Grundler, 2009. 38

Operator dodele područja n Kada se u program želi uključiti više funkcija, a koristi

Operator dodele područja n Kada se u program želi uključiti više funkcija, a koristi se aktivacija operatorom dodjele područja, pri pozivu svake od funkcija uz njeno ime treba navesti i njeno dodatno ime. (c) S. Šutalo i D. Grundler, 2009. 39

Ključna riječ using n Ako se želi sve funkcije neke biblioteke označene dodatnim imenom

Ključna riječ using n Ako se želi sve funkcije neke biblioteke označene dodatnim imenom odjednom učiniti aktivnima koristi se naredba: using namespace dodatno_ime (c) S. Šutalo i D. Grundler, 2009. 40

Ključna riječ using n Ako se uporabi naredba using namespace prva, funkcije biblioteke označene

Ključna riječ using n Ako se uporabi naredba using namespace prva, funkcije biblioteke označene dodatnim imenom prva pozivaju se samo njihovim imenom. (c) S. Šutalo i D. Grundler, 2009. 41

Standardne funkcije n U programu C++ postoji standardne funkcije koje se redovno isporučuju uz

Standardne funkcije n U programu C++ postoji standardne funkcije koje se redovno isporučuju uz program C++. n Standardne funkcije su različite korisne funkcije za koje se pretpostavlja da će trebati mnogim korisnicima. (c) S. Šutalo i D. Grundler, 2009. 42

namespace std n Skup svih standardnih funkcija naziva se zajedničkim imenom standardna biblioteka (engl.

namespace std n Skup svih standardnih funkcija naziva se zajedničkim imenom standardna biblioteka (engl. standard library). n Te su funkcije pohranjene u različitim bibliotekama ali su sve po dogovoru označene istim dodatnim imenom std (namespace std). (c) S. Šutalo i D. Grundler, 2009. 43

standard library (c) S. Šutalo i D. Grundler, 2009. 44

standard library (c) S. Šutalo i D. Grundler, 2009. 44

namespace std n Ako korisnik želi koristiti neku od standardnih funkcija mora pri pozivu

namespace std n Ako korisnik želi koristiti neku od standardnih funkcija mora pri pozivu te funkcije pisati: std: : ime_funkcije n ili će na početku svog programa napisati: using namespace std; (c) S. Šutalo i D. Grundler, 2009. 45