1 / 44

Struktura programa

Struktura programa. Razlaganjem glavnog zadatka na manje cjeline olakšava se izrada programa. Zasebnim rješavanjem pojedinih cjelina nastaju funkcije . Struktura programa - način na koji se funkcije slažu i povezuju u cjelovit i smislen program. . Osnovna struktura programa.

kaycee
Download Presentation

Struktura programa

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Struktura programa

  2. Razlaganjem glavnog zadatka na manje cjeline olakšava se izrada programa. Zasebnim rješavanjem pojedinih cjelina nastaju funkcije. Struktura programa - način na koji se funkcije slažu i povezuju u cjelovit i smislen program. Osnovna struktura programa Sanda, 2013.

  3. Funkcije su nizovi naredbi koji čine logičke cjeline, a obavljaju određene zadatke. • Mogu biti: • načinjene i za uporabu pripremljene funkcije (pohranjene u bibliotekama), • vlastite funkcije. Funkcije Sanda, 2013.

  4. Za uporabu funkcija treba znati: • kako ih deklarirati, • kako ih definirati, • kako ih pozvati. Funkcije Sanda, 2013.

  5. broj i tip podataka koji se predaju funkciji prilikom njenog poziva (argumenti) tip podatka kojeg funkcija vraća pozivatelju tip_funkcije naziv_funkcije(popis argumenata) Deklaracija funkcije Sanda, 2013.

  6. Funkcija - saćinjena od skupa naredbi , koji se naziva tijelo funkcije. Svaka naredba završava znakom točka-zarez (;). Tijelo funkcijezapisuje se unutar vitičastih zagrada, a zbog preglednosti, se obično piše uvučeno u odnosu na ostali izvorni kod. Definicija funkcije Sanda, 2013.

  7. Više se naredbi može zapisati u jednome retku, ali svaka od njih mora završiti znakom točka-zarez (;). Naredba se može protezati i kroz nekoliko redaka: Naredbe Sanda, 2013.

  8. tijelo funkcije Tijelo funkcije završava naredbom return, a uz return se zapisuje podatak kojeg funkcija (kao svoj rezultat) vraća pozivatelju. Tijelo funkcije Sanda, 2013.

  9. Ako se funkcija želi rabiti u programu treba je pozvati. Poziva se navođenjem njenog naziva i argumenata navedenih u redoslijedu koji je zadan deklaracijom. Na sljedećem slajdu je primjer u kome se u glavnom programu poziva funkcija volumen_kvadra Poziv funkcije Sanda, 2013.

  10. #include<iostream> using namespace std; float volumen_kvadra (float a, float b, floatc) { float V; V= a*b*c; return V; } int main() { float x,y,z,vol; cout<<"Unesi vrijednosti bridova kvadra:"<<endl; cin>>x>>y>>z; vol=volumen_kvadra(x,y,z); cout<<"Volumen kvadra iznosi”<<vol<<endl; return 0; } funkcija poziv funkcije Sanda, 2013.

  11. Programi mogu sadržavati mnogo funkcija. Kako bi se “znalo” na kojem mjestu započinje glavni program, uvodi se funkcija main (“ulazna točka”). Ako program ne sadrži funkciju main prevoditelj javlja pogrešku. Funkcija main Sanda, 2013.

  12. Postoji više oblika funkcije main. U ovim će se vježbama rabiti oblik: int main ( ) Funkcija main završava naredbom return 0. Deklaracija funkcije main Sanda, 2013.

  13. Ako neka od naredbi funkcije main izazove prekid programa, pri izvršenju se neće stići do naredbe return 0 i ona se neće izvršiti. Dakle, 0 je poruka pozivatelju (a to je obično operacijski sustav) da su sve naredbe funkcije main izvršene ispravno. Main () – return 0 Sanda, 2013.

  14. Funkcija main int main() { return 0; } Sanda, 2013.

  15. Ako se pokrene prevođenje i povezivanje, sve će proći bez pogreške. 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. Prvi program Sanda, 2013.

  16. Navode se prijemain funkcije, a izvršavaju prije početka prevođenja izvornog koda. Program pretprocesor dopunjuje izvorni kôd te se zatim takav dopunjeni (modificirani) kôd prevodi. Opći oblik pretprocesorskih naredbi je: #naredba parametri Pretprocesorske naredbe Ne završavaju znakom točka-zarez (;)! Sanda, 2013.

  17. Jedna od pretprocesorskih naredbi: #include <naziv_biblioteke> Naredbom include se u izvorni kod programa uključuje sadržaj biblioteke koja je navedena unutar znakova < >. (Isto kao da je zapisan cjelokupni sadržaj odabrane biblioteke.) include Sanda, 2013.

  18. Kada se naredbom include uključi željena biblioteka, korisniku su na raspolaganju sve funkcije te biblioteke. U programu se može rabiti proizvoljan broj naredbi include. include Sanda, 2013.

  19. Da bi program mogao primati podatke i prikazivati rezultate mora komunicirati s ulazno/izlaznim uređajima (tipkovnicom, monitorom, diskom i sl.). Ta se komunikacija u C++ ostvaruje pomoću ulaznih i izlaznih tokova (engl. input and output streams). Ulazni i izlazni tokovi Sanda, 2013.

  20. Ulazni tok prima podatke od ulaznog uređaja (s konzole) i predaje ih programu. Izlazni tok prima podatke od programa i prosljeđuje ih izlaznom uređaju (konzoli). Ulazno-izlaznim tokovima se rukuje funkcijama biblioteke iostream. Ulazni i izlazni tokovi Sanda, 2013.

  21. iostreamje biblioteka koja sadrži niz ulazno-izlaznih funkcija za rukovanje ulazno-izlaznim tokovima. Dvije najčešće rabljene funkcije su cout i cin. Programer ih poziva prema potrebi u svoj program. #include<iostream> Sanda, 2013.

  22. Funkcija cout zajedno s operatorom ispisa << omogućava ispis podataka na konzolu koja je u većini slučajeva zaslon monitora. Npr.: cout<<13; Posljedica: na zaslonu monitora ispisat će se 13. cout Sanda, 2013.

  23. brojevna vrijednost konstanta varijabla znakovni niz S desne strane operatora ispisa može biti varijabla, brojevnavrijednost ili znakovni niz. cout Sanda, 2013.

  24. Moguće je ulančavanje operatora ispisa koje se izvodi s lijeva na desno. cout Sanda, 2013.

  25. Da svi podaci ne bi bili ispisani u istome retku, treba rabiti konstantu endl. Zadatak joj je pokazivač ispisa pomaknuti na početak sljedećeg retka na zaslonu. Konstanta endl je pohranjena u biblioteci iostream. endl Sanda, 2013.

  26. Ako se u prethodni primjer doda endl, ispis će izgledati ovako: endl Sanda, 2013.

  27. endl je moguće dodati i u slučaju ulančavanja operatora ispisa. Rezultat je isti: endl Sanda, 2013.

  28. Ako se pri ulančavanju operatora ispisa predugi redak želi prelomiti, to je potrebno učiniti ispred operatora ispisa. Npr: cout<<34<<a<<" Moguc je i ispis niza znakova"; • može se prelomiti i zapisati ovako: cout<<34<<a <<" Moguc je i ispis niza znakova"; Ulančavanje operatora << Sanda, 2013.

  29. 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 tipkovnice, podatak će biti pohranjen u varijablu a. cin Sanda, 2013.

  30. cin Enter Enter • Izvršenja nastavka programa se prekida sve dok se ne unese podatak i pritisne tipka Enter! Sanda, 2013.

  31. Moguće je ulančavanje operatora unosa koje se izvodi s lijeva na desno. Ulančavanje operatora >> • Ulazni se podaci tada upisuju: • jedan ispod drugog, a nakon svakog unosa Enter, • u istome retku, odvojeni prazninama, a nakon posljednjeg unosa Enter. Sanda, 2013.

  32. Korisnik može u istom programu rabiti više biblioteka. Autori tih biblioteka mogu biti različiti i može se dogoditi da npr. koriste ista imena za funkcije koje imaju različitu namjenu. namespace Sanda, 2013.

  33. Što će se dogoditi ako korisnik u istom programu rabi obje biblioteke iz primjera, a pozove funkciju alfa? Koja će funkcija alfabiti izvršena? Ona iz biblioteke1? Ona iz biblioteke2? namespace Sanda, 2013.

  34. Da bi se izbjegla zabuna, funkcije pojedine biblioteke dodatno se označavaju ključnom riječju namespace uz zadavanje dodatnog imena. Oblik: namespace dodatno_ime Zadatak označavanja je jednoznačno odrediti funkcije neke biblioteke. namespace Sanda, 2013.

  35. U primjeru se funkcije biblioteke1 označavaju dodatnim imenomprva, a funkcije biblioteke2 dodatnim imenom druga. namespace Sanda, 2013.

  36. Da bi se funkcije označene dodatnim imenom učinile aktivnima koristi se: • operator dodjele područja (dvije dvotočke ::) ili • naredba using. namespace Sanda, 2013.

  37. Pri pozivanju funkcije se uz željeno ime funkcije navodi i njeno dodatno ime. Npr.: Operator dodjele područja Sanda, 2013.

  38. 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. Operator dodjele područja Sanda, 2013.

  39. Ako se želi sve funkcije označene dodatnim imenom odjednom učiniti aktivnima koristi se naredba: using namespace dodatno_ime Ključna riječ using Sanda, 2013.

  40. Ako se uporabi naredba using namespace prva, funkcije biblioteke označene dodatnim imenom prva pozivaju se samo njihovim imenom. Ključna riječusing Sanda, 2013.

  41. U programu C++ postoji skupina standardnih funkcija koje se redovito isporučuju uz program. Nazivaju se zajedničkim imenom:standardna biblioteka (engl. standard library). Funkcije standardne biblioteke pohranjene su u različitim bibliotekama ali su sve po dogovoru označene istim dodatnim imenom std. Standardne funkcije - std Sanda, 2013.

  42. standard library Sanda, 2013.

  43. Ako korisnik želi rabiti neku od standardnih funkcija mora pri pozivu te funkcije pisati: std::ime_funkcije ili će na početku svog programa napisati: using namespace std; Standardne funkcije - std Sanda, 2013.

  44. Osnovna struktura rograma #include <iostream> using namespace std; int main() { return 0; } Sanda, 2013.

More Related