You are on page 1of 33

Visoka škola za informacijske tehnologije

UVOD U PROGRAMIRANJE

1. Predavanje

Dragana Čulina
Što je računalo?
• Moderno računalo je univerzalni digitalni stroj sa
uskladištenim programom. Izgrađen na elektroničkoj
tehnologiji računa i donosi odluke milijardu puta brže od
čovjeka.
• Sklopovlje (hardware)
– tipkovnica (keyboard)
– zaslon
– disk
– memorija
– jedinica za obradu
– …
• Programska podrška (software)
• Cijena hardware-a pada a software-a raste

UVOD U PROGRAMIRANJE 2
Organizacija računala
• Podjela u logičke cjeline
– Centralna jedinica za obradu (CPU – Central
processing unit)
– Memorijska jedinica
– Sekundarna memorijska jedinica
– Ulazna jedinica
– Izlazna jedinica

UVOD U PROGRAMIRANJE 3
Centralna jedinica za obradu
• CPU
• interpretira i izvodi naredbe programa
• U PC sistemima – integrirani sklop, mikroprocesor
• Sastoji se od tri funkcionalna dijela:
– aritmetičko-logičke jedinice
– upravljačke jedinice
– unutarnjih registara (spremnika) - tu se privremeno
pohranjuju i obrađuju naredbe i podaci

UVOD U PROGRAMIRANJE 4
Aritmetičko-logička jedinica
• Izvodi sve aritmetičke i logičke operacije unutar
CPU-a.
• Aritmetičke operacije
– dodavanje
– oduzimanje
– množenje
– dijeljenje
• Logičke operacije
– jednakost
– manje od
– veće od

UVOD U PROGRAMIRANJE 5
Aritmetičko-logička jedinica
• Izvodi sve aritmetičke i logičke operacije unutar
CPU-a.
• Aritmetičke operacije
– dodavanje
– oduzimanje
– množenje
– dijeljenje
• Logičke operacije
– jednakost
– manje od
– veće od

UVOD U PROGRAMIRANJE 6
Upravljačka jedinica
• Usmjeruje i koordinira aktivnosti sistema
• Interpretira naredbe programa i proizvodi
električne signale u drugim dijelovima
sistema.
• Komunicira s ostalim dijelovima CPU-a preko
sabirnica.

UVOD U PROGRAMIRANJE 7
Memorijska jedinica
• “Skladišni” dio računala za pohranu informacija
koje obrađuje CPU.
• Informacije
– programske naredbe
– podaci
• Informacijama se pristupa preko adresa
• Brzi pristup, relativno mali kapacitet
• Naziva se primarnom ili radnom memorijom
• Primarna memorija
– read-write memory (RW)
• RAM (random-access memory)
– read-only memory
• ROM

UVOD U PROGRAMIRANJE 8
RAM - Random access memory
• Upisno-ispisna memorija za pohranu
informacija i podataka.
• Informacije se privremeno pohranjuju u RAM
nakon čega mogu biti dohvaćene.
• Nove informacije mogu biti snimljene na isto
mjesto (adresu).
• Nepostojana memorija (volatile memory)
– čuva informacije dok je prisutan električni napon
• Virtualna memorija

Naziv kolegija 9
Bitovi i bajtovi
• Računala rade s binarnim vrijednostima
• Binarna vrijednost – skup bitova: bit 0 ili 1
– 1001 je 4-bitna vrijednost
– 11100010 je 8-bitna vrijednost
• Bajt (byte) – skup od 8 bitova
– 100 bajtova = 100x8 = 800 bitova
• Prefiksi binarnih vrijednosti
– kilo (K) - 1024
– mega (M) - K2 = 1024x1024
– giga (G) - K3 = 1024x1024x1024

UVOD U PROGRAMIRANJE 10
(… nastavak)
• 64 MB = 64x1024x1024 = 67.108.864 bajtova

Pojam Značenje
bit 0 ili 1
bajt 8 bitova
kilobajt (KB) 1024 bajta
megabajt (MB) 1 048 576 bajtova
gigabajt (GB) 1 073 741 824 bajtova

UVOD U PROGRAMIRANJE 11
(… nastavak)
• Svaki bajt je se locira preko adrese
– 64 MB RAM-a
Memorijska Memorijski
adresa sadržaj
67.108.863 10010011
67.108.862 10110001
… …
… …
… …
1 00010001
0 10110101

