You are on page 1of 28

ALGORTIMI I STRUKTURE PODATAKA

(1. POUČAVANJE)
Algoritam, svojstva algoritma, načini
opisa algoritma, računalni program,
životni ciklus razvoja računalnog
programa

izv. prof. dr. sc. Alen Jakupović, prof. v. š.

Preddiplomski stručni studij Telematika


GRUPNI RAD
• grupni rad (45 minuta):
– podijeliti se u grupe od 5 članova
– odgovoriti na postavljena pitanja
– rasprava o pitanjima – 15 minuta

Preddiplomski stručni studij Telematika


PITANJA
• Što je algoritam?
• Koja svojstva ima algoritam?
• Kako se algoritam opisuje?
• Što je računalni program?
• Koji je životni ciklus razvoja računalnog programa?

Preddiplomski stručni studij Telematika


Što je algoritam?
• označava precizan i jednoznačan opis rješenja nekoga
problema.
• sastoji se iz konačnoga skupa uputa koje potpuno i
nedvosmisleno definiraju korake koji se trebaju učiniti, kao i
njihov redoslijed, s ciljem rješavanja danoga problema.
• svaki korak mora biti definiran dopuštenim (izvedivim)
instrukcijama.
• isti problem može imati više različitih rješenja, pa time i više
različitih algoritama.

Preddiplomski stručni studij Telematika


Što je algoritam?
Primjer nepreciznih instrukcija: Primjer dvosmislenih instrukcija:
Podijeli neki broj s 20. Podijeli broj 10 s 2 ili 4.
Čekaj par minuta. Čekaj me 10 minuta ili 2 sata.
Nazovi profesora. Očisti kolegije s prve godine.
Pričekaj me u Rijeci. Zagrij stolicu.
Otvori vrata. Budi glasan.
Primjer nepotpunih instrukcija: Primjer nedopuštenih (neizvedivih) instrukcija:
Podijeli broj 20 s Podijeli broj 2 s 0.
Čekaj me u Pomnoži broj 10 s beskonačno.
Nazovi me preko Trčeći prođi kroz zid.
Otvori vrata u Nauči programirati u 5 minuta.
Pročitaj knjigu o Uberi cvijet na Marsu.

Preddiplomski stručni studij Telematika


Koja svojstva ima algoritam?
– konačnost - mora uvijek završiti nakon konačnog broja koraka
– definiranost - svaki korak algoritma mora biti precizno definiran
– ulaz - algoritam može ali i ne mora imati ulazne veličine koje su dane
inicijalno prije početka algoritma
– izlaz - algoritam ima jednu ili više izlaznih veličina koje su u
specificiranom odnosu s ulaznim veličinama
– učinkovitost - od svakog algoritma se očekuje kratko vrijeme
izvođenja i mali zahtjevi za memorijskim prostorom
– djelotvornost - u konačnom broju koraka daje rješenje problema

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• Algoritam se može opisati na različite načine:
– tekstualno
– grafički
– pseudo kodom
– kombinacijom grafičkog opisa i pseudo koda
– programskim jezikom.

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• Tekstualni opis:
– koraci algoritma prikazuju se rečenicama
govornoga jezika
– opis algoritma može razumjeti širi krug ljudi
– nedostatak je nepreciznost opisa koja proizlazi iz
nepreciznosti samoga govornog jezika

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
Primjer tekstualnog opisa algoritma - recept za domaći kruh:
1. Kvasac razmrvite, dodajte malo šećera i 50 ml mlake vode pa ostavite
na toplom mjestu oko 10 minuta.
2. Prosijanom brašnu dodajte sol i kvasac pa pomiješajte s preostalom
vodom.
3. Umiješajte rastopljeni maslac i zamijesite glatko tijesto. Ostavite
neka se diže na toplom mjestu oko 30 minuta.
4. Tijesto premijesite, oblikujte štrucu i stavite u namašćeni kalup.
5. Prije pečenja tijesto stavite još jedanput dizati.
6. Zarežite ga nožem i poprskajte vodom, stavite u zagrijanu pećnicu na
225°C i pecite oko 10 minuta, a zatim smanjite na 170°C i pecite još
35 minuta.
Primjer tekstualnog opisa algoritma - provjera je li godina prijestupna:
1. Ako je godina djeljiva s 400 ona je prijestupna godina.
2. Ako je godina djeljiva s 4 ali ne i sa 100 ona je prijestupna
godina.

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• Grafički opis:
– koraci algoritma prikazuju se grafičkim simbolima
– na redoslijed izvođenja algoritamskih koraka
upućuju strelice koje povezuju grafičke simbole
– precizniji je od tekstualnoga opisa
– razumljiv užemu krugu ljudi (onima koji poznaju
grafičke simbole)

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• Origami – ptica o
papira:

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• dijagram toka programa
(blok dijagram) – provjera je
li godina prijestupna

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• Opis pseudo kodom:
– koraci algoritma prikazuju se formaliziranim rečenicama
govornoga jezika (unaprijed definirani način opisa
određenih algoritamskih struktura)
– svaka linija pseudo koda se obično označava rednim
brojem
– opis algoritma može razumjeti širi krug ljudi
– precizniji je od tekstualnoga opisa
– treba biti neovisan o programskom jeziku (ne koristiti
ključne riječi nekoga programskog jezika)

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?

