Transcript Slide 1

PROGRAMIRANJE




PROGRAMSKA PODRŠKA – skup svih programa
koji se mogu izvršavati na računalu
Računalni program uputa je računalu što raditi
Računalo je bez programa beskorisno
Programi za računalo često vrijede više nego
sklopovlje računala na kojem se izvršavaju
Računalni programi
Svaki se program sastoji od naredaba
• Naredba (engl. command ) je temeljni element
programa
• NAREDBA je postupak izražen na dogovoren i
razumljiv način, kojim naredbodavac upućuje
izvršitelja na obavljanje stanovite radnje
(programer naredbom naređuje računalu
obvljanje željene radnje)
•
1. Zagrij vodu
2. Stavi vrećicu čaja
3. Ostavi stajati 5 minuta
4. Posluži
Naredba

Program je skup naredaba čijim se izvršenjem
obavlja željeni posao
PROGRAM IDEXMP
INTEGER BUS_NUM
BUS_NUM = 99
WRITE(*,*) ' TAKE BUS ',
BUS_NUM
END
Program

Čovjek koji piše
program za
računalo zove se
programer
Programer
Izvoliš mi napisati
domaću zadaću!

Programiranje
je postupak
nastanka
programa za
računalo
Programiranje
•
Strojni jezik
1001000100
0101000101
1000101010
(engl. machine code)
• U užem smislu binarni prikaz programa
• Jedini jezik koji računalo razumije te se svaki
drugi oblik programa mora prije izvođenja
prevesti u strojni jezik
• Tijesno je vezan za građu računala, tj. ovisan je
o mikroprocesoru (program napisan za jedan tip
mikroprocesora nije primjenjiv na drugom tipu)
• PREDNOSTI: mogućnost izravnog djelovanja na
sklopovske dijelove računala, djelotvorno
iskorištenje memorije i brzina izvođenja
napisanog programa
• NEDOSTACI: složenost postupka izrade
programa i ograničenost programa na jedan tip
mikroprocesora
• U širem smislu to je prikaz uz pomoć slovčanih
kratica koje zamijenjuju pojedine binarne
brojeve
Strojni jezik

Prikaz strojnog jezika s pomoću slovčanih
kratica naziva se još i SIMBOLIČKIM
JEZIKOM ili ASEMBLEROM
SIMBOLIČKI JEZIK
(ASEMBLER)
MOV AX, 5
00000000
ADD AX, BX
Strojni jezik
PREVEDENO U STROJNI JEZIK
10111000
00000101
00000011
11000011



Viši programski jezici su svi oni koji nisu izravni prikaz
binarnog oblika naredbe
Razlog uvođenja je da se strojni jezik nadomjesti lakšim i
razumljivijim programskim jezikom
Veći ili manji skup naredba strojnog jezika se nadomješta
jednom naredbom višeg programskog jezika
10 REM Izračunavanje opsega i površine pravokutnika
20 CLS
30 A = 12.3
:REM Stranica A pravokutnika
40 B = 8.2
:REM Stranica B pravokutnika
50 OPSEG = 2 * A + 2 * B
:REM Formula za opseg
60 POV = A * B
:REM Formula za površinu
70 PRINT OPSEG
:REM Ispis opsega
80 PRINT POV
:REM Ispis površine
Viši programski jezici
Programer ne mora znati gotovo ništa o
građi računala
 Za razliku od asemblera pri prevođenju se
svaka naredba višeg programskog jezika
prevede u mnogo bajtova
 Drugi važan razlog uvođenja viših
programskih jezika je potreba da se jedan
te isti program primjeni na različitim
modelima računala tj. različitim
mikroprocesorima

