programiranje - gimnazija velika gorica · 2011. 7. 5. · • kodiranje • petlja • ... zadaci:...
TRANSCRIPT
Programiranje
1
Ključne riječi
• Algoritam• Dijagram tijeka• Kodiranje• Petlja
• Programiranje• Strukturno
programiranje• Bug
2
• Petlja• Računalni program• Analiza• Dokumentacija• Modularno
programiranje
• Bug• Grananje• Održavanje• Pseudokôd• Testiranje
Osnovne definicije
Algoritam je postupak kojim se opisuje točan redoslijed kojim obavljamo neki posao.Naredba je uputa računalu da obavi jednu operaciju.operaciju.Postupak pisanja programa zovemo programiranje.
Program je konačan niz naredbi razumljivih računalu koji rješavaju neki problem.Programski jezik je skup naredbi i pravila za pisanje tih naredbi razumljivih računalu.
3
Programiranje
• Da bi si olakšao pretvorbu zadataka iz svijeta koji ga okružuje u oblik prihvatljiv računalu, čovjek se služi mnogim
4
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
Planiranje
• Planiranjem se predviña tko će, kada i što raditi
• Pri izradi složenih programa često sudjeluje mnogo ljudi pa je planiranje
5
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
Specifikacija
• Specifikacija je dokument koji sadrži podroban popis i opis
6
popis i opis zadataka i željenih rezultata
Algoritam
• Riječ algoritam dolazi od riječi Alchwarizmi što je bio nadimak perzijskog pisca imenom Abu Ja’far Mohammed ibn Musa al Khowarizmi
7
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
1. Zagrij vodu
8
1. Zagrij vodu2. Stavi vrećicu čaja3. Ostavi stajati 5 minuta
4. Posluži
Algoritam
1.Učitati podatke
2.Zbrojiti sve podatke
3.Zbroj podijeliti s
9
3.Zbroj podijeliti s količinom podataka
4.Rezultat ispisati na zaslonu monitora
Dijagram tijeka
• Engl. flow chart• Grafički prikaz
programa koji
10
programa koji olakšava izradu programa
Dijagram tijeka
Postupak ili naredba
Početak ilikraj programa
Ručni unos
Primjeri elemenata dijagrama tijeka
11
Odluka ili grananje
Ručni unos podataka
Ispis podataka
Petlja ili ponavljanje
Dijagram tijekaPočetak
Stajati na mjestu i motriti semafor
12
Kraj
Zeleno svjetlo?
Primjer jednostavnog dijagrama tijeka postupanja u prometu
DA
NE
Nastaviti vožnju
Pseudokôd
• Pseudokôd je tobožnji program (grč. pseudos ̶ laž) jer premda nalikuje računalnom programu, zapravo nije napisan u programskom jeziku koji bi se
13
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
14
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
Pseudokod
naredba značenje
početak označava početak algoritmapisanog u pseudokodu
unesi ili upiši unos podatakaunesi ili upiši unos podataka
ispiši ili izlaz ispis podataka
kraj označava kraj algoritma
ako je … tada …inače…
označava grananje i naredbe u DA i NE grani
dok je … petlja ili ponavljanje
za … do … (pomak …) petlja ili ponavljanje15
Državna matura:
16
Programske strukture
1. Upis podataka
2. Ispis podataka
Upis polumjera kruga
Ispis površine kruga
17
podataka
3. Pridruživanje
4. Slijed
5. Grananje
6. Petlja ili ponavljanje
X := 5
Grananje• Programska struktura koja omogućuje
različiti tijek programa, ovisno o rezultatu
Da li je DANE
18
• pseudokod:ako je x>0 tada naredba_u_DA_graniinače naredba_u_NE_grani
Da li je x > 0 ?
x=0
START
Obrada
podataka
Petlja
• Katkad je u programu potrebno
19
• Katkad je u programu potrebno ponavljati neku radnju više puta
• Da se ista naredba ne bi pisala mnogo puta, postoji programska struktura petlje koja ponavlja jednu ili više naredbi
Petlja
Ispisati "Upiši cijeli broj"
Upis broja
Ispisati "Upiši cijeli broj"
Upis broja
Umjesto ovoga….
20
Upis broja
Ispisati "Upiši cijeli broj"
Upis broja
...(stotinu puta bi trebalo ponoviti isto)
Petlja
za brojac:=1 do 100 (pomak 1)
Ispisati "Upiši cijeli broj"
Upis broja
______________________________________
PAZITI da su naredbe u
petlji uvučene udesno….
21
______________________________________
brojac:=1
dok je brojac<100
Ispisati "Upiši cijeli broj"
Upis broja
brojac:=brojac+1
PetljaSTART
n = 1
obrada
podataka
početni uvjet
22
STOP
NEn =
10 ?n = n + 1DA
krajnji uvjet pomak ili korak petlje
Petlja (2)
• ponekad se petlja prikazuje i šesterokutom
23
početni uvjet, krajnji uvjet
korak ili pomak petlje
naredbe
Primjer: učitati 10 prirodnih brojeva i ispisati najveći
ILIpočetak
početak
brojac:=1;MAX:=0
n
brojac:=1,10
MAX:=0
24kraj
brojac=10?
n>MAX? MAX:=nbrojac:=brojac+1
DA
NE
DA
NEbrojac:=brojac+1
MAX
n
n>MAX?
MAX:=nDA
NE
Varijablato je mjesto u memoriji na koje spremamo podatkesvaka varijabla ima svoje ime pomoću kojeg pristupamo podatku u memorijivarijabla ima i tip koji je odreñen vrstom varijabla ima i tip koji je odreñen vrstom vrijednostitip može biti: cjelobrojan, realan, znakovni, logički a:=5 ; b:=6 ; c:=a+bx:=‘A’; y:=true; z:=false;
OPERATORIOperacija Pseudokod Matematika
zbrajanje + +
oduzimanje - -
26(c) L. Blagojević i D. Grundler, 2005.
oduzimanje - -
množenje * .
dijeljenje / :
cjelobrojno dijeljenje DIV nema
ostatak cjelobrojnog dijeljenja
MOD nema
Primjena matematičke logike
KONJUNKCIJA (I, AND)DISJUNKCIJA (ILI, OR)NEGACIJA (NE, NOT)NEGACIJA (NE, NOT)
27(c) L. Blagojević i D. Grundler, 2005.
PRIORITET OPERATORA
28
Primjer zadataka:
x:=10;y:=5;z:=(x>y) ILI (x mod 2 = 1) I z:=(x>y) ILI (x mod 2 = 1) I NE(y div 5 =1)rješenje:z:=1 ILI 0 I NE 1 => 1 ILI 0 I 0 => 1 ILI 0 => 1
29
Programiranje
• Pisanje skupa naredaba nanizanih odreñenim redom u izabranom programskom jeziku
30
Programiranje
• Program je skup naredaba nanizanih strogo utvrñenim redoslijedom, čijim se izvršenjem obavlja željeni posao
31
• Čovjek koji piše program naziva se programer, a postupak nastanka programa naziva se programiranje ili kodiranje
Programiranje
10 REM Opseg i površina pravokutnika20 CLS30 A = 12.3 :REM Stranica A pravokutnika
• Primjer jednostavnog programa u programskomjeziku BASIC
32
30 A = 12.3 :REM Stranica A pravokutnika40 B = 8.2 :REM Stranica B pravokutnika50 OPSEG = 2 * A + 2 * B :REM Formula za opseg60 POV = A * B :REM Formula za površinu70 PRINT OPSEG :REM Ispis opsega80 PRINT POV :REM Ispis površine
Dva načina prevoñenja programa
INTERPRETIRANJE
KOMPILIRANJEKOMPILIRANJE
33
Provjera programa
• Provjera ispravnog i željenog ponašanja programa (provjerava i
34
(provjerava i proizvoñač programa i korisnik)
Pogreška u programu
• U računalom nazivlju pogreške su dobile i posebno ime: engl. bug (čita se bag)
• Bug je ime za trajnu pogrešku u programu ili
35
• Bug je ime za trajnu pogrešku u programu ili sklopovlju računala. Pogreška dovodi do neželjenog ponašanja računala, a katkad može izazvati i opasne posljedice, primjerice, brisanje podataka s diska
Bug
36
Održavanje programa
• Postupak mijenjanja programa tijekom životnog vijeka programa i poduka korisnika o
37
i poduka korisnika o uporabi programa
• Često se održavanje svodi na instaliranje nove inačice programa
Izrada dokumentacije
• Izrada dokumentacije za korisnika (priručnici i sl.) i za održavanje
38
i za održavanje programa
Strukturno programiranje
• Strukturno programiranje (engl. structured programing) skup je programskih postupaka koji vode logičkoj organizaciji i čitljivosti
39
logičkoj organizaciji i čitljivosti programa
• Logička organizacija programa olakšava pisanje, održavanje i popravak programa
Strukturno programiranje• Modularno programiranje je prva i
najvažnija metoda strukturnog programiranja
• Modularno programiranje sastoji se u
40
• Modularno programiranje sastoji se u podjeli programa u manje cjeline, koje se mogu neovisno pisati i provjeravati, a po završetku ugraditi u glavni program
Strukturno programiranje
• Strukturno orijentirani jezici (npr. Pascal, dBase, Ada) prisiljavaju programera na strukturno programiranje, za razliku od
41
programiranje, za razliku od nestrukturnih jezika (npr. BASIC, FOR-TRAN, COBOL) koji prepuštaju grañu programa u potpunosti programeru
Srtukturno programiranje
• Strukturno orijentirani jezici ograničavaju slobodu programera i tjeraju ga na programsku disciplinu i urednost, uzvraćajući mu uštedom truda pri dokumentiranju, održavanju i
42
urednost, uzvraćajući mu uštedom truda pri dokumentiranju, održavanju i popravcima programa
Sažetak
• Pri izradi računalnog programa planiranje može uštedjeti mnogo truda, vremena i novca. Planiranjem se predviña tko će, kada i što raditi.
43
što raditi.• Specifikacija je dokument koji sadržava
podroban popis i opis zadataka i željenih rezultata
• Algoritam je naputak kako riješiti neki zadatak ili obaviti neki posao
Sažetak
• Dijagram tijeka (engl. flow chart) je grafički prikaz programa koji olakšava izradu programa
• Pseudokôd je tobožnji program
44
• Pseudokôd je tobožnji program (grč. pseudos ̶ laž) jer premda sliči 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
Sažetak
• Kako bi se neki zadatak moga riješiti pomoću računala, potrebno je računalu na početku dati odreñene podatke (kako zadatak treba riješiti, koji su podaci na raspolaganju i sl.).
45
riješiti, koji su podaci na raspolaganju i sl.). Taj se postupak zove upis.
• Rezultat računalo mora priopćiti na neki način okolini. To se zove ispis podataka.
• Kada se varijabli želi dodijeliti neka vrijednost u računalnom programu, kaže se da joj se pridružuje odreñena vrijednost
Sažetak
• Grananje je programska struktura koja omogućuje različiti tijek programa, ovisno o zadovoljenju postavljenog uvjeta
• Petlja je programska struktura kojom je opisano opetovano ponavljanje neke radnje
46
opisano opetovano ponavljanje neke radnje• Program je skup naredaba nanizanih strogo
utvrñenim redoslijedom, čijim se izvršenjem obavlja željeni posao. Čovjek koji piše program naziva se programer, a postupak nastanka programa naziva se programiranje ili kodiranje.
Sažetak
• Nakon što je program gotov, treba ga provjeriti. Provjeru ili testiranje programa provodi proizvoñač programa i neovisni ispitivači.
47
ispitivači.• Održavanje programa je postupak mijenjanja
programa tijekom njegovog životnog vijeka• Važan dio izrade programa je izrada
dokumentacije za korisnika i za kasnije održavanje programa
Sažetak• U dokumentaciju se ubrajaju, primjerice,
uputa za instaliranje programa, priručnici za korisnika, tehnički opis programa i samo ponekad izvorni program.
• Strukturno programiranje (engl. structured
48
• Strukturno programiranje (engl. structured programing) skup je programskih postupaka koji vode logičkoj organizaciji i čitljivosti programa.
Sažetak
• Logička organizacija programa olakšava pisanje, održavanje i popravak programa.
49
• Ispravljanje, dopuna i poduka korisnika o uporabi programa naziva se održavanje programa.
Zadaci: poveži pojmove
50
Upiši potrebne naredbe u dijagram tijeka, napiši pseudokod i popuni tablicu ako dijagram tijeka provjerava je li upisani broj x manji od 67.
x ispis
257
39
67
56
Broj je manji od
67.
Broj nije manji od
67.
51
Napiši algoritam koji provjerava je li umnožak brojeva ai b jednoznamenkast broj. Brojeve a i b upisati na početku algoritma.
52