Upload
trinhtruc
View
219
Download
4
Embed Size (px)
Citation preview
Načela programiranjaNačela programiranja
2(c) S.Šutalo i D.Grundler, 2009.
Rješavanje zadatakaRješavanje zadataka
Čovek:
znanje,
iskustvo,
logičko rasuđivanje,
intuicija,
osećaji,
itd.
3(c) S.Šutalo i D.Grundler, 2009.
Rješavanje zadatakaRješavanje zadataka
Računar:
pamćenje,
logičko rasuđivanje.
Da bi račuar rešio zadatak, zadatak treba pretvoriti u oblik koji uključuje samo te dve sposobnosti.
U tome pomažu pomoćni postupci.
4(c) S.Šutalo i D.Grundler, 2009.
Rješavanje zadataka računaromRješavanje zadataka računarom
Postupci za pretvaranje zadatka u oblik prihvatliv za računar su:
planiranje,
analiza zadatka,
algoritam,
dijagram
i dr.
5(c) S.Šutalo i D.Grundler, 2009.
Pomoćni postupciPomoćni postupci
Što je zadatak složeniji, to je u načelu potrebno više pomoćnih postupaka.
Što se više napreduje pri rješavanju zadatka, prikaz zadatka postaje sve razlučeniji na manje radnje.
6(c) S.Šutalo i D.Grundler, 2009.
ZadatakZadatak
Na ovom primeru se pokazuje pretvaranje zadatka na način razumljiv za računar
Pešak u datom vremenu napravi odreženi broj koraka, odredi brzinu sa kojom se kreće pešak u km/h i m/s, ako je poznata prosečna dužina njegovog koraka?
.
7(c) S.Šutalo i D.Grundler, 2009.
PlaniranjePlaniranje
Prvi korak u rešavanju zadatka jeste planiranje.
Planiranjem se određuje ko će, kada i što raditi.
Planiranjem se i raspoređuju faze izrade programa.
8(c) S.Šutalo i D.Grundler, 2009.
Analiza zadatka i specifikacijaAnaliza zadatka i specifikacija
Da bi se neki zadatak uspešno rešio potrebno je da se zna kako on glasi.
Analiza zadatka je rasčlanjivanje, razumevanje zadatka i željenih rezultata.
Rezultat analize je specifikacija zadatka.
9(c) S.Šutalo i D.Grundler, 2009.
Analiza zadatka i specifikacijaAnaliza zadatka i specifikacija
Specifikacija je dokument koji sadrži podroban opis zadatka i željenih rezultata.
Specifikacija nije prijedlog kako riješiti zadatak nego opis onoga što je na raspolaganju i željenog rezultata.
Specifikacija zadatkaSpecifikacija zadatkaZadano: oznaka
Vreme hodanja(jedinica nije zadata; treba proveriti čta je korisnik uneo i prema potrebi pretvoriti jednu jedinicu u drugu)
t
Dužina koraka(jedinica nije zadata; treba proveriti čta je korisnik uneo i prema potrebi pretvoriti jednu jedinicu u drugu)
sk
broj koraka N
Treba izračunati: oznaka
brzina kretanja pešaka u m/s v1
brzina kretanja pešaka u km/h v2
11(c) S.Šutalo i D.Grundler, 2009.
AlgoritamAlgoritam
Računar može rešiti zadatak samo ako dobije precizna i jasna uputstva, algoritam.
12(c) S.Šutalo i D.Grundler, 2009.
AlgoritamAlgoritam
Cilj algoritma je da zadatak svede na niz jednostavnih, manjih instrukcija.
Izvršavanjem tih osnovnih instrukcija, moguće je na osnovu ulaznih podataka dobiti rezultat.
ULAZ(ulazni podaci)
OBRADA(algoritam)
IZLAZ(rezultat)
Algoritam zadatka PješakAlgoritam zadatka Pješak
1. U kojim jedinicama su uneseni ulazni podaci.
2. U zavisnosti od jedinica ulaznih podataka odluči treba li iznose izračunatai u vrednostima izražene u jedinicama osnovnog SI sistema.
3. Izračunati put na osnovu ukupnog broja koraka i prosečne dužine jednog koraka.
4. Pomoću formule za računanje brzine i podatka o putu i vremenu izračunati brzinu v1 izraženu u m/s.
5. Zatim prevesi m/s u km/h.
14(c) S.Šutalo i D.Grundler, 2009.
AlgoritamAlgoritam
Većina zadataka se može rešiti na više različitih načina pa moguće je napisati više različitih algoritama.
Autor algoritma nastoji kreirati algoritam koji najbrže, najtačnije i najsigurnije dovodi do rezultata.
15(c) S.Šutalo i D.Grundler, 2009.
AlgoritamAlgoritam
Algoritam je jedan od koraka za rečavanje zadatka pomoću računara
Algoritam se prikazuje:
dijagramomom,
pseudokôdom.
16(c) S.Šutalo i D.Grundler, 2009.
DijagramDijagram
Grafički prikaz algoritma naziva se dijagram.
Dijagram je koristan jer pregledno prikazuje algoritam, omogućava lakšu analizu i proveru predloženog rešenja
17(c) S.Šutalo i D.Grundler, 2009.
DijagramDijagram
Dijagram se sastoji od nekoliko jednostavnih geometrijskih likova spojenih usmerenim crtama.
Usmerene crte pokazuju tiek rešavanja zadatka pa odatle i naziv dijagrama.
Geometrijske figure dijagramaGeometrijske figure dijagrama
ULAZ PODATAKA
IZLAZ PODATAKA
POČETAK, KRAJ ILI PREKID
PROGRAMA
ODLUKA ILI GRANANJE
JEDNA ILI VIŠE
NAREDBI
DA
NE
?
19(c) S.Šutalo i D.Grundler, 2009.
ZadatakZadatak
20(c) S.Šutalo i D.Grundler, 2009.
Izvorni kodIzvorni kod
Pseudokôd je tobožnji program (grč. pseudos – laž).
Sastoji se od kratkih izraza na govornom jeziku koji opisuju i bjašnjavaju pojedine zadatke algoritma.
Nalikuje na računalni program, ali nije napisan u programskom jeziku.
21(c) S.Šutalo i D.Grundler, 2009.
ProgramiranjeProgramiranje
Programski jezik računara je jedini jezik koji računar razume.
Algoritam za rješavanje zadatka treba zapisati naredbama odabranog programskog jezika.
22(c) S.Šutalo i D.Grundler, 2009.
Programski jezik – ključne riječiProgramski jezik – ključne riječi
Svaki programski jezik ima ograničeni skup reči koje imaju posebna značenja, ključnim riječima.
23(c) S.Šutalo i D.Grundler, 2009.
Programski jezik - sintaksaProgramski jezik - sintaksa
Svaki programski jezik poseduje pravila slaganja ključnih riječi u naredbe.
Takva se pravila nazivaju sintaksa.
Ako se ne zadovolji propisana sintaksa, program će biti neispravan i neće se moći izvršiti.
24(c) S.Šutalo i D.Grundler, 2009.
Provera i ispravljanjeProvera i ispravljanje
Da bi program bio upotrebljiv i koristan, mora biti logički ispravan.
Za otkrivanje logičkih grešaka potrebno je proveravati (testirati) program.
Program proverava autor programa, više ljudi kod proizvođača progama ili nezavisni ispitivači.
25(c) S.Šutalo i D.Grundler, 2009.
Provera zadatka :Provera zadatka :
Zadato
t= 2 min
sk= 70 cm
N= 200očekivano
v1=1,17 m/s
v2= 4,2 km/h
Postupak treba da se Postupak treba da se ponovi za za što više ulaznih podataka za što više ulaznih podataka za koje je poznat rezultat ili se koje je poznat rezultat ili se rezultat zna izračunati.rezultat zna izračunati.
26(c) S.Šutalo i D.Grundler, 2009.
Održavanje programaOdržavanje programa
Održavanje programa je postupak menjanja programa tokom negovog “životnog” vieka.
Ugovor o održavanju.
Ili izdavanje novih zakrpa i ispravaka programa za programe koji se prodaju u velikim količinama (npr. program Windows).
27(c) S.Šutalo i D.Grundler, 2009.
DokumentacijaDokumentacija
Dokumentacija je važan dodatak programu, a sastoji se od:
Uputstva za instaliranje programa,
Priručnika za korisnike,
Tehničkog opisa programa,
itd.
28(c) S.Šutalo i D.Grundler, 2009.
Varijable, promenljiveVarijable, promenljive
Mesto u memoriji rezervirano za pohrannjivanje podatka naziva se varijabla.
Svaka varijabla ima ime koje je jednoznačno određuje.
Ime varijable se zadaje proizvoljno, npr. x, a, TX, B_Pod, AmPe
29(c) S.Šutalo i D.Grundler, 2009.
Vrednost varijableVrednost varijable
Varijabli se vrednost pridružuje pomoću operatora pridruživanja.
Operator pridruživanja je znak (:=).
pr. izraz x:=3 -"varijabli x se pridružuje broj 3".
30(c) S.Šutalo i D.Grundler, 2009.
Operator pridruživanjaOperator pridruživanja
Kolika je vrednost varijable x na kraju ovog odeljka?
x:=5;x:=3;x=5;
Rezultat na kraju - x=3
31(c) S.Šutalo i D.Grundler, 2009.
OperatoriOperatori
Operatori su simboli koji predstavljaju određene funkcije.
Operatori se mogu podeliti u grupe prema funkcije koje obavljaju, pr.:
aritmetički operatori, logički operatori, operatori uporeživanja(relacijski operatori).
32(c) S.Šutalo i D.Grundler, 2009.
Aritmetički operatoriAritmetički operatori
Opis Pseudo jezik Pascal C/C+ +
Sabiranje + + +Oduzimanje - - -Množenje * * *Dijeljenje / / /Cjelobrojno dijeljenje DIV DIV /Cjelobrojni ostatak dijeljenja MOD MOD %
33(c) S.Šutalo i D.Grundler, 2009.
Operatori deljenjaOperatori deljenja
Operator deljenja (/) kao rezultat vraća vrednost promenljive u obliku realnog broja.
Operator DIV vraća celobrojni deo deljenja dva cela broja.
Operator MOD vraća celobrojni ostatak deljenja dva cela broja.
x := 5;y := 2;
a := x/y;b := x DIV y;c := x MOD
y;
a=2,5; b=2; c=1
34(c) S.Šutalo i D.Grundler, 2009. 34(c) S.Šutalo i D.Grundler, 2009.
Logički podaciLogički podaci
Logički podaci su podaci koji imaju samo vrednosti tačno ili netačno.
true/false,
da/ne,
istina/laž,
1/0.
35(c) S.Šutalo i D.Grundler, 2009.
Logički operatoriLogički operatori
Opis Pseudo jezik Pascal C/C+ +
Logički I I AND &&Logički ILI ILI OR ||Logički NE NE NOT !
■ Za rad s logičkim podacima, postoje logičke funkcije koje se zapisuju logičkim operatorima.
36(c) S.Šutalo i D.Grundler, 2009. 36(c) S.Šutalo i D.Grundler, 2009.
Logički NELogički NE
Kao što pokazuje tablica stanja, logički operator NE izvodi negaciju uslova A.
A (NE A)
0 1
1 0
37(c) S.Šutalo i D.Grundler, 2009. 37(c) S.Šutalo i D.Grundler, 2009.
Logički I i logički ILILogički I i logički ILI
Način rada logičkih operatora I i ILI najednostavnije je prikazano pomoću strujnim kolama, gde se nalaze dve sklopke i sijalica.
Stanje otvorene sklopke može se označiti sa 0, a zatvorene s 1.
Stanje u kome sijalica svetli može se označiti sa 1, a kada ne svijetli sa 0.
38(c) S.Šutalo i D.Grundler, 2009. 38(c) S.Šutalo i D.Grundler, 2009.
Logički ILogički I
Način rada logičkog I može se prikazati sa sklopkama kje su spojene serijski.
Sijalica svetli samo kada su obe sklopke zatvorene.
A B S
0 0 0
1 0 0
0 1 0
1 1 1
39(c) S.Šutalo i D.Grundler, 2009. 39(c) S.Šutalo i D.Grundler, 2009.
Logički ILILogički ILI
Način rada logičkog ILI može se prikazati sa sklopkama koje su spojene paralelno.
Sijalica svetli ako je bilo koja (ili obe) sklopke zatvorene.
A B S
0 0 0
1 0 1
0 1 1
1 1 1
40(c) S.Šutalo i D.Grundler, 2009. 40(c) S.Šutalo i D.Grundler, 2009.
Logički ILILogički ILI
A B (A ILI B)
0 0 0
1 0 1
0 1 1
1 1 1
logički operator ILI vraća jedinicu ako je ispunjen samo jedan od uslova(true, 1) ili ako su ispunjena oba uslova.
Kada nije ispunjen ni jedan uslov, rezultat je 0.
41(c) S.Šutalo i D.Grundler, 2009.
Logički operatoriLogički operatori
Kolika je vrednost varijabli e, f,g?
a:=0; b:=1;e:=(a I b); f:=(a ILI b); g:=(NE a);
Rezultati logičkih operacija će biti: e=0, f=1, g=1.
42(c) S.Šutalo i D.Grundler, 2009.
Relaciski oRelaciski operatoriperatori
Opis Pseudo jezik Pascal C/C+ +
Manje < < <Manje ili jednako <= <= <=Veće > > >Veće ili jednako >= >= >=Jednako = = = =Različito <> <> !=
43(c) S.Šutalo i D.Grundler, 2009.
Relaciski oRelaciski operatoriperatori
Dva podatka se mogu upoređivati uporabom relaciski operatora.
Rezultat uporedjivanja je 1 (true) ako je izraz zapisan operatorima istinit, a ako nije, rezultat je 0 (false).
b:=(6<=5)
Sadržaj varijable b bit će 0 (6 nije < ili = 5)
44(c) S.Šutalo i D.Grundler, 2009.
Relaciski oRelaciski operatoriperatori
Kolika je vrednost varijable a, b, c, d?
a:=(5<13);
b:=(8<=8);
c:=(5=8);
d:=(5<>2+3);
Rezultati : a=1, b=1, c=0, d=0.
45(c) S.Šutalo i D.Grundler, 2009.
Redosled izvršavanja operatoraRedosled izvršavanja operatora
Redoslijed izvršavanja Operatori
1. ()2. NE3. * / DIV MOD I4. + - ILI5. >, <, <=, >=, <>, =
46(c) S.Šutalo i D.Grundler, 2009.
Redosled izvršavanja operatoraRedosled izvršavanja operatora
Kolika je vrednost varijable x?
x := 22 DIV 5 * 11 MOD 3;
Svi su operatori ravnopravni, izraz se izvršava od levo na desno ovim redosledom:
22 DIV 5 = 4
4 * 11 = 44
44 MOD 3 = 2 (ostatak deljenja 44/3)
x=2
47(c) S.Šutalo i D.Grundler, 2009.
Redosled izvršavanja operatoraRedosled izvršavanja operatora
Kolika će biti vrijednost varijable x?
x := (22 DIV 5) * (11 MOD 3);
Zagrade poništavaju prioritete operatora :
22 DIV 5 = 4
11 MOD 3= 2
4 * 2 = 8
x = 8
48(c) S.Šutalo i D.Grundler, 2009.
Programska strukturaProgramska struktura
Programska struktura opisuje način i redosled izvršavanja pojedinih radnji koje dovode do konačnog rešenja zadatka.
Razlikuje se nekoliko osnovnih programskih struktura.
49(c) S.Šutalo i D.Grundler, 2009.
Osnovne programske struktureOsnovne programske strukture
Osnovne programske strukture su: Linijska programska strutura (niz), struktura grananja, struktura petlje.
50(c) S.Šutalo i D.Grundler, 2009.
LinijskaLinijska programska strukturaprogramska struktura
Kao primer liniske programske strukture može poslužiti zadatak:
Korisnik unosi dva broja, brojevi se sabiraju pa se ispisuje dobiveni zbir.
Liniska programska strukturaLiniska programska struktura
Samo u slučaju rešavanja najjednostavnijih zadataka, programska struktura je linijska, tj. program se uvijek izvršava istim nizom naredbi.
52(c) S.Šutalo i D.Grundler, 2009.
FunkcijeFunkcije
Opis Pseudo jezik
Apsolutna vrednost realnoga broja Abs(x)
Drugi koren realnoga broja Sqrt(x)
Zaokruživanje realnoga broja na najbliži cieli broj Round(x)
Najveći celi broj manji ili jednak od x Trunc(x)
Izdvojeni nizovi naredbi koji čine logičke celine a obavljaju utvrđene zadatke nazivaju se funkcije.
53(c) S.Šutalo i D.Grundler, 2009.
Funkcije - primerFunkcije - primer
ulaz (x);
a := Sqrt(x);
b := Round(x);
c := Trunc(x);
izlaz (a, b, c);
54(c) S.Šutalo i D.Grundler, 2009.
Programska struktura grananjaProgramska struktura grananja
Redosljed izvršavanja naredbi često y=zavisi od ulaznih podataka ili međurezultata obrade.
Grananje je programska struktura koja omogućava različit tok programa, zavisno od rezultatu uslova.
55(c) S.Šutalo i D.Grundler, 2009.
Naredbe pseudo jezika za grananjeNaredbe pseudo jezika za grananje
Opis Pseudo jezik
Grananje
ako je uslov onda
naredba1inače
naredba2;Blok naredbi {
} Delovi programaDelovi programa koji se koji se uslovno uslovno izvodeizvode, grupiraju se u , grupiraju se u
blokove naredbiblokove naredbi..
56(c) S.Šutalo i D.Grundler, 2009.
Programska struktura grananjaProgramska struktura grananja
Primer:
Korisnik unosi dva broja, a ispisuje veći broj.
Dijagram Dijagram
58(c) S.Šutalo i D.Grundler, 2009.
Programska struktura petljeProgramska struktura petlje
Često je u programu potrebno ponoviti neke radne više puta (iterirati). Programska struktura gde imamo ponavljanje je petlja.
Mogu se ponavljati:
unapred zadani broj puta,
sve dok je ispunjen zadani uslov.
Naredbe pseudo jezika za petljuNaredbe pseudo jezika za petlju
Opis Pseudo jezik
Petlja s unaprijed poznatim brojem ponavljanja
za b := p do k činiti naredba;
Petlja kod koje nije unaprijed poznat broj ponavljanja, a uslov se proverava na početku petlje
dok je uslov činiti naredba;
Petlja kod koje nije unapred poznat broj ponavljanja, a uslov se proverava na kraju petlje
ponavljatinaredba; dok je uslov;
60(c) S.Šutalo i D.Grundler, 2009.
Programska struktura petljeProgramska struktura petlje
Primjer
Korisnik treba uneti 100 cijelih brojeva, a pre svakog unosa broja ispisuje se tekst "Unesi broj".
61
DijagramDijagram