Viši programski jezici
Program napisan u prikazu koji nije binarni naziva
se IZVORNI PROGRAM (source code) i prije
izvođenja ga je potrebno prevesti u strojni
program
• Jezični prevoditelji su računalni programi koji
prevode viši oblik prikaza jezika u binarni
• Kompajler (engl. compiler)
•
• Kompajler je program koji prevodi izvorni program u
strojni jezik samo jednom
• Prevedena inačica programa ima nastavak com ili exe
• Prevedeni program može se izvršavati bez kompajlera
•
Interpreter
• Prevodi svaki put kad se program izvršava i to naredbu
po naredbu (prevede i izvrši, prevede i izvrši ...)
• Omogućava trenutno otkrivanje određene vrste greške i
interaktivno ispravljanje
• Program se isporučuje kao izvorni kôd uz koji je
neophodan interpreter
Jezični prevoditelji
•
•
Nisu namijenjeni strogo uskom području primjene već
je njima moguće rješavati relativno širok raspon
zadataka
BASIC
• (Beginner’s all-purpose symbolic instruction code)
učenje programiranja, jednostavniji programi
•
Pascal
• Učenje strukturnog programiranja, jednostavniji
programi
•
C (C++)
• Jezik velikih mogućnosti kojim se služe
profesionalni programeri
Viši programski jezici