UVOD U PROGRAMIRANJE 12
ROM - Read-only memory
• Sistemska memorija
• Pohranjuje sistemske programe i podatke
• BIOS – sistemska podrška u PC (personal
computer) sistemima
• Iz ROM-a se može čitati ali ne u njega
zapisivati
• Neizbrisiva memorija (nonvolatile memory)
– drži informacije i bez prisutnosti električnog
napona

UVOD U PROGRAMIRANJE 13
Sekundarna memorijska jedinica

• Koristi se za spremanje programa i podataka.


• Memorija velikog kapaciteta (mass storage
memory)
• Sporiji pristup podacima (u odnosu na RAM)
• Jeftiniji MB diska od MB RAM-a

UVOD U PROGRAMIRANJE 14
Ulazna i izlazna jedinica
• Ulazna jedinica - prihvatna sekcija računala.
• Informacije dostavlja drugim jedinicama računala
radi obrade.
– tipkovnica
– miš
– skener
– disketa
– modem, mrežna kartica
• Izlazna jedinica – otpremna sekcija računala.
• Informacije obrađene u računalu dostavlja
izlaznim uređajima.
– zaslon, printer
– zvučnici
– modem

UVOD U PROGRAMIRANJE 15
Što je računalni program?
• Skup naredbi koje određuju računalu način rješenje
problema.
• Skup naredbi se naziva izvornim kodom (source code).
• Računalni program se piše u programskom jeziku
• Dvije široke grupe programa:
– sistemski
– aplikativni
• Sistemski omogućuju ispravno funkcioniranje računala.
– operativni sustav (OS) – “ljepenka” koja povezuje
sklopovlje s programskom podrškom.

UVOD U PROGRAMIRANJE 16
(… nastavak)
• OS – skup programa koji upravljaju bitnim
sistemskim resursima:
– upravljanje memorijom
– upravljanje datotekama
– I/O upravljanje
– motrenje aktivnosti sistema
– zaštita sistema
– …
• DOS, Unix – tekstualno orijentirani
• Windows, Macintosh OS – izlažu GUI (graphical
user interface)

UVOD U PROGRAMIRANJE 17
(… nastavak)
• Aplikativni programi:
– upakirane aplikacije
• Microsoft Word
• Norton Antivirus
• AutoCAD
• …
– prilagođene aplikacije
• prema zahtijevima korisnika
• skuplje od upakiranih aplikacija
• fleksibilnije

UVOD U PROGRAMIRANJE 18
(… nastavak)
• Sve aplikacije su nastale korištenjem nekog od
programskih jezika.
• Stotine programskih jezika danas u upotrebi.
• Samo nekoliko u širokoj upotrebi.
• Računalni jezici:
– strojni jezici (machine language)
– asemblerski jezici (assembly languages)
– jezici visoke razine (high-level languages)

UVOD U PROGRAMIRANJE 19
Strojni jezik
• Prirodni jezik računala
definiran sklopovskim
dizajnom.
• jezik niske razine
• jedini direktno razumljiv 01001100
računalu 11101001
10101010
• CPU je dizajniran za 10001110
interpretiranje skupa 00001111
binarnih naredbi. primjer binarnog koda

UVOD U PROGRAMIRANJE 20
Asemblerski jezik
• korak iznad strojnog jezika
• jezik niske razine
• umjesto 0 i 1 koriste se
mnemonici
– za zbrajanje ADD
– za pomicanje MOV
• za programera jednostavniji
za pisanje
• nerazumljivi za CPU
• assember – program za
prevođenje
primjer asemblerskog koda

UVOD U PROGRAMIRANJE 21
Jezici visoke razine
• naredbe slične engleskom
jeziku
• matematičko označavanje
• sporiji od strojnih jezika
• zahtijevaju interpretera ili
prevodioca (compiler)
• nisu CPU zavisni
primjer koda jezika visoke razine

UVOD U PROGRAMIRANJE 22
Pristup rješavanju problema
• Analiza problema
o što detaljnije opisati postavljeni zahtjev
o moramo točno znati što treba rješavati
• Specifikacija problema
o na koje pojedinosti treba paziti?
o što su ulazni a što izlazni podatci i kojeg su oblika?
o kako će izgledati korisničko sučelje?
o postoje li neki posebni slučajevi

• Odabir algoritma i dizajniranje programa


osmisliti moguće načine rješenja
o raščlanjivanje problema na manje cjeline (funkcije)
o izbor algoritama za svaku funkciju

