Programski jezici i naela programiranja Pripremila Andrijana Skeli

  • Slides: 38
Download presentation
Programski jezici i načela programiranja Pripremila: Andrijana Skelić, prof.

Programski jezici i načela programiranja Pripremila: Andrijana Skelić, prof.

 • Računalo može riješiti postavljene zadatke samo ako dobije uputstvo, niz naredbi kako

• Računalo može riješiti postavljene zadatke samo ako dobije uputstvo, niz naredbi kako to učiniti. • Program je niz naredbi čijim se pravilnim izvršavanjem riješava zadani problem. • Računalo razumije samo programski jezik računala. • Programske jezike dijelimo na: o strojne jezike o simboličke jezike niske razine o simboličke jezike visoke razine

Strojni jezik • Strojni jezik (engl. machine language, machine code) jedini je oblik programa

Strojni jezik • Strojni jezik (engl. machine language, machine code) jedini je oblik programa - tj. jezik - kojeg računalo razumije • Svi ostali oblici programa pisanih u nekim drugim jezicima moraju se prevesti u strojni jezik.

Strojni jezik • Strojni jezik je u binarnom obliku, što znači da se koriste

Strojni jezik • Strojni jezik je u binarnom obliku, što znači da se koriste samo 0 i 1. • Strojni jezik je najniža moguća razina prikaza programa za neko računalo • Program napisan za jedan tip procesora nije primjenjiv na drugoj vrsti procesora

 • Programer mora dobro poznavati građu procesora. • Prednosti strojnog jezika su: o

• Programer mora dobro poznavati građu procesora. • Prednosti strojnog jezika su: o izravno djelovanje na sklopovske dijelove računala o djelotvorno iskorištavanje memorije o veća brzina izvođenja napisanog programa • Nedostatci strojnog programa su: ▫ složena izrada programa ▫ program je rađen za samo jedan tip procesora

Simbolički jezici niske razine • Simbolički jezici su razvijeni da bi ljudima olakšali programiranje.

Simbolički jezici niske razine • Simbolički jezici su razvijeni da bi ljudima olakšali programiranje. • Čovjek lakše pamti simbole od binarnih brojeva. • Asembler (engl. assembler) je simbolički jezik u kojem je svaka binarna naredba strojnog jezika predočena odgovarajućim simbolom. • Simboli su najčešče kombinacije slova (kratice engleskog opisa naredbi) MC 68000 Simbolički jezik Strojni jezik MOVE. W D 4, D 5 0011 101 000 100 ADDI. W #9, D 2 0000 010 111 100 0000 1001

 • Program napisan u asembleru mora biti preveden u binarni oblik, da bi

• Program napisan u asembleru mora biti preveden u binarni oblik, da bi bio razumljiv procesoru • Svaka simbolička naredba se prevodi u jedan ili više bajtova strojnog jezika Asembler Prevedeno u strojni jezik MOV AX, 5 10111000 00000101 0000 MOV BX, 10 1011 00001010 0000 ADD AX, BX 00000011 11000011 SUB AX, 1 00101101 00000000 HTL 11110100 Sl. Usporedni prikaz naredbi u simboličkom i strojnom jeziku

 • Prednosti simboličkog jezika su: ▫ bolja čitljivost ▫ lakše razumjevanje od binarnog

• Prednosti simboličkog jezika su: ▫ bolja čitljivost ▫ lakše razumjevanje od binarnog zapisa • Nedostatci simboličkih jezika su: ▫ teško pisanje i ispravljanje ▫ ovise o vrsti i građi računala (izvršavaju se samo na procesoru za koji su pisani)

Simbolički jezici visoke razine • Da bi se još više olakšalo programiranje i da

Simbolički jezici visoke razine • Da bi se još više olakšalo programiranje i da bi se isti program mogao izvršavati na različitim računalima (procesorima) stvoren je niz simboličkih jezika visoke razine • Skup naredbi strojnog jezika se predočava jednom simboličkom naredbom • Programi napisani u nekom od viših programskih jezika su neovisni o računalu (o procesoru) na kome se izvršavaju • Naredbe viših programskih jezika: ▫ nalikuju govornom jeziku ▫ lakše su za pamćenje i upotrebu ▫ naredbe se prvode u mnogo bajtova

Simbolički jezici visoke razine mogu biti: ▫ jezici opće namjene ▫ objektno orjentirani jezici