Primjer algoritma opisanoga pseudo kodom - provjera je li godina prijestupna:


1. Unesi godinu G
2. Ako je G djeljivo s 400 onda
3. Ispiši "Godina G je prijestupna."
4. Inače ako je G djeljivo s 4 i G nije djeljivo sa 100 onda
5. Ispiši "Godina G je prijestupna."
6. Inače
7. Ispiši "Godina G nije prijestupna."
8. Kraj Ako je

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• Kombinacija grafičkoga opisa i pseudo kodom:
– postoje grafički simboli za razne algoritamske
strukture u koje se pseudo kodom opisuju koraci
algoritma
– kombinacijom grafičkoga opisa i pseudo kodom
povećava se preciznost opisa ali je on razumljiv
užem krugu ljudi

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• strukturogram - provjera je li godina prijestupna

Unesi godinu G

Ako je G djeljivo s 400


onda inače
Ako je G djeljivo s 4 i
G nije djeljivo sa 100
Ispiši "Godina G je prijestupna." onda inače

Ispiši Ispiši
"Godina G je "Godina G nije
prijestupna." prijestupna."

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
• Opis programskim jezikom:
– algoritam postaje računalni program kojeg izvodi
računalo
– programski jezik je posebna vrsta jezika kojim se
računalu izdaju naredbe. Njihovim izvođenjem
računalo izvodi opisani algoritam i time rješava neki
problem
– ovo je najprecizniji način opisa algoritma
– osim računalima, opis je razumljiv uskome krugu ljudi
- programerima

Preddiplomski stručni studij Telematika


Kako se algoritam opisuje?
Primjer algoritma opisanoga programskim jezikom - provjera je li godina prijestupna:
1. #include <conio.h>
2. #include <stdio.h>
3. main(){
4. unsigned int G;
5. printf ("Unesite godinu: ");
6. scanf("%d", &G);
7. if (G%400==0)
8. printf("Godina %d je prijestupna.", G);
9. else if (G%4==0 && G%100!=0)
10. printf("Godina %d je prijestupna.", G);
11. else
12. printf("Godina %d nije prijestupna.", G);
13. getch();}

Preddiplomski stručni studij Telematika


Što je računalni program?
• opisom algoritma nekim programskim jezikom
nastaje računalni program. Računalni program
predstavlja algoritam opisan nekim programskim
jezikom i time prilagođen izvođenju na računalu.
Računala ne mogu funkcionirati bez računalnog
programa koji izvode.

Preddiplomski stručni studij Telematika


Što je računalni program?
• programski je jezik umjetno stvoren jezik koji je namijenjen
davanju instrukcija računalima.
• programski jezik se sastoji iz dvije osnove komponente -
sintakse (forme) i semantike (značenja).
• sintaksa programskoga jezika kaže kakva forma instrukcije
mora biti, a kako bi je računalo razumjelo (npr. u govornome
jeziku je jasno da je riječ "Prgrm" pogrešna – greška sintakse –
jer je ispravno "Program"). Spomenute se greške lako
otkrivaju (samo računalo ih otkriva) i lako ispravljaju.