UVOD U PROGRAMIRANJE 23
nastavak…..
• Pisanje programa
o dobro poznavanje programskog jezika
o ispravljanje svih sintaktičkih pogrešaka
o dokumentiranje
• Provjeravanje i ispitivanje programa
o rješavali li program problem ispravno?
o odabiri ulaznih podataka za koje znamo izlazne vrijednosti
o u ispitne podatke uključiti granične vrijednosti
• Održavanje programa (za ozbiljnije programe)
o ispravljanje naknadno uočenih pogrešaka
o ugrađivanje nadopuna

UVOD U PROGRAMIRANJE 24
Algoritmi
• Važan pojam u računarstvu
• Arapski matematičar Muhammad Ibn Musa
Al-Khwarizmi (IX stoljeće)
o Algoritam je uređeni skup jednoznačnih
(nedvosmislenih), mehanički izvedivih koraka:
o izvođenje konačnog broja koraka algoritma određenim
redoslijedom (svaki korak opisuje se instrukcijom)
o Algoritam je upotrebljiv ako u konačnom vremenu za bilo koja
početna/ulazna stanje podataka daje završna/izlazna stanja
o Mora postojati izvršitelj algoritma (čovjek, životinja, stroj)

UVOD U PROGRAMIRANJE 25
nastavak….
• Svojstva algoritma:
o ispravnost (korektnost) – radi ispravno za sve
dopuštene ulaze
o Trajanje – broj osnovnih operacija od kojih se
sastoji algoritam

UVOD U PROGRAMIRANJE 26
Osnovni programski pristupi
• Imperativni pristup
o program se sastoji od niza naredbi koje nam kažu
šta treba uraditi da bismo riješili problem
(primjer: postupak zbrajanja u decimalnom
sustavu)
• Deklarativni pristup
o program je opis problema iz kojeg računalo
generira rješenje
(primjer: aritmetički izraz je opis broja iz kojeg
računalo izračuna taj broj)

UVOD U PROGRAMIRANJE 27
Imperativni pristup
• To je dominirajući pristup (Python, Java, C, …)
• On se povijesno razvijao izgradnjom sve
moćnijih alata apstrakcije
o Proceduralna apstrakcija (cijeli dijelovi koda se
tretiraju kao cjeline)
o Podatkovna apstrakcija (složeni podaci se tretiraju
kao cjeline)
o Objektna apstrakcija (složeni podaci zajedno s
operacijama nad njima se tretiraju kao cjeline –
objekti)

UVOD U PROGRAMIRANJE 28
Deklarativni pristup
• Nije danas dominirajući pristup ali je za neke
probleme efikasniji od imperativnog
o Funkcijski pristup (Haskell, ML, Scheme, … )
(opiše se funkcija koja rješava problem, slično kao
što se aritmetičkim izrazom opiše broj)
o Logički pristup ( Prolog, Datalog, … )
(opiše se problem skupom tvrdnji i računalo iz tog
opisa izvede rješenje problema)
primjer: traženi nepoznati broj opišemo
jednadžbom i onda riješimo jednadžbu
UVOD U PROGRAMIRANJE 29
Kombiniranje programskih
pristupa
• Svaki pristup ima svoje prednosti i mane i zato
je najbolje znati ih kombinirati.
• Suvremeni programski jezici omogućuju više
programskih pristupa mada je za dani jezik
jedan pristup dominirajući.

UVOD U PROGRAMIRANJE 30
Programski jezik Python
• Interpretirani viši programski jezik opće namjene
• Dosljedan objektno orijentiran jezik, ali podržava i
ostale stilove programiranja
• Nizozemski programer Guido van Rossum 1991.
godine
• 2000. g. verzija 2.0, zadnja podverzija 2010. 2.7
• 2008 Python 3.0 sa značajnim promjenama u
sintaksi jezika.

UVOD U PROGRAMIRANJE 31
Prednosti
• Jasnoća i sažetost izvornog koda
• Jednako dobar za učenje programiranja i
pisanje profesionalnih programa
• Open source software sa jakom podrškom
• Opsežne standardne biblioteke i tisuće
nezavisnih biblioteka
• Široko područje primjene
• Pri vrhu traženosti u informatičkom biznisu

UVOD U PROGRAMIRANJE 32
Savjeti na kraju 1. predavanja
Slobodno griješite pri pisanju programa – na greškama se
uči

Iskustvo se stječe dugotrajnim radom

Eksperimentirajte mijenjanjem već postojećih programa

Ne dajte se zbuniti, nemojte se bojati, pitajte, vucite za


rukav…ali sami napišite program

Uživat ćete kad vam program proradi

Zasluženo se odmorite

UVOD U PROGRAMIRANJE 33

You might also like