Simbolički jezici visoke razine mogu biti: ▫ jezici opće namjene ▫ objektno orjentirani jezici • Jezici opće namjene su: ▫ BASIC, FORTRAN, COBOL, , PASCAL, C • Objektno orjentirani jezici su: ▫ C++, Visual BASIC ▫ Java (prenosivi program, ne ovisi o računalu ni o operacijskom sustavu)

Jezični prevoditelji • Procesor (CPU) je sposoban prihvaćati samo strojni program. • Svaki drugi

Jezični prevoditelji • Procesor (CPU) je sposoban prihvaćati samo strojni program. • Svaki drugi oblik programa potrebno je prije izvođenja prevesti u strojni jezik. • Program napisan u prikazu koji nije binarni zove se izvorni program (engl. source code) i prije izvođenja ga moramo prevesti u strojni program. • Programer gotovo uvijek piše program u izvornom obliku a računalu prepušta prevođenje. • Jezične prevoditelje najčešće dijelimo na: ▫ interpretere (interpretatore, engl. interpreter) ▫ kompajlere (kompilatore, engl. compiler).

Kompajler • Program koji prevodi izvorni kod programa zapisanog u jeziku visoke razine u

Kompajler • Program koji prevodi izvorni kod programa zapisanog u jeziku visoke razine u strojni samo jednom i to tijekom prevođenja ili kompajliranja. • Postoje i kompajleri koji prevode iz jednog jezika visoke razine u drugi jezik visoke razine. Interpreter • Programi prevodioci, koji prevode i odmah izvršavaju svaku naredbu višeg programskog jezika. • Pomoću interpretera ne možemo dobiti program u strojnom jeziku, nego se program svaki put kada ga želimo izvršiti mora ponovno prevesti interpreterom. • Prednosti kompajlera: brži rad od interpretera i zaštićen izvorni program. • Nedostatci kompajlera: odvojenost prevedenog i izvornog programa.

Objektno usmjereni programi • Pišu se sastavljanjem gotovih komponenata • Komponente od kojih je

Objektno usmjereni programi • Pišu se sastavljanjem gotovih komponenata • Komponente od kojih je program sastavljen se pišu i provjeravaju odvojeno od cjeline • Upotreba u različitim programima • Razmjena poruka između objekata programa • Za izradu programa se koriste ▫ objekti (engl. object, class) ▫ Objektno usmjereni programi (engl. OOP – object oriented programs) ▫ Objektno usmjereno programiranje (engl. OOP – object oriented programing)

Programski jezici neovisni o sklopovlju i operacijskom sustavu • Prenosivi (engl. portable) – programski

Programski jezici neovisni o sklopovlju i operacijskom sustavu • Prenosivi (engl. portable) – programski jezici opće namjene koji su primjenjivi na različitim vrstama računala i os • Jedan te isti program napisan u npr. C++ može se izvoditi na više računala koja rade pod različitim os • Mali broj programa je u praksi prenosiv (izvođenje bez izmjena) • Najpoznatiji prenosivi programski jezik je Java

Java • Snažno objektno usmjeren programski jezik opće namjene • Potpuno prenosiv Java bytecodes

Java • Snažno objektno usmjeren programski jezik opće namjene • Potpuno prenosiv Java bytecodes

Pomoćni postupci programiranju • Računalo ima sposobnost pamćenja i logičkog rasuđivanja, pa će riješiti

Pomoćni postupci programiranju • Računalo ima sposobnost pamćenja i logičkog rasuđivanja, pa će riješiti zadatak samo ako dobije uputstvo, niz naredbi • Naredbe moraju biti u obliku u kojem ih računalo razumije. • Da bi omogućili pretvorbu zadataka iz svijeta koji okružuje računalo u oblik prihvatljiv računalu, služimo se pomoćnim postupcima: ▫ planiranjem ▫ analizom zadatka ▫ specifikacija zadataka ▫ algoritmom ▫ pseudokodom ▫ dijagramom tijeka i dr.

Pomoćni postupci programiranju • Što je zadatak koji treba računalom riješiti složeniji, to je

Pomoćni postupci programiranju • Što je zadatak koji treba računalom riješiti složeniji, to je potrebno više pomoćnih postupaka. • Ti su postupci međusobno povezani i redovito se sljedeći postupak oslanja na prethodni. • Što se više napreduje pri rješavanju zadatka, prikaz zadatka postaje sve podrobniji, razlučeniji na manje radnje i sličniji konačnom računalnom programu koji će dovesti do željenog cilja

Pomoćni postupci programiranju 1. Planiranjem se predviđa tko će, kada i što raditi. Planiranjem