Preddiplomski stručni studij Telematika


Što je računalni program?
• semantika je značenje onoga što se programskim jezikom
opisalo. Npr. opisao se izračun prosječne ocjene iz pet kolegija
(ocjene su k1, k2, k3, k4 i k5). U jednom se dijelu algoritma
nalazi formula za izračun prosječne ocjene koja glasi
Prosjek=(k1+k2+k3+k4+k5)/2. Računalo će prema navedenoj
formuli izračunati prosjek ocjena. Jasno je da formula nije
ispravna (dijeli se s dva umjesto s pet). No, računalo ovu
semantičku pogrešku (pogrešno značenje) neće primijetiti te
će dati pogrešan rezultat. Otkrivanje semantičkih pogrešaka u
računalnome programu nije jednostavno i postoji posebni alat
(engl. debugger) koji ovaj postupak olakšava.

Preddiplomski stručni studij Telematika


Što je računalni program?
• nekim je programskim jezikom algoritam prilagođen izvođenju
na računalu i dobiven je računalni program koji je u formi
izvornoga koda, tj. u formi čitljivoj ljudima.
• postoje dva osnovna načina na koja računalo izvodi računalni
program - interpretiranjem instrukcija u računalnome
programu i izvođenjem izvršne verzije računalnoga programa.

Preddiplomski stručni studij Telematika


Što je računalni program?
• pri interpretiranju instrukcija, na računalu mora postojati
posebni računalni program - interpreter. Interpreter učitava
računalni program, zatim čita instrukciju po instrukciju, tumači
ju i izvršava. Budući da tumačenje instrukcija troši vrijeme,
interpreteri su spori. Računalni program nije u izvršnome
obliku (strojnome kodu). On može biti u izvornome obliku
(izvornome kodu) ili u nekome posebnom obliku potrebnom
interpreteru (npr. Bytecode kod JVM – Java Virtual Machine).

Preddiplomski stručni studij Telematika


Što je računalni program?
• pri izvođenju izvršne verzije računalnoga programa (ekstenzija
EXE), on se treba iz izvornoga koda preoblikovati u strojni kod.
Ovo preoblikovanje izvodi posebni računalni program -
kompajler. On učita cijeli računalni program te ga pretvori u
poseban oblik koji računalo može izravno izvesti, a da ne treba
dodatni računalni program. Računalni program u strojnome
kodu nije čitljiv ljudima, već računalima.

Preddiplomski stručni studij Telematika


Što je računalni program?
• programiranje (računalno programiranje) je proces oblikovanja, pisanja,
testiranja, pronalaženja i uklanjanja greški te održavanja izvornoga (ne
strojnoga) koda računalnoga programa.
• osoba koja stvara računalni program programiranjem naziva se programer.
• programer polazi od zadanoga problema, oblikuje algoritam koji problem
rješava te ga opisuje nekim programskim jezikom.
• učenje programiranja uključuje učenje sintakse (forme) nekoga
programskog jezika i stjecanje osnovnih intuitivnih znanja glede
algoritmizacije problema opisanoga riječima.

Preddiplomski stručni studij Telematika


Što je računalni program?
• postoje četiri osnovna pristupa u programiranju:
– proceduralno programiranje
– objektno orijentirano programiranje
– funkcionalno programiranje
– logičko programiranje.

Preddiplomski stručni studij Telematika


Što je računalni program?
• računalni programi se mogu podijeliti na sistemske
računalne programe, računalne programe za
programiranje i aplikativne računalne programe.

Preddiplomski stručni studij Telematika


Koji je životni ciklus razvoja
računalnog programa?
• prilikom pisanja računalnoga programa, programeri
prate određeni plan (metodu, metodiku).
• opći životni ciklus razvoja računalnoga programa:
– analiza problema
– dizajn računalnoga programa
– kodiranje računalnoga programa
– testiranje računalnoga programa i ispravljanje pogrešaka
– formalizacija i dokumentiranje računalnoga programa
– održavanje računalnoga programa.

Preddiplomski stručni studij Telematika

You might also like