Jezik opće namjene za početnike
PRINT : PRINT "English to Metric Conversion"
INPUT "Miles: ", Miles
INPUT "Yards: ", Yards
INPUT "Feet: ", Feet
INPUT "Inches: ", Inches
Inches = 63360 * Miles + 36 * Yards + 12 * Feet + Inches
Meters# = Inches / 39.37#
Kilometers = INT(Meters# / 1000)
Meters# = Meters# - 1000 * Kilometers
Final.Meters = INT(Meters#)
Centimeters = Meters# - Final.Meters
Centimeters = 100 * Centimeters
Centimeters = INT((Centimeters + .005) * 100) / 100
PRINT "Kilometers:"; Kilometers
PRINT "Meters:"; Final.Meters
PRINT "Centimeters:"; Centimeters
END
Primjer BASIC programa
BASIC
• Program opće najene koji podržava strukturno programiranje
(skup programskih tehnika koje vode logičkoj organizaciji
programa – olakšava pisanje, održavanje i popravak programa)
program PovrsinaKruga
var povrsina, polumjer: real;
begin
write(‘Upisi polumjer kruga: ‘);
readln(polumjer);
povrsina:=polumjer*polumjer*3,14;
write(‘Povrsina je: ‘,povrsina);
end.
Pascal
Primjer Pascal programa
#include <iostream.h>
void main()
{
int a, b, c;
cout << "Please enter three numbers\n";
cout << "a: ";
cin >> a;
cout << "\nb: ";
cin >> b;
cout "\nc: ";
cin >> c;
if (c=(a-b))
{
cout <<
cout <<
cout <<
cout <<
cout <<
cout <<
}
else
cout <<
"a: ";
a;
" minus b: ";
b;
" equals c: ";
c << endl;
Programski
jezik opće
namjene za
profesionalnu
primjenu.
Vrlo je složen
i velikih
mogućnosti
"a-b does not equal c:" << endl;
}
C++
Primjer C++ programa
• Engl. OOP (object oriented programs)
• Razlog razvoja OOP je želja da se i
programi sastavljaju iz gotovih
komponenata
• Upotrebljavaju gotove dijelove
programa (objekte, klase) pri gradnji
složenijih programa
• Postupak programiranja uz pomoć
objekata naziva se objektno
orjentirano programiranje – postupak
izrade složenog programa uporabom
skupa objekata koji međusobno
razmjenjuju poruke
• Popularni objektno orijentirani
programi opće namjene: Visual Basic,
Visual C++
Objektno orijentirani programi
Programski jezici opće namjene neovisni o
sklopovlju i operacijskom sustavu su prenosivi
(engl. portable) – npr. jedan te isti program
napisan u C++ može se izvoditi na 2 i više
različitih računala koji rade pod različitim
operacijskim sustavima
• Najpoznatiji su HTML i Java
•
PROGRAMSKI JEZICI NEOVISNI O
SKLOPOVLJU I OPERACIJSKOM
SUSTAVU






Eng. hypertext markup language
Ograničenih je mogućnosti i ne spada u jezike opće
namjene
Specijalizirani programski jezik namijenjen izradi
hipertekstovnih dokumenata
Omogućuje prikaz mrežnog hipertekstovnog
dokumenta na zaslonu monitora bez obzira na to o
kakvoj je vrsti računala ili operacijskog sustava riječ
Jednostavam je za uporabu i lako se uči
Pregled HTML dokumenta omogućuje program koji se
naziva PREGLEDNIK (engl. Browser) – najpoznatiji je
Microsoft Internet Explorer
HTML
<html>
<head>
<title>Naslov</title>
</head>
<body>
<h1>
<font color="#FF0000">Dobar dan</font>
</h1>
</body>
</html>
◦ Snažan objektno orijentirani programski jezik
opće namjene nalik na C++
◦ Glavna značajka mu je potpuna prenosivost
◦ Java se uz pomoć Java kompjlera prevodi u Java
bytecodes koji je neovisan o računalu i
operacijskom sustavu. To je strojni jezik za tzv.
Java prividno ili virtualno računalo (engl. Java
virtual machine, Java engine). Dalje se Java
bytecodes (na računalu na kojem se program
izvršava) uz pomoć interpretera prevodi u strojni
jezik
◦ Jezik namijenjen pisanju programa za
Java
import java.applet.*;
import java.awt.*;
public class exfour extends Applet
{
int i;
public void init()
{
resize(300,300);
}
public void paint(Graphics g)
{
g.drawString("You clicked the mouse "+i+" Times",50,50);
}
public boolean mouseUp(Event e, int x, int y)
{
i++;
repaint();
return true;
}
}
Primjer Java programa
• Da bi si olakšao pretvorbu zadataka iz svijeta
koji ga okružuje u oblik prihvatljiv računalu,
čovjek se služi mnogim pomoćnim postupcima:
planiranjem, opisom zadatka, algoritmom,
pseudokôdom, dijagramom tijeka i sl.
• Konačni će rezultat svih tih postupaka biti
računalni program
• Što je zadatak koji treba riješiti računalom
složeniji, to je unačelu potrebno više pomoćnih
postupaka (oni su međusobno povezani i
redovito se slijedeći oslanja na prethodni)
Programiranje
• To je prvi korak u rješavanju bilo kojeg
opsežnijeg zadatka
• Planiranjem se predviđa tko će, kada i što raditi
• Pri izradi složenih programa često sudjeluje
mnogo ljudi pa je planiranje veoma važan dio
pripreme kako bi se uskladio rad svih
• Čak ako program izrađuje samo jedan čovjek,
planiranjem se mogu predvidjeti i rasporediti
pojedine faze izrade programa
Planiranje
Analiza zadatka je raščlamba i potpuno
razumijevanje zadatka i željenih rezultata
 To je jedan od najsloženijih i najtežih
koraka pri nastanku programa
 Rezultat analize je specifikacija zadatka
koja sadržava dovoljno podataka da bi se
taj zadatak mogao riješiti

Analiza zadatka i specifikacija
Specifikacija je dokument koji sadrži
podroban popis i opis zadataka i željenih
rezultata
 Ako specifikacija nije napravljena kako
treba ni rezultat neće biti zadovoljavajući
 Specifikacija nije prijedlog kako zadatak
riješiti, već samo točan opis što je na
raspolaganju i što se želi dobiti kao
rezultat

Specifikacija
• Riječ algoritam dolazi od riječi
Alchwarizmi što je bio nadimak perzijskog
pisca imenom Abu Ja’far Mohammed ibn
Musa al Khowarizmi (oko 825. prije
Krista) koji je napisao knjigu o matematici
• Algoritam je naputak kako riješiti neki
zadatak ili obaviti neki posao
• Algoritam svodi cjelokupan zadatak na
rješavanje više jednostavnijih, manjih
zadataka
Algoritam





Sastoji se od niza mehaničkih radnji (radnje za čije
izvršenje nije potrebna posebna inteligencija, već ih
može, slijedeći upute, izvršiti bilo tko (uključujući i
stroj))
Algoritam se stvara na temelju specifikacije
Zapisuje se s pomoću niza relativno jednostavnih
operacija koje se mogu pretvoriti u naredbe
programskog jezika. Slijednim izvršavanjem tih
operacija može se na temelju ulaznih podataka dobiti
željeni rezultat
To je jedan od početnih koraka pri pretvorbi zadatka
u računalni program
Pogodno ga je prikazati dijagramom tijeka ili
pseudokodom
Algoritam
1.
 2.
 3.
 4.

Zagrij vodu
Stavi vrećicu čaja
Ostavi stajati 5 minuta
Posluži
Algoritam
1. Učitati podatke
2. Zbrojiti sve podatke
3. Zbroj podijeliti s količinom
podataka
4. Rezultat ispisati na zaslonu
monitora
Algoritam
Engl. flow chart
• Grafički prikaz algoritma koji olakšava
izradu programa
•
Dijagram tijeka




To je pomoćno sredstvo koje je neovisno o
programskom jeziku i računalu, a vizualizira
zadatak i on postaje pregledniji
Sastoji se od nekoliko jednostavnih geometrijskih
likova spojenih usmjerenim crtama koje
pokazuju tijek rješavanja zadatka
Dijagram tijeka je slikovni prikaz algoritma
Olakšava analizu, bolje razumijevanje zadatka i
uočavanje logičke povezanosti pojedinih manjih
zadataka koje treba riješiti da bi se postiglo
željeno
Dijagram tijeka
Postupak
Početak, kraj
ili prekid
programa
Spojnica
Odluka ili
grananje
programa
Primjeri elemenata dijagrama
tijeka
Dijagram tijeka
Ručni unos
podataka
Početak
Zeleno
svjetlo?
Stajati na
mjestu i motriti
semafor
NE
DA
Nastaviti
vožnju
Kraj
Dijagram tijeka
Primjer jednostavnog
dijagrama tijeka
postupanja u
prometu
• Pseudokôd je tobožnji program (grč.
pseudos ̶ laž) jer premda nalikuje
računalnom programu, zapravo nije
napisan u programskom jeziku koji bi se
mogao izravno primijeniti na bilo kojemu
računalu
• Pseudokôd se sastoji od kratkih izraza
na govornom jeziku koji opisuju i
ukratko objašnjavaju pojedine zadatke
algoritma
Pseudokôd
• Primjer: Potrebno je poslati SMS pomoću
mobilnog telefona. Psudokôd za taj
zadatak mogao bi biti:
Uključiti mobilni telefon
Pritisnuti tipku za izbornik
Na izborniku izabrati slanje poruka
Napisati poruku
Upisati telefonski broj primatelja
poruke
Pritisnuti tipku za slanje poruke
Pseudokôd
Osoba koja piše pseudokod ne mora znati
programski jezik i ne mora razmišljati o
pravilima pisanja programskog jezika
 Omogućuje mnogo pregledniji i
jednostavniji oblik prikaza načina na koji
će se zadatak riješiti
 Treba biti napisan tako da bilo koji
programer može na temelju njega
napisati program u bilo kojem
programskom jeziku za računalo

Pseudokod
1. napraviti popis glavnih zadataka koje treba riješiti
programom (može se temeljiti na prethodno
izrađenom algoritmu ili dijagramu tijeka)
 2. treba se usredotočiti na svaki pojednin zadatak i
pokušati ga razložiti na manje zadatke (trebaju biti
tako mali da ih je moguće opisati kratkim i
jednostavnim jezičnim izrazom)
 3. zbog bolje čitljivosti i razumljivosti treba uvlačiti
pojedine skupine izraza koje čine logičku cjelinu

Kako napisati pseudokod
Programska struktura je ustrojstvo
programa tj. način i redoslijed rješavanja
pojedinih manjih zadataka da bi se došlo
do konačnog rješenja
 Najčešće se koriste:
Upis i ispis podataka,
Pridruživanje,
Pravocrtna programska struktura,
Struktura grananja i
Struktura petlje

Programske strukture





Upis je postupak kojim se računalu daju
podaci da bi ono moglo rješiti određeni
zadatak
Upis se vrši s pomoću tipkovnice
Upis=ulaz/unos podataka u računalo
Ispis podataka je postupak kojim
računalo priopćava rezultat okolini
Ispis može biti na ekran, papir, disk i sl.
Upis i ispis podataka
Varijable=veličine koje mogu mijenjati
svoju vrijednost a koriste nam pri
rješavanju matematičkih zadataka
 Pridruživanje je postupak dodjeljivanja
vrijednosti varijabli
 Znak za pridruživanje je =

Pridruživanje

Pojavljuje se samo kod rješavanja najjednostavnijih
zadataka gdje se program uvijek izvršava istim
slijedom naredbi
Primjer: program koji zbraja dva broja i ispisuje
rezultat
UNESI DVA BROJA.
ZBROJI BROJEVE.
ISPIŠI ZBROJ UNESENIH BROJEVA.
Bez obzira na ulazne vrijenosti i međurezultate
obrade naredbe se uvijek izvršavaju istim
redoslijedom
Pravocrtna programska struktura
(slijed, niz)

Programska struktura koja omogućuje
različiti tijek programa, ovisno o rezultatu
NE
Da li je
x > 0 ?
x=0
Grananje
DA
Programska struktura koja se koristi kad je u
programu neku radnju potrebno ponoviti više puta
 Npr. kad korisnik treba unijeti 100 cijelih brojeva, a
prije svakog unosa broja se ispisuje tekst “Unesi broj”

Ispisati tekst “Unesi broj”.
Unijeti broj.
Ispisati tekst “Unesi broj”.
Unijeti broj.
Ispisati tekst “Unesi broj”.
Unijeti broj.
... I tako 100 puta !
Petlja

Umjesto toga isti zadatak se može riješiti na slijedeći
način:
Ponoviti 100 puta petlju.
Petlja:
Ispisati tekst “Unesi broj”.
Unijeti broj.
Kraj petlje.

Oba programa će dati isti rezultat. Razlika je samo u
tome što će u prvom slučaju programer morati
napisati 200 linija koda a u drugom slučaju samo 4
Petlja
Postupak zapisivanja temeljnih radnji (do kojih
se došlo planiranjem, algoritmom, pseudokodom,
dijagramom tijeka) naredbama odabranog
programskog jezika
 Ponekad se naziva i kodiranje.
 Svaki programski jezik koristi vlastiti, ograničeni
skup riječi koje imaju posebna značenja –
ključne riječi
 Za svaki programski jezik su propisana stroga
pravila slaganja ključnih riječi u naredbe i
program - sintaksa

Programiranje
Logički način na koji programer može predočiti
jedan te isti zadatak je višestruk i uključuje
znanje, spretnost i maštovitost programera
 Jedna te ista radnja može se izvršiti s pomoću
više različitih programa
 Programer je graditelj koji slažući naredbe gradi
program

Programiranje






Najčešće su sintaktičke i logičke pogreške
Pogreška koja nastaje zbog nepoštivanja propisane
sintakse naziva se sintaktička pogreška
Otkrivaju ih jezični prevoditelji
Pogreška koja uzrokuje neispravan rad programa se
naziva logička pogreška
Logičku ispravnost programa (ispravnost u smislu da
program obavlja željenu radnju) mora osigurati
programer i tu mu računalo ne može pomoći
Glede logičke ispravnosti programer se može osloniti
na algoritam, pseudokod, dijagram tijeka i druga
pomagala koja trebaju osigurati logičku ispravnost
programa
Greške u programiranju





Logička ispravnost programa se osigurava provjerama
ili testiranjem.
Provodi se kod proizvođača programa i neovisnih
ispitivača
Unatoč opsežnom ispitivanju često se pogreške
otkrivaju tek kod krajnjeg korisnika, jer su one često
skrivene i pojave se tek stjecajem niza posebnih
okolnosti
Bug je naziv za pogrešku u programu ili sklopovlju
računala
Postupak provjere i pisanja programa je opetovani
(iterativan) – slika 1.3, str. 248.
Provjera i ispravljanje programa
Tijekom vremena potrebne su manje ili veće
izmjene programa zbog promijene potreba
korisnika, promijene sklopovlja na kojem se
program izvršava, otkrivenja skrivene pogreške u
programu i dr.
 Postupak mijenjanja programa tijekom životnog
vijeka programa i poduka korisnika o uporabi
programa naziva se održavanje programa
 Određenu potporu predstavlja i mogućnost
kontaktiranja službe za korisnike telefonom ili emailom

Održavanje


Važan dio izrade programa je i izrada
dokumentacije za održavanje programa
Tu spadaju upute za instalaciju programa,
priručnici za korisnika, tehnički opis programa i
samo katkad izvorni program
Dokumentacija