Programski jezici i naela programiranja 1 Teme Program
- Slides: 64
Programski jezici i načela programiranja 1
Teme • • Program Strojni jezik Asembler Simbolički jezici visoke razine BASIC Pascal C (C++) © L. Blagojević i D. Grundler, 2009 2
Teme • • Jezični prevoditelji Interpreter Kompajler Objektno usmjereni programi Prenosivi programski jezici Java bytecodes © L. Blagojević i D. Grundler, 2009 3
Teme • • Java prividno računalo Pomoćni postupci Planiranje Analiza zadatka i specifikacija Algoritam Dijagram tijeka Pseudo jezik © L. Blagojević i D. Grundler, 2009 4
Teme • • Programiranje Sintaktička pogrješka Logička pogrješka Provjera programa Održavanje programa Dokumentacija Programske strukture © L. Blagojević i D. Grundler, 2009 5
Teme • Pravocrtna struktura • Grananje • Petlja © L. Blagojević i D. Grundler, 2009 6
Program • Program je skup naredaba nanizanih strogo utvrđenim redoslijedom, čijim se izvršenjem obavlja željeni posao. • Jezik koji računalo razumije je programski jezik računala. © L. Blagojević i D. Grundler, 2009 7
Strojni jezik • U užem je smislu strojni jezik računala (engl. machine language, machine code) binarni prikaz programa za računalo. • To je jedini oblik programa koji računalo “razumije” te se svaki drugi oblik programa mora prije izvođenja prevesti u strojni oblik. • Svaki procesor ima sebi svojstven strojni jezik. © L. Blagojević i D. Grundler, 2009 8
Strojni jezik • Prednosti su strojnog jezika mogućnost izravnog djelovanja na sklopovske dijelove računala, djelotvorno iskorištenje memorije i brzina izvođenja napisanog programa. • Nedostatci su složenost postupka izradbe programa i ograničenost programa na jedan tip procesora. © L. Blagojević i D. Grundler, 2009 9
Asembler • Asembler (engl. assembler) je simbolički jezik u kome je svaka binarna naredba strojnog jezika predočena odgovarajućim simbolom. • Naredbe strojnog jezika predočuju se simbolima koji se najčešće sastoje od kombinacije nekoliko slova, npr. : ADD, SUB, CMP. © L. Blagojević i D. Grundler, 2009 10
Asembler • Program napisan u asembleru mora biti preveden u binarni oblik odgovarajućim programom prevoditeljem da bi ga procesor “razumio”. © L. Blagojević i D. Grundler, 2009 11
Simbolički jezici visoke razine • Kod simboličkih jezika visoke razine se veći ili manji skup naredaba strojnog jezika nadomješta jednom naredbom višeg programskog jezika. • Isti program napisan u simboličkom jeziku visoke razine može se primijeniti na različitim vrstama računala, tj. različitim procesorima. © L. Blagojević i D. Grundler, 2009 12
Simbolički jezici visoke razine • Simbolički jezici visoke razine opće namjene nisu namijenjeni strogo uskom području primjene, već je njima moguće rješavati relativno širok raspon zadataka. © L. Blagojević i D. Grundler, 2009 13
BASIC • BASIC je kratica od engl. beginner’s allpurpose symbolic instruction code ili u slobodnom prijevodu jezik opće namjene za početnike. • Ponajprije je namijenjen učenicima i ostalim početnicima. • Glavne su prednosti BASIC-a jednostavnost i razumljivost. © L. Blagojević i D. Grundler, 2009 14
BASIC © L. Blagojević i D. Grundler, 2009 15
Pascal • Pascal (ime je dobio prema slavnomu francuskom učenjaku Blaiseu Pascalu) ubraja se u programske jezike opće namjene, a posebice podržava tzv. strukturno programiranje. • Strukturno programiranje je skup programskih tehnika koje vode logičkoj organizaciji programa koja olakšava pisanje, održavanje i popravak programa. © L. Blagojević i D. Grundler, 2009 16
Pascal © L. Blagojević i D. Grundler, 2009 17
C (C++) • C (i inačica C++) najpopularniji je programski jezik opće namjene za profesionalnu primjenu. • Jezik je vrlo složen i velikih mogućnosti, a namijenjen je ponajprije stručnjacima koji se profesionalno bave pisanjem programa. • Temeljni razlozi velike popularnosti jezika jesu njegova djelotvornost, prilagodljivost, dobra normiranost. © L. Blagojević i D. Grundler, 2009 18
C (C++) © L. Blagojević i D. Grundler, 2009 19
Jezični prevoditelji • Izvorne programe u strojni oblik prevode programi koji se nazivaju jezični prevoditelji: – interpreteri (interpretatori, engl. interpreter), – kompajleri (kompilatori, engl. compiler). • Procesor je sposoban prihvaćati samo strojni oblik programa. • Svaki drugi oblik programa potrebno je prije izvođenja prevesti u strojni oblik. © L. Blagojević i D. Grundler, 2009 20
Jezični prevoditelji © L. Blagojević i D. Grundler, 2009 21
Interpreter • Svaku naredbu izvornog programa prevodi u strojni oblik u trenutku izvođenja programa. • Prevodi se pri svakom izvođenju programa. • Izvorni program je moguće izvršiti samo ako je na računalu prisutan i interpreter koji prevodi naredbe u strojni oblik. • Relativno sporije izvršavanje programa u usporedbi s drugom vrstom jezičnih prevoditelja. © L. Blagojević i D. Grundler, 2009 22
Kompajler • Prevoditelj koji prevodi izvorni program tako da analizira cjelokupni izvorni program odjednom. • Kao rezultat nastaje prevedeni, izvršni tj. strojni oblik programa. • Izvorni i izvršni program potpuno su odvojeni i pri izvođenju neovisni. • Izvršni se program može izvršavati na računalu na kome nema kompajlera. © L. Blagojević i D. Grundler, 2009 23
Objektno usmjereni programi • Objektno usmjereno programiranje je postupak izradbe složenog programa uporabom skupa objekata koji međusobno razmjenjuju poruke. • Glavne značajke objektno usmjerenih programa jesu prilagodljivost, kvaliteta i pouzdanost te povećana proizvodnost programera koji ih rabe. © L. Blagojević i D. Grundler, 2009 24
Objektno usmjereni programi • Gotovi dijelove programa nazivaju se objektima (engl. object, class). • Programi koji ih rabe nazivaju se objektno usmjerenim programima (engl. OOP – object oriented programs). • Glavne značajke objektno usmjerenih programa jesu prilagodljivost, kvaliteta i pouzdanost te povećana proizvodnost programera koji ih rabe. © L. Blagojević i D. Grundler, 2009 25
Prenosivi programski jezici • Simbolički jezici visoke razine načelno su primjenjivi na različitim vrstama računala i različitim operacijskim sustavima pa se kaže da su prenosivi (engl. portable). • To, primjerice, znači da se isti program napisan u jeziku C++ može izvoditi na različitim računalima koja rade pod različitim operacijskim sustavima. © L. Blagojević i D. Grundler, 2009 26
Java • Java je snažan objektno usmjereni programski jezik opće namjene nalik na jezik C++. • Glavna mu je prednost pred ostalim programskim jezicima potpuna prenosivost, tj. neovisnost o računalu i operacijskom sustavu na kojemu će se izvoditi. © L. Blagojević i D. Grundler, 2009 27
Java bytecodes • Izvorni Java program se prevodi Java kompajlerom koji se mora nalaziti na programerovu računalu. • Kao rezultat rada Java kompajlera nastaje engl. Java bytecodes. • Java bytecodes oblik programa je neovisan o računalu i operacijskom sustavu. • Java bytecodes nije strojni oblik programa ni za jedno stvarno računalo. © L. Blagojević i D. Grundler, 2009 28
Java prividno računalo • Java bytecodes se isporučuje korisniku programa. • Na korisnikovu računalu na kojem se program želi izvršiti, mora postojati drugi program prevoditelj (interpreter). • Taj se program prevoditelj naziva Java prividno ili virtualno računalo. Zadatak mu je prevesti Java bytecodes u strojni jezik korisnikova računala i izvršiti ga. © L. Blagojević i D. Grundler, 2009 29
Java © L. Blagojević i D. Grundler, 2009 30
Pomoćni postupci • • Planiranje Analiza zadatka i specifikacija Algoritam Dijagram tijeka Pseudo jezik Provjera i ispravljanje programa Održavanje Dokumentacija © L. Blagojević i D. Grundler, 2009 31
Planiranje • Planiranjem se predviđa tko će, kada i što raditi. • Pri izradbi složenih programa često sudjeluje mnogo ljudi pa je planiranje veoma važan dio pripreme kako bi se uskladio rad sviju. © L. Blagojević i D. Grundler, 2009 32
Analiza zadatka i specifikacija • Analiza zadatka je raščlamba i potpuno razumijevanje zadatka i željenih rezultata. • Rezultat analize je specifikacija zadatka, koja sadržava dovoljno podataka da bi se taj zadatak mogao riješiti. • Specifikacija je dokument koji sadržava podroban popis i opis zadataka i željenih rezultata. © L. Blagojević i D. Grundler, 2009 33
Algoritam • Algoritam je naputak kako riješiti neki zadatak ili obaviti neki posao. • Algoritam redovito svodi cjelokupan zadatak na rješavanje više jednostavnijih, manjih radnji. • Algoritam sastoji od niza mehaničkih radnji koje, slijedeći upute, izvršiti bilo tko (uključujući i stroj). © L. Blagojević i D. Grundler, 2009 34
Dijagram tijeka • Dijagram tijeka (engl. flow chart) je grafički prikaz algoritma. • To je pomoćno sredstvo koje je neovisno o programskom jeziku i računalu, a vizualizira zadatak pa on postaje pregledniji. • Dijagram tijeka sastoji se od niza jednostavnih geometrijskih likova spojenih usmjerenim crtama. Usmjerene crte pokazuju tijek rješavanja zadatka. © L. Blagojević i D. Grundler, 2009 35
Dijagram tijeka © L. Blagojević i D. Grundler, 2009 36
Dijagram tijeka • Pješak za zadani vremenski period učini određeni broj koraka. • Zadatak je odrediti brzinu pješaka u km/h i m/s ako je poznata prosječna duljina njegovog koraka. © L. Blagojević i D. Grundler, 2009 37
Pseudo jezik • Pseudo jezik ili pseudokod je tobožnji program (grč. pseudos – laž). • Pseudo jezik zapravo nije napisan u programskom jeziku koji bi se mogao izravno primijeniti na računalu. • Pseudo jezik se sastoji od kratkih izraza na govornom jeziku koji opisuju i ukratko objašnjavaju pojedine zadatke algoritma. © L. Blagojević i D. Grundler, 2009 38
Pseudo jezik © L. Blagojević i D. Grundler, 2009 39
Pseudo jezik © L. Blagojević i D. Grundler, 2009 40
Pseudo jezik © L. Blagojević i D. Grundler, 2009 41
Pseudo jezik © L. Blagojević i D. Grundler, 2009 42
Pseudo jezik © L. Blagojević i D. Grundler, 2009 43
Pseudo jezik © L. Blagojević i D. Grundler, 2009 44
Pseudo jezik • Napisati algoritam u pseudo jeziku za unos dva broja, njihovo zbrajanje i ispis. ulaz (a, b); c : = a+b; izlaz (c); © L. Blagojević i D. Grundler, 2009 45
Pseudo jezik • Napisati algoritam u pseudo jeziku koji će za unesenu cijenu nekog proizvoda c i postotka sniženja p računati cijenu proizvoda nakon sniženja. ulaz (c, p); s : = c - (c*p)/100; izlaz (s); © L. Blagojević i D. Grundler, 2009 46
Pseudo jezik • Napisati algoritam u pseudo jeziku koji će za uneseni broj izračunati i ispisati drugi korijen, apsolutnu vrijednost, zaokruženu vrijednost realnoga broja na najbliži cijeli broj i najveći cijeli broj manji ili jednak od unesenog broja. ulaz (x); a : = Sqrt(x); b : = Abs(x); c : = Round(x); d : = Trunc(x); izlaz (a, b, c, d); © L. Blagojević i D. Grundler, 2009 47
Pseudo jezik • Napisati algoritam u pseudo jeziku koji će za unesena dva broja izračunati i ispisati kvocijent, cjelobrojni dio kvocijenta i ostatak dijeljenja. ulaz (x, y); a : = x/y; b : = x DIV y c : = x MOD y izlaz (a, b, c); © L. Blagojević i D. Grundler, 2009 48
Programiranje • Programiranje (kodiranje) je postupak zapisivanja temeljnih radnji naredbama odabranog programskog jezika. • Svaki programski jezik rabi vlastiti, ograničeni skup riječi koje imaju posebna značenja. Takve se riječi nazivaju ključnim riječima. • Za svaki su programski jezik propisana stroga pravila slaganja ključnih riječi u naredbe i program. Takva se pravila nazivaju sintaksa. © L. Blagojević i D. Grundler, 2009 49
Sintaktička pogrješka • Pogrješka koja nastaje zbog nepoštivanja propisane sintakse naziva se sintaktička pogrješka. • Sintaktičke pogrješke najčešće je u stanju otkriti jezični prevoditelj s pomoću kojega se izvorni oblik programa prevodi u izvršni, tj. strojni. © L. Blagojević i D. Grundler, 2009 50
Logička pogrješka • Pogrješka koja uzrokuje neispravan rad programa, naziva se logička pogrješka. • Logičku ispravnost programa, tj. ispravnost u smislu da program obavlja zadani zadatak, mora osigurati programer i tu mu računalo ne može pomoći. © L. Blagojević i D. Grundler, 2009 51
Provjera programa • Logička ispravnost programa osigurava se provjerama ili testiranjem. • Provjera ili testiranje programa provodi se kod proizvođača programa i neovisnih ispitivača. • Engl. bug je naziv za pogrješku u programu ili sklopovlju računala. © L. Blagojević i D. Grundler, 2009 52
Održavanje programa • Postupak mijenjanja programa tijekom njegovog životnog vijeka naziva se održavanje programa. • U određenim vremenskim razdobljima izdaju se nove inačice (verzije) programa. © L. Blagojević i D. Grundler, 2009 53
Dokumentacija • U dokumentaciju se ubrajaju, primjerice, uputa za instaliranje programa i priručnici za korisnika. © L. Blagojević i D. Grundler, 2009 54
Programske strukture • Programska struktura je ustrojstvo programa, tj. način i redoslijed rješavanja pojedinih manjih radnji da bi se došlo do konačnog rješenja zadatka. – Pravocrtna programska struktura (slijed, niz) – Grananje – Petlja © L. Blagojević i D. Grundler, 2009 55
Pravocrtna struktura • Pravocrtna programska struktura (slijed, niz) je pravocrtna i program se uvijek izvršava istim slijedom naredbi. • Npr. progam za unos dva broja, njihovo zbrajanje i ispis. ulaz (A, B); C : = A + B; izlaz (C); © L. Blagojević i D. Grundler, 2009 56
Grananje • Grananje je programska struktura koja omogućuje različit tijek programa, ovisno o rezultatu postavljenog uvjeta. • Rezultat postavljenog uvjeta mora biti jedno od dva stanja: zadovoljen/nezadovoljen, istina/laž, da/ne. © L. Blagojević i D. Grundler, 2009 57
Grananje • Korisnik unosi težinu pisma, a program izračunava i ispisuje poštansku naknadu. ulaz (x); ako je x < 20 onda izlaz („Poštanska naknada iznosi 2, 80 kn“) inače ako je x < 100 onda izlaz („Poštanska naknada iznosi 5 kn“) inače ako je x < 250 onda izlaz („Poštanska naknada iznosi 7 kn“) inače ako je x < 500 onda izlaz („Poštanska naknada iznosi 10 kn“) inače ako je x < 1000 onda izlaz („Poštanska naknada iznosi 13, 80 kn“) inače ako je x < 2000 onda izlaz („Poštanska naknada iznosi 20 kn“) inače izlaz („Pošiljka je preteška i ne smatra se pismom“); © L. Blagojević i D. Grundler, 2009 58
Petlja • Programska struktura petlje omogućava ponavljanje jedne ili više naredbi. • Petlja može biti bezuvjetna, pri čemu se izvršava unaprijed zadan broj puta ili uvjetna pri čemu broj ponavljanja petlje ovisi o postavljenom uvjetu. © L. Blagojević i D. Grundler, 2009 59
Petlja • Npr. treba ispisati prvih sto parnih brojeva. za i : = 1 do 100 činiti { ako je i MOD 2 = 0 onda izlaz (i); } © L. Blagojević i D. Grundler, 2009 60
Pitanja za provjeru znanja 1. Što je naredba, a što program? 2. Zašto se programi malokad pišu strojnim jezikom? 3. Koje su glavne prednosti simboličkih programskih jezika visoke razine pred strojnim jezikom? 4. Zašto je simboličke programske jezike visoke razine potrebno prevoditi? 5. Po čemu se razlikuje prevođenje interpreterom od prevođenja kompajlerom? © L. Blagojević i D. Grundler, 2009 61
Pitanja za provjeru znanja 6. Kakva je razlika između programskih jezika opće namjene i namjenskih programa? 7. Koje su pobude potaknule razvoj objektno usmjerenih programa? 8. Koje su glavne značajke programa Java? 9. Zašto je potrebna analiza zadatka? 10. Što je algoritam? 11. Čemu služi dijagram tijeka? © L. Blagojević i D. Grundler, 2009 62
Pitanja za provjeru znanja 12. Koji se geometrijski likovi uobičajeno rabe pri crtanju dijagrama tijeka i koje je njihovo značenje? 13. Može li pseudo jezik pisati osoba koja ne zna ni jedan programski jezik za računalo? 14. Kakve su sintaktičke, a kakve logičke pogrješke u računalnom programu? 15. Tko provjerava ispravnost programa? 16. Što je to engl. Bug? © L. Blagojević i D. Grundler, 2009 63
Pitanja za provjeru znanja 17. Zašto je grananje važna programska struktura? 18. Što je programska petlja i kad se ona rabi? 19. Kakva je razlika između uvjetne i bezuvjetne petlje? 20. Što su to ugnježđene petlje? © L. Blagojević i D. Grundler, 2009 64
- Umjetni jezik
- Objektno orijentisano programiranje
- Programski jezici i strukture podataka
- Visi programski jezici
- Prevodjenje programskih jezika
- Mašinski jezik
- Programski jezici tfzr
- Dunja dulčić
- Naela
- Pseudo jezik
- Naela aspirational standards
- Faze programiranja
- Php programiranje osnove
- Osnove objektno orijentisanog programiranja
- Osnove java programiranja
- Metodologija programiranja
- Podjela jezika u svijetu
- Skriptni jezici
- Asemblerski jezici
- Skriptni jezici i web programiranje
- Skript jezici
- Jezici u europi
- Cv jezici
- Violeta moretti
- Prolog programski jezik
- Programski jezik pascal
- Izvorna programa
- Vrste programskih jezika
- Repeat 3 fd 100 rt 120
- Fortran programski jezik
- Djelomični količnik
- Programski jezik r
- Osnovni programski jezik
- Delphi programski jezik
- Python programski jezik
- S struktura
- Programski jezik java
- C# programski jezik
- Programski jazici
- Diskretna matematika etf
- Programski jezik c
- Jupiter programski jezik
- Sql programski jezik
- Zanimljive teme za izlaganje
- Prezentacije iz informatike za 5 razred
- Whats the theme
- Floare albastra explicatia titlului
- Definitie realism
- Informatika prezentacija
- Glavna rasprava
- Ekonomske teme za prezentaciju
- Maturski rad naslovna strana
- Minimum kvadratne funkcije
- Projektna nastava teme
- Ancheta sociologica
- Analiza e pasqyrave financiare teme diplome
- Teme za oglednu aktivnost
- Motive literare romantice
- Tema iubirii floare albastra
- Alexandru lapusneanu nuvela
- Roditeljski sastanak dnevni red
- Dios de balde
- Aun retienes tu integridad
- Temele liricii eminesciene
- Teme za stručni ispit odgojitelja