Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se...
Transcript of Programiranje - Škola za medicinske sestre Vrapče · je C relativno star jezik, jošuvijek se...
ProgramiranjeJosip Mihaljević
Š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
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
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
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
5
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
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
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
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
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
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
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
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
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
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
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
CSS3
• CSS je stilski jezik koji se korsti za grafičko oblikovanje HTML elemenata. Time se mnogo korsti u grafičkom dizajniranjustranica.
17
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
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'});
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
SQL
• SQL je najpopularniji računalni jezik za izradu, traženje, ažuriranje i brisanje podataka iz računalnih baza.
21
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
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
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
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
Algoritam
• algoritme je moguće prikazati dijagramom tijeka ili pseudokodom
26dijagram tijeka pseudokod
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
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
29
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
Pseudokod - sintaksa
31
Operatori
• operator je znak ili riječ koja određuje operaciju
• osnovni logički operatori su:
• relacijski operatori:
32
• aritmetički operatori
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
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
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
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
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
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
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
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
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
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