Što je program?
1
•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
3.
Vrste programa
2
• sistemskiprogrami
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.
4.
Računalni jezik
3
• jezicikoji 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
5.
Programski jezici
4
I.
generacija
• skupključnih riječ i pravila koje računalo razumije
• generacije programskih jezika:
• 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
Program koji zbrajadva broja
6
(c = a + b)
strojni jezik
00100100000
10001001001
01000100100
01000100001
0011
asembler
jezik
LOAD a
ADD b
STORE c
JAVA
c = a+b
8.
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
.exe
nastajanje računalnog programa s pomoću kompiliranja
9.
Primjena popularnih računalnihjezika
8
• 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
10.
C
9
• C jekompilirani (sažeti), proceduralni jezik razvijen 1972. Iako
je C relativno star jezik, još uvijek se naširoko koristi u
sistemskom programiranju, pisanju drugih programskih jezika i
u 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
11.
C#
10
• C# jeobjektno orijentirani programski jezik koji je razvio
Microsoft. Sličan je programskim jezicima Java i C++.
Popularan alat za izradu videoigra Unity koristi se C#
kao programskim jezikom za stvaranje logike igara.
• dosta se koristi u Microsoft Visual Studio alatu za izradu
aplikacija
12.
C++
11
• C++ jeprogramski jezik opće namjene i srednje razine s
podrškom za objektno orijentirano programiranje.
• Unatoč svojim godinama, C++ se koristi u širokom spektru
aplikacija, od igara do uredskih alata.
13.
Java
12
• Java jeobjektno orijentirani programski jezik.
• Velika je prednost Jave u odnosu na većinu programskih jezika
to što se programi pisani u Javi mogu izvoditi bez preinaka
na svim 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 kojoj se izvode.
14.
Swift
13
• programski jezikkoji je zamijenio objective-C kod razvoj
aplikacija za Apple uređaje
• ima mogućnost prikaza rezultata programiranja u stvarno
vrijeme
15.
Ruby
14
• Ruby jevišeplatformski jezik opće namjene i otvorenog koda.
• Popularne primjene jezika uključuju sistemsku administraciju i
izradu internetskih aplikacija, ali od 2006. programeri polako
nalaze i neke netipične primjene kao stvaranje elektroničke
glazbe, programiranje hardvera i stvaranje računalnih igara.
16.
Python
15
• Python jeprogramski jezik opće namjene, interpretiran i visoke
razine koji je stvorio Guido van Rossum 1990. godine.
• Zbog jednostavne sintakse smatra se jednim od najlakših
programskih jezika. Može se koristiti za različite namjene poput
izrade mrežnih aplikacija i obrade podataka.
• Poznate društvene mreže Pinterest i Instagram koriste se
Pythonom u pozadini za obavljanje određenih funkcija.
17.
HTML5
16
• HTML jeprezentacijski 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.
18.
CSS3
17
• CSS jestilski jezik koji se korsti za grafičko oblikovanje HTML
elemenata. Time se mnogo korsti u grafičkom dizajniranju
stranica.
19.
JavaScript
• JavaScript jeskriptni programski jezik koji se izvršava na
mrežnom pregledniku (engl web browser).
• Zbog lakšeg korištenja napravljen je da bude sličan Javi, ali nije
objektno orijentiran kao Java
18
20.
jQuery
19
• jQuery jeskriptna knjižnica koja pruža bržu i lakšu gradnju
mrežnih stranica pisanih u jeziku JavaScript. S jednom
linijom jQuery koda možemo postići isto što i s 10 linija
JavaScript koda.
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'});
21.
PHP
20
• PHP jeprogramski jezik namijenjen programiranju dinamičnih
mrežnih stranica. PHP se ističe širokom podrškom raznih
baza podataka i internetskih protokola te raspoloživosti brojnih
programerskih knjižnica.
22.
SQL
21
• SQL jenajpopularniji računalni jezik za izradu, traženje,
ažuriranje i brisanje podataka iz računalnih baza.
23.
XML (EXtensible MarkupLanguage)
• 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
24.
Algoritam
23
• algoritam jeprecizna 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
25.
Algoritam
• kod algoritmamora 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
26.
Algoritmi mogu biti:
25
•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
Dijagram toka
• grafičkiprikazuju algoritam
• olakšavaju kasniju izradu programa
pogodni su za analizu problema i traženje povoljnih rješenja
- početak, kraj ili prekid programa
27
- ulaz podataka
- izlaz podataka
- priključne točke za povezivanje
raznih dijelova programa
- naredbe koje se obrađuju
- grananje ili mjesto odluke
29.
Primjeri dijagrama
28
Početak
Kraj
Upiši
a, b
z= a + b
Početak
Upiši
a, b
a = b
Kraj
NE
a < b
DA
Algoritam za ispis zbroja dvaju brojeva Algoritam za ispis manjeg od dvaju upisanih brojeva
Pseudokod
30
• zapis rješenjaslič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 brojeva
početak
učitaj (a, b, c)
min:= a;
ako je b < c
onda
ako
je b <
a
onda
min:=
b;
inače
Operatori
32
• operator jeznak ili riječ koja određuje operaciju
• osnovni logički operatori su:
• relacijski operatori:
• aritmetički operatori
34.
Osnovni algoritamski postupci
33
•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)
a < 7
DA NE
35.
Postupak izrade programa
34
Analizaproblema
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
36.
Varijable
35
• podatak pohranjenu 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.
37.
Varijable
36
• nazivi varijablimoraju 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)
38.
Operatori
37
• simboli kojipredstavljaju 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)
39.
Logički izrazi
38
• izrazkoji može biti točan ili netočan (true ili false; 1 ili 0)
• npr.
5 == 5 (true)
5 < 2 (false)
5 > 2 (true)
40.
Logički operatori
39
• postojetri 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
41.
Funkcija
40
• iskaza kojiobavlja 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
42.
If - elseuvjet
41
• 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’
43.
Iteracija
• ponavljanje radnjekroz 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