Pomoćni postupci programiranju 1. Planiranjem se predviđa tko će, kada i što raditi. Planiranjem se mogu predvidjeti i rasporediti pojedine faze izvedbe programa 2. Analiza zadatka je rasčlamba i potpuno razumijevanje zadatka i željenih rezultata 3. Specifikacija je dokument koji sadrži podroban popis i opis zadataka i željenih retultata (specifikacija nije prijedlog kako ga riješiti već detaljan opis što je na raspolaganju i što se želi dobiti kao konačan rezultat)

Pomoćni postupci programiranju 4. Algoritam je naputak kako riješiti zadatak ili obaviti neki posao.

Pomoćni postupci programiranju 4. Algoritam je naputak kako riješiti zadatak ili obaviti neki posao. Algoritam svodi zadatak na rješavanje više jednostavnih, manjih zadataka Recept: Kuhanje čaja U posudu za kuhanje ulijemo litru vode. Zagrijavamo vodu dok ne zakuha. Skinemo posudu sa vatre. U vodu stavimo 4 vrećice čaja. Pričekamo 2 do 4 minute. Izvadimo vrećice čaja. Ulijemo čaj u 4 šalice, dodamo šećera prema potrebi.

Pomoćni postupci programiranju 5. Dijagram tijeka je (engl. flow chart) je grafički prikaz algoritma

Pomoćni postupci programiranju 5. Dijagram tijeka je (engl. flow chart) je grafički prikaz algoritma koji olakšava izvedbu programa. Dijagram tijeka: je neovisan o programskom jeziku je neovisan o računalu vizualizira zadatak sastoji se od geometrijskih likova spojenih crtama

Dijagram tijeka

Dijagram tijeka

Pomoćni postupci programiranju 6. Pseudokod je tobožnji program (grč. pseudos - laž) nalikuje na

Pomoćni postupci programiranju 6. Pseudokod je tobožnji program (grč. pseudos - laž) nalikuje na računalni program nije napisan u programskom sastoji se od kratkih izraza na govornom jeziku, svakodnevnom jeziku ukratko objašnjava zadatke algoritma osoba koja piše pseudokod ne mora znati programski jezik omogućuje jednostavan i pregledan prikaz načina rješavanja zadatka

Kako napisati pseudokod ▫ ▫ načiniti popis glavnih zadataka koje treba riješiti naš program

Kako napisati pseudokod ▫ ▫ načiniti popis glavnih zadataka koje treba riješiti naš program svaki zadatak razložiti na manje zadatke svaki zadatak opisati jednostavnim i kratkim jezičnim izrazom pseudokod mora biti jasan i podroban • Zadatak: S tipkovnice pročitaj dva cijela broja, na zaslonu ispiši pročitane brojeve i veći od pročitana dva broja. • Pseudokod: Pročitaj dva cijela broja Ispiši pročitane brojeve Odredi veći broj Ispiši rezultat Zadatak: Napiši pseudokod za strojnu izradu kruha

Programiranje • programiranje je postupak zapisivanja temeljnih radnji naredbama programskog jezika • svaki programski

Programiranje • programiranje je postupak zapisivanja temeljnih radnji naredbama programskog jezika • svaki programski jezik upotrebljava ključne riječi • pravila slaganja ključnih riječi u naredbe i programe nazivamo sintaksa • predočavanje zadatka ovisi o znanju, spretnosti i maštovitosti programera

Progrješke u programiranju Najčešće pogreške: ▫ ▫ sintaktičke logičke Sintaktičke pogreške najčešće otkrivaju jezični

Progrješke u programiranju Najčešće pogreške: ▫ ▫ sintaktičke logičke Sintaktičke pogreške najčešće otkrivaju jezični prevoditelji, koji dojavljuju gdje je pogreška pronađena Logičke pogreške uzrokuje neispravan rad programa (ispravlja ih programer)

Provjera i ispravljanje programa Logička ispravnost se osigurava provjerama i testiranjem (od strane proizvođača

Provjera i ispravljanje programa Logička ispravnost se osigurava provjerama i testiranjem (od strane proizvođača i neovisnih ispitivača) Npr. Ispitivanje Windowsa (desetci tisuća neovisnih korisnika) Bug naziv za pogrešku u programu ili sklopovlju računala Održavanje programa • mijenjanje programa tijekom životnog vijeka • poduka korisnika • izdavanje nove inačice (verzije) programa Potpora korisnicima: hepldesk (tel. ili e-mail)

Dokumentacija Izrada dokumetacije za održavanje programa je jako važna U dokumentaciju ubrajamo: ▫ ▫

Dokumentacija Izrada dokumetacije za održavanje programa je jako važna U dokumentaciju ubrajamo: ▫ ▫ upute za instalaciju priručnike za korisnike tehnički opis programa izvorni program (u posebnim slučajevima) U čemu je važnost kvalitetne dokumentacije?

Uobičajene programske strukture Programska struktura je ustrojstvo programa • opisuje načine i redoslijed rješavanja

Uobičajene programske strukture Programska struktura je ustrojstvo programa • opisuje načine i redoslijed rješavanja pojedinih zadataka do konačnog rješenja Najčešće programske strukture: ▫ pravocrtna (program se uvijek izvršava istim slijedom naredbi ) ▫ grananje (omogućuje različit tijek programa, ovisno o rezultatu uvjeta ) ▫ petlje (omogućuje ponavljane radnji)

Pravocrtna programska struktura • program se uvijek izvršava istim slijedom naredbi Npr. Zbroji dva

Pravocrtna programska struktura • program se uvijek izvršava istim slijedom naredbi Npr. Zbroji dva broja Unesi dva broja a, b Zbroji brojeve c=a+b Ispiši zbroj unesenih brojeva c

Struktura grananja • omogućuje različit tijek programa, ovisno o rezultatu postavljenog uvjeta Npr. Upiši

Struktura grananja • omogućuje različit tijek programa, ovisno o rezultatu postavljenog uvjeta Npr. Upiši cijeli broj a i ispisati poruku da li je upisani broj paran ili neparan.

Naredbe grananja • Ukoliko program zahtijeva ispitivanje i donošenje odluke struktura grananja se može

Naredbe grananja • Ukoliko program zahtijeva ispitivanje i donošenje odluke struktura grananja se može ostvariti naredbama : ▫ IF (IF. . . THEN. . . ELSE) ▫ SWITCH – CASE

Opći oblik naredbe IF : ▫ IF uvjet THEN naredba 1 (ako je uvjet

Opći oblik naredbe IF : ▫ IF uvjet THEN naredba 1 (ako je uvjet ispunjen izvršava se naredba 1, a ako nije izvršava se slijedeća linija programa) Npr. INPUT ”Unesi broj”; X IF X > 0 THEN PRINT “Broj je veći od 0” IF X<=0 THEN PRINT “Broj nije veći od 0” END

Prošireni oblik naredbe IF : • IF uvjet THEN naredba 1 ELSE naredba 2

Prošireni oblik naredbe IF : • IF uvjet THEN naredba 1 ELSE naredba 2 (ako je uvjet istinit izvršava se naredba 1 inače se izvršava naredba 2. ) Npr. INPUT ”Unesi broj”; X IF X > 0 THEN PRINT “Broj je veći od 0” ELSE PRINT “Broj nije veći od 0” END Zadatak: Napiši program koji unosi stranicu kvadrata. Ako je stranica manja od 5 , izračunaj i ispiši površinu kvadrata, a ako je jednaka ili veća izračunaj i ispiši opseg kvadrata. Zadatak riješi pomoću naredbi IF

Naredba GOTO: • Omogućava da se program nastavlja od odabranog programskog redka. • Naredba

Naredba GOTO: • Omogućava da se program nastavlja od odabranog programskog redka. • Naredba GOTO je naredba bezuvjetnog skoka • Opći oblik naredbe: GOTO ime_oznake;

Naredba SWITCH • Naredba switch – case je naredba višestrukog grananja • Iza naredbe

Naredba SWITCH • Naredba switch – case je naredba višestrukog grananja • Iza naredbe switch dolazi cjelobrojni izraz u zagradi. Rezultat cjelobrojnog izraza je cjelobrojna konstanta. Ovisno o vrijednosti konstante izvodi se odgovarajući blok naredbi (grana). • Cjelokupni switch – case blok zapisuje se unutar para otvorena - zatvorena vitičasta zagrada.

Struktura petlje • omogućuje ponavljanje nekih radnji u programu više puta Npr. Napisati program

Struktura petlje • omogućuje ponavljanje nekih radnji u programu više puta Npr. Napisati program koji izračunava opseg i površinu za kvadrat, pravokutnik ili krug po izboru.

Nastavak uskoro, . .

Nastavak uskoro, . .

Literatura • http: //www. zeegee. com/courses/oop-1 • http: //www. java. com/en/download/index. jsp • Grundler,

Literatura • http: //www. zeegee. com/courses/oop-1 • http: //www. java. com/en/download/index. jsp • Grundler, Blagojević: Informatika 1, Školska knjiga, Zagreb 2009