43
Programiranje Josip Mihaljević

Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Embed Size (px)

Citation preview

Page 1: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

ProgramiranjeJosip Mihaljević

Page 2: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Što je program?

• program je niz naredbi koje se izvode točno određenim redoslijedom s točno određenim ciljem naredba je temeljni dio programa

• programe izrađuju programeri koristeći jedan od ponuđenih programskih jezika (C++, C, Java, Python itd.) stvaraju naredbe za aktivnosti računala koje se pokreću na temelju

korisnikovih akcija (pritiska miša, tipkovnice ili ekrana)

• korisnik komunicira s računalom s pomoću programa

1

Page 3: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Vrste programa

• sistemski programi programi koji omogućuju i upravljaju radom računala i aplikacijskih

programa

operativni sustavi (Windows, Linux itd.), pokretački programi (engl. driveri)

• aplikacijski programi programi koji se dodatno instaliraju na računalo kako bi proširili

funkcionalnost računala

programi za obradu teksta, programi za izradu prezentacija, mrežni preglednici, igre itd.

2

Page 4: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Računalni jezik

• jezici koji se koriste u komunikaciji s računalima

• tipovi računalnih jezika: programski jezici (Python, C#, C++, Pascal, Java itd.) – koriste se za

izradu računalnih desktop programa i mobilnih aplikacija

skriptnih jezici (JavaScript, JScript, ActionScript) – koriste se za izradu interaktivnog sadržaja na internetu (mrežne igre, interaktivne karte itd.)

upitni jezici (SQL) – koriste se za komunikaciju s bazom podataka

jezici za označavanje (HTML, XML) – jezici koji se koriste za označavanje različitih dijelova ljudskog teksta koje onda računalo s obzirom na oznaku obradi po zadanim uputama

3

Page 5: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Programski jezici

• skup ključnih riječ i pravila koje računalo razumije

• generacije programskih jezika:

4

I. generacija

• strojni jezici

• koriste se samo binarni sustav za komunikaciju (0 i 1)

II. generacija

• asembler jezici

• numerički kodovi postaju zamijeni riječima (npr. ADD za zbrajanje, MUL za množenje)

• prebacuju se u binarne brojeve, tj. kompajliraju

III. generacija

• viši programski jezici (dorađena verzija program druge generacije)

• nezavisni su od računala na kojem rade (kod se može prenosit s jednog računala na drugo za rad)

• C#, C++, Python, Ruby, C, Pascal, LOGO, BASIC

IV. generacija

• npr. upitni jezici za baze podataka

• ne moraju ih nužno koristiti programeri jer su mnogo jednostavniji za rad (jednom naredbom može se dohvatiti ogromna količina podataka)

niži programski jezici

Page 6: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

5

Page 7: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Program koji zbraja dva broja

6

(c = a + b)strojni jezik

00100100000100010010010100010010001000100001

0011

asembler jezik

LOAD a

ADD b

STORE c

JAVA

c = a+b

Page 8: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Jezični prevoditelji

• interpreteri izravno prevode i izvode svaku naredbu programa (red po red) pisanog

u višem programskom jeziku (koriste ih Python i Ruby)

• kompajleri prevode programske jezike više generacije (npr. treće) u izvršni kod

(binarni); tijekom prijevoda stvaraju datoteku za pokretanje programa (.exe) te knjižnice (engl. libraries) gdje je pohranjen dodatan kod za izvršavanje programa (koriste ih C i C++)

7

kompajler

.exenastajanje računalnog programa s pomoću kompiliranja

Page 9: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Primjena popularnih računalnih jezika

• izrada mobilnih aplikacija Java (Android), Swift (iOS), C++, C# (Windows phone)

• izrada desktop programa C# (Windows), Java, Python (Linux), Swift i C (OS X)

• izrada i oblikovanje mrežnih stranica HTML, CSS, JavaScript, jQuery

• izrada mrežnih aplikacija Java, PHP, Ruby, Python, C#, JavaScript

• rad s bazama podataka: SQL

• pohrana i prijenos strukturiranih podataka između računalnih sustava XML, JSON

8

Page 10: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

C

• C je kompilirani (sažeti), proceduralni jezik razvijen 1972. Iakoje C relativno star jezik, još uvijek se naširoko koristi u sistemskom programiranju, pisanju drugih programskih jezika iu ugrađenim sustavima.

• omogućuje i uključivanje naredbe pisane u asembleru, zbog čega je zajedno s mogućnošću direktnog pristupa pojedinim bitovima, bajtovima ili cijelim blokovima memorije, pogodan za pisanje sistemskog softvera

9

Page 11: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

C#

• C# je objektno orijentirani programski jezik koji je razvioMicrosoft. Sličan je programskim jezicima Java i C++. Popularan alat za izradu videoigra Unity koristi se C# kaoprogramskim jezikom za stvaranje logike igara.

• dosta se koristi u Microsoft Visual Studio alatu za izradu aplikacija

10

Page 12: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

C++

• C++ je programski jezik opće namjene i srednje razine s podrškom za objektno orijentirano programiranje.

• Unatoč svojim godinama, C++ se koristi u širokom spektruaplikacija, od igara do uredskih alata.

11

Page 13: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Java

• Java je objektno orijentirani programski jezik.

• Velika je prednost Jave u odnosu na većinu programskih jezikato što se programi pisani u Javi mogu izvoditi bez preinaka nasvim operativnim sustavima za koje postoji JVM (Java Virtual Machine), dok je klasične programe pisane primjerice u C-u potrebno prilagođavati platformi(operativnom sustavu) na kojojse izvode.

12

Page 14: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Swift

• programski jezik koji je zamijenio objective-C kod razvoj aplikacija za Apple uređaje

• ima mogućnost prikaza rezultata programiranja u stvarno vrijeme

13

Page 15: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Ruby

• Ruby je višeplatformski jezik opće namjene i otvorenog koda.

• Popularne primjene jezika uključuju sistemsku administraciju iizradu internetskih aplikacija, ali od 2006. programeri polakonalaze i neke netipične primjene kao stvaranje elektroničkeglazbe, programiranje hardvera i stvaranje računalnih igara.

14

Page 16: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Python

• Python je programski jezik opće namjene, interpretiran i visokerazine koji je stvorio Guido van Rossum 1990. godine.

• Zbog jednostavne sintakse smatra se jednim od najlakšihprogramskih jezika. Može se koristiti za različite namjene poputizrade mrežnih aplikacija i obrade podataka.

• Poznate društvene mreže Pinterest i Instagram koriste se Pythonom u pozadini za obavljanje određenih funkcija.

15

Page 17: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

HTML5

• HTML je prezentacijski jezik za izradu mrežnih (engl. web) stranica.

• HTML je jednostavan za uporabu i lako se uči, što je jedan od razloga njegove opće prihvaćenosti i popularnosti.

16

Page 18: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

CSS3

• CSS je stilski jezik koji se korsti za grafičko oblikovanje HTML elemenata. Time se mnogo korsti u grafičkom dizajniranjustranica.

17

Page 19: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

JavaScript

• JavaScript je skriptni programski jezik koji se izvršava namrežnom pregledniku (engl web browser).

• Zbog lakšeg korištenja napravljen je da bude sličan Javi, ali nijeobjektno orijentiran kao Java

18

Page 20: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

jQuery

• jQuery je skriptna knjižnica koja pruža bržu i lakšu gradnjumrežnih stranica pisanih u jeziku JavaScript. S jednom linijomjQuery koda možemo postići isto što i s 10 linija JavaScript koda.

19

JavaScript JQuery

Dohvaćanje elementa mrežne stranice i njegovo spremanje u varijablu.

var id = document.getElementById("id") var id = $("#id")

Definiranje funkcije koja se izvršava prilikom klika na element.

id.addEventListener('click',function(){alert("Hello"); id.click(function(){ alert("Hello"); });

Izmjena CSS svojstva elementa.

var css = { "font-size": "12px", "left": "200px", "top": "100px"

}; for(var svojstvo in css){id.style[svojstvo] = css[svojstvo];}id.css({fontsize: '12px', left: '200px', top: '100px'});

Page 21: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

PHP

• PHP je programski jezik namijenjen programiranju dinamičnihmrežnih stranica. PHP se ističe širokom podrškom raznih bazapodataka i internetskih protokola te raspoloživosti brojnihprogramerskih knjižnica.

20

Page 22: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

SQL

• SQL je najpopularniji računalni jezik za izradu, traženje, ažuriranje i brisanje podataka iz računalnih baza.

21

Page 23: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

XML (EXtensible Markup Language)

• jezik za strukturirano označavanje podataka

• jezik koji je čitljiv ljudima i računalima

• koristi se za pohranu i strukturu podataka koji se mogu prenositi među sustavima

<?xml version="1.0"?>

<kviz>

<pitanje_odg val="pit1">

<pitanje>

Koji se skriptni jezik koristi za izradu interaktivnog sadržaja na mrežnoj stranici?

</pitanje>

<odgovor val="1">

JavaScript

</odgovor>

<odgovor val ="2">

JAVA

</odgovor>

</ pitanje_odg >

</kviz >22

Page 24: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Algoritam

• algoritam je precizna uputa kako obaviti neku radnju ili opisati rješenje određenog problema

• slijed dobro definiranih naredbi za ostvarenje zadatka

• u programiranju algoritam je slijed radnji ili postupaka (vezanih za pisanje koda) koji dovode do rješenja odeđenog programerskog problema

23

Page 25: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Algoritam

• kod algoritma mora jasno biti definiran početni objekt nad kojim se obavljaju operacije npr. dva višeznamenkasta prirodna broja (11, 13)

• algoritam mora biti sastavljen od konačnog broja koraka koji vode do završnog objekta npr. zbroji prve dvije višeznamenkaste brojke (11 + 13)

• kod algoritma pojavljuju se završni objekti (rezultat koji bi trebali dobiti algoritmom) npr. suma brojeva (24)

24

Page 26: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Algoritmi mogu biti:

• specijalizirani mogu se primijeniti samo na pojedine početne objekte

• općeniti dozvoljavaju različite vrijednosti početnih objekata s time da se kod

takvih algoritama određuje klasa ulaznih objekata koji su dozvoljeni

25

Page 27: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Algoritam

• algoritme je moguće prikazati dijagramom tijeka ili pseudokodom

26dijagram tijeka pseudokod

Page 28: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Dijagram toka

• grafički prikazuju algoritam

• olakšavaju kasniju izradu programa pogodni su za analizu problema i traženje povoljnih rješenja

27

- početak, kraj ili prekid programa

- ulaz podataka

- izlaz podataka

- priključne točke za povezivanje raznih dijelova programa

- naredbe koje se obrađuju

- grananje ili mjesto odluke

Page 29: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Primjeri dijagrama

28

Početak

Kraj

Upiši a, b

z = a + b

Algoritam za ispis zbroja dvaju brojeva Algoritam za ispis manjeg od dvaju upisanih brojeva

Početak

Upiši a, b

a = b

Kraj

a < b

NE

DA

Page 30: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

29

Page 31: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Pseudokod

• zapis rješenja sličan klasičnom programu, ali nije vezan uz programski jezik koristi ključne riječi izdvojene iz govornog jezika i strukturu računalnog

programa

• primjer psudokoda za ispis najmanjeg od triju učitanih brojevapočetak

učitaj (a, b, c) min:= a;ako je b < c onda

ako je b < a onda min:=b;inače

ako je c < a onda min:=c;ispiši (min);

kraj

30

Page 32: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Pseudokod - sintaksa

31

Page 33: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Operatori

• operator je znak ili riječ koja određuje operaciju

• osnovni logički operatori su:

• relacijski operatori:

32

• aritmetički operatori

Page 34: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Osnovni algoritamski postupci

• slijed naredbe uvijek slijede jedna iza druge

• grananje programska struktura koja omogućuje različiti tijek odvijanja programa ovisno

o rezultati postavljenog uvjeta

• ponavljanje (petlja) ponavlja se određeni niz naredbi sve dok se ne zadovolji određeni uvjet

(ponekad znamo koliko puta se postupak treba ponoviti, a ponekad broj ponavljanja ovisi o rezultatima izvršenog niza naredbi koji se ponavlja)

33

a < 7DA NE

Page 35: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Postupak izrade programa

34

Analiza problema

Opis ulaznih i izlaznih podataka

Određivanje algoritma

Crtanje dijagrama tijeka

Pisanje programa u nekom od programskih

jezika

Prevođenje programa i ispravljanje formalnih

pogrešaka

Izvršavanje i testiranje programa te ispravljanje

logičkih grešaka

korištenje programa

održavanje programa

Konceptualni dio izrade Tehnički dio izrade

Page 36: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Varijable

• podatak pohranjen u računalu kojem pridodajemo određenu vrijednost

• nazive varijabli sami određujemo te možemo manipulirati njihovim vrijednostima

• vrste vrijednosti: cjelobrojni brojevi (engl. integer)

decimalni brojevi (engl. float ili double) (isključivo se odvajaju točkom)

niz znakova (engl. string)- pišu se unutar dvostukih ("primjer") ili jednostukih ('primjer') navodnika

liste

rječnici

itd.

35

Page 37: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Varijable

• nazivi varijabli moraju biti napisani sa znakovima iz ASCII koda (nema č, ć, đ, ž, š) u primjeru ispod zelenom bojom su prikazani nazivi varijabli, a crvenom

njihove vrijednosti

• varijable u sebi mogu sadržavati vrijednosti drugih varijabli npr.

- ime = ‘Josip’

- prezime = ‘Mihaljević’

- dob = 84

- osoba = ime + prezime + dob (spremljena je vrijednost sve tri varijable u jednu varijablu)

• razlikuju se varijable napisane velikim i malim slovom ime nije isto kao i IME (to su dvije različite varijable)

36

Page 38: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Operatori

• simboli koji predstavljaju računske operacije + - * / ** (potenciranje) % (ostatak od dijeljenja)

• osim za računanja brojeva operatori + i * mogu se koristiti za spajanje niza znakova print ‘tekst1’+ ‘ tekst2’ (tekst1tekst2) print ‘tri_puta’*3 (tri_putatri_putatri_puta)

37

Page 39: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Logički izrazi

• izraz koji može biti točan ili netočan (true ili false; 1 ili 0)

• npr. 5 == 5 (true)

5 < 2 (false)

5 > 2 (true)

38

Page 40: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Logički operatori

• postoje tri logička operatora: and

or

not

• sjetite se Boolove algebre: 5 < 2 and 3 > 2 (false) => 0 ^ 1

5 > 2 and 3 > 2 (true) => 1 ^ 1

5 < 2 or 3 > 2 (true) => 0 v 1

5 < 2 or 3 > 2 and 4 < 1 (false) => 0 v 1 ^ 0

39

Page 41: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Funkcija

• iskaza koji obavlja izračune

• uzima argument i vrača izračun

• postoje ugrađene funkcije (npr. len, type, int) i funkcije koje korisnik sam definira(npr. stvorimo funkciju koja zbraja dva broja).

• varijable definirane unutar funkcije nazivaju se lokalnim varijablama varijablama se može pristupiti samo unutar funkcije

40

Page 42: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

If - else uvjet

• koristi se za grananje koda koji se treba izvršiti provjerava vrijednost ulaznog podatka te na temelju toga izvršava

određeni kod

• nalazi se u svim programskim jezicima

• npr.if (broj > 5):

print ‘broj je veći od 5’elif (broj == 5):

print ‘broj je jednak 5’else:

print ‘broj je manji od 5’

41

Page 43: Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se naširokokoristi u sistemskom programiranju, pisanju drugih programskih jezika i u

Iteracija

• ponavljanje radnje kroz određeni skup podataka onoliko puta koliko je zadano (izvršavaju određen dio kod onoliko puta koliko je zadao programer) koristi se za pregled i obradu velikih skupova podataka

• for i while petlja najčešće se koriste za iteraciju

42