Naela programiranja Rjeavanje zadataka n ovjek n znanje

  • Slides: 52
Download presentation
Načela programiranja

Načela programiranja

Rješavanje zadataka n Čovjek: n znanje, n iskustvo, n logičko rasuđivanje, n intuicija, n

Rješavanje zadataka n Čovjek: n znanje, n iskustvo, n logičko rasuđivanje, n intuicija, n osjećaji, n itd. (c) S. Šutalo i D. Grundler, 2009. 2

Rješavanje zadataka n Računalo: n pamćenje, n logičko rasuđivanje. n Da bi računalo riješilo

Rješavanje zadataka n Računalo: n pamćenje, n logičko rasuđivanje. n Da bi računalo riješilo zadatak, zadatak treba pretvoriti u oblik koji uključuje samo te dvije sposobnosti. n U pretvorbi zadataka pomažu pomoćni postupci. (c) S. Šutalo i D. Grundler, 2009. 3

Rješavanje zadataka računalom n Pomoćni postupci za pretvorbu zadatka u oblik prihvatljiv računalu su:

Rješavanje zadataka računalom n Pomoćni postupci za pretvorbu zadatka u oblik prihvatljiv računalu su: n planiranje, n analiza zadatka, n algoritam, n pseudokôd, n dijagram tijeka n i dr. (c) S. Šutalo i D. Grundler, 2009. 4

Pomoćni postupci n Što je zadatak složeniji, to je u načelu potrebno više pomoćnih

Pomoćni postupci n Što je zadatak složeniji, to je u načelu potrebno više pomoćnih postupaka. n Što se više napreduje pri rješavanju zadatka, prikaz zadatka postaje sve razlučeniji na manje radnje. (c) S. Šutalo i D. Grundler, 2009. 5

Zadatak Pješak n Na ovom primjeru će se pokazati pretvorba zadatka u oblik prihvatljiv

Zadatak Pješak n Na ovom primjeru će se pokazati pretvorba zadatka u oblik prihvatljiv računalu: Pješak u zadanom vremenu učini određeni broj koraka. Potrebno je odrediti: Brzinu pješaka u km/h i m/s ako je poznata prosječna duljina njegovog koraka. (c) S. Šutalo i D. Grundler, 2009. 6

Planiranje n Prvi korak u rješavanju zadatka jest planiranje. n Planiranjem se određuje tko

Planiranje n Prvi korak u rješavanju zadatka jest planiranje. n Planiranjem se određuje tko će, kada i što raditi. n Planiranjem se predviđaju i raspoređuju pojedine faze izrade programa. (c) S. Šutalo i D. Grundler, 2009. 7

Analiza zadatka i specifikacija n Preduvjet da bi se neki zadatak uspješno riješio jest

Analiza zadatka i specifikacija n Preduvjet da bi se neki zadatak uspješno riješio jest znati kako on zapravo glasi. n Analiza zadatka je raščlamba i potpuno razumijevanje zadatka i željenih rezultata. n Rezultat analize je specifikacija zadatka. (c) S. Šutalo i D. Grundler, 2009. 8

Analiza zadatka i specifikacija n Specifikacija je dokument koji sadrži podroban opis zadatka i

Analiza zadatka i specifikacija n Specifikacija je dokument koji sadrži podroban opis zadatka i željenih rezultata. n Specifikacija nije prijedlog kako riješiti zadatak nego opis onoga što je na raspolaganju i željenog rezultata. (c) S. Šutalo i D. Grundler, 2009. 9

Specifikacija zadatka Pješak: Zadano: oznaka Vrijeme hodanja (jedinica nije zadana; treba provjeriti što je

Specifikacija zadatka Pješak: Zadano: oznaka Vrijeme hodanja (jedinica nije zadana; treba provjeriti što je korisnik unio, pa prema potrebi pretvoriti jednu jedinicu u drugu) t Duljina jednog koraka (jedinica nije zadana; treba provjeriti što je korisnik unio, pa prema potrebi pretvoriti jednu jedinicu u drugu) sk Broj koraka N Treba izračunati: oznaka Brzina kretanja pješaka u m/s v 1 Brzina kretanja pješaka u km/h v 2

Algoritam n Računalo zadatak može riješiti samo ako dobije naputak kako to učiniti. n

Algoritam n Računalo zadatak može riješiti samo ako dobije naputak kako to učiniti. n Takav se naputak naziva algoritam. (c) S. Šutalo i D. Grundler, 2009. 11

Algoritam n Cilj algoritma je cjelokupni zadatak svesti na niz jednostavnih, manjih radnji. n

Algoritam n Cilj algoritma je cjelokupni zadatak svesti na niz jednostavnih, manjih radnji. n Izvršavanjem tih osnovnih radnji moguće je na temelju ulaznih podataka dobiti rezultat. ULAZ OBRADA IZLAZ (ulazni podaci) (algoritam) (rezultat) (c) S. Šutalo i D. Grundler, 2009. 12

Algoritam zadatka Pješak 1. Provjeriti u kojim su jedinicama uneseni ulazni podaci. 2. Ovisno

Algoritam zadatka Pješak 1. Provjeriti u kojim su jedinicama uneseni ulazni podaci. 2. Ovisno o jedinicama mjere ulaznih podataka odlučiti treba li iznose preračunati u vrijednosti izražene u jedinicama osnovnog SI sustava. 3. Izračunati put na osnovu ukupnog broja koraka i prosječne duljine jednog koraka. 4. Pomoću formule za računanje brzine jednolikog gibanja i podatka o putu i vremenu izračunati brzinu v 1 izraženu u m/s. 5. Preračunati vrijednost iz m/s u km/h.

Algoritam n Većina zadataka se može riješiti na više različitih načina pa je za

Algoritam n Većina zadataka se može riješiti na više različitih načina pa je za njihovo rješenje moguće napisati više različitih algoritama. n Autor algoritma redovito nastoji pronaći algoritam koji najbrže, najučinkovitije i najsigurnije dovodi do rezultata. (c) S. Šutalo i D. Grundler, 2009. 14

Algoritam n Algoritam je jedan od koraka pri pretvorbi zadatka u računalni program. n

Algoritam n Algoritam je jedan od koraka pri pretvorbi zadatka u računalni program. n Pogodno ga je prikazati: n dijagramom tijeka, n pseudokôdom. (c) S. Šutalo i D. Grundler, 2009. 15

Dijagram tijeka n Grafički prikaz algoritma naziva se dijagram tijeka. n Dijagram tijeka je

Dijagram tijeka n Grafički prikaz algoritma naziva se dijagram tijeka. n Dijagram tijeka je koristan jer pregledno prikazuje algoritam, omogućava lakšu analizu i provjeru predloženog rješenja, te pronalaženje boljih postupaka rješavanja zadatka. (c) S. Šutalo i D. Grundler, 2009. 16

Dijagram tijeka n Dijagram tijeka se sastoji od nekoliko jednostavnih geometrijskih likova spojenih usmjerenim

Dijagram tijeka n Dijagram tijeka se sastoji od nekoliko jednostavnih geometrijskih likova spojenih usmjerenim crtama. n Usmjerene crte pokazuju tijek rješavanja zadatka pa odatle i naziv dijagrama. (c) S. Šutalo i D. Grundler, 2009. 17

Geometrijski likovi dijagrama tijeka POČETAK, KRAJ ILI PREKID PROGRAMA JEDNA ILI VIŠE NAREDBI ULAZ

Geometrijski likovi dijagrama tijeka POČETAK, KRAJ ILI PREKID PROGRAMA JEDNA ILI VIŠE NAREDBI ULAZ PODATAKA ? IZLAZ PODATAKA NE DA ODLUKA ILI GRANANJE

Zadatak Pješak (c) S. Šutalo i D. Grundler, 2009. 19

Zadatak Pješak (c) S. Šutalo i D. Grundler, 2009. 19

Pseudokôd n Pseudokôd je tobožnji program (grč. pseudos – laž). n Sastoji se od

Pseudokôd n Pseudokôd je tobožnji program (grč. pseudos – laž). n Sastoji se od kratkih izraza na govornom jeziku koji opisuju i ukratko objašnjavaju pojedine zadatke algoritma. n Nalikuje na računalni program, ali nije napisan u programskom jeziku. (c) S. Šutalo i D. Grundler, 2009. 20

Pseudokôd n Osoba koja piše pseudokôd ne mora znati programski jezik i ne mora

Pseudokôd n Osoba koja piše pseudokôd ne mora znati programski jezik i ne mora razmišljati o pravilima pisanja programskog jezika. n Pseudokôd bi trebao biti napisan tako da programer može na temelju njega napisati program u bilo kojem programskom jeziku. (c) S. Šutalo i D. Grundler, 2009. 21

Pseudokôd zadatka Pješak ulaz (N); ulaz (t); ako je t izražen u jedinicama koje

Pseudokôd zadatka Pješak ulaz (N); ulaz (t); ako je t izražen u jedinicama koje nisu sekunde onda pretvori t u sekunde ; ulaz (sk); ako je sk izražen u jedinicama koje nisu metri onda pretvori sk u metre; s: = sk *N; v 1: =s/t; v 2: =v 1*3, 6; (1 m=0, 001 km; 1 s=1/3600 h) izlaz (v 1 i v 2);

Programiranje n Programski jezik računala je jedini jezik koji računalo razumije. n Zato naputak

Programiranje n Programski jezik računala je jedini jezik koji računalo razumije. n Zato naputak za rješavanje zadatka treba zapisati naredbama odabranog programskog jezika. (c) S. Šutalo i D. Grundler, 2009. 23

Programski jezik – ključne riječi n Svaki programski jezik ima vlastiti ograničeni skup riječi

Programski jezik – ključne riječi n Svaki programski jezik ima vlastiti ograničeni skup riječi koje imaju posebna značenja. n Takve se riječi nazivaju ključnim riječima. (c) S. Šutalo i D. Grundler, 2009. 24

Programski jezik - sintaksa n Za svaki programski jezik propisana su pravila slaganja ključnih

Programski jezik - sintaksa n Za svaki programski jezik propisana su pravila slaganja ključnih riječi u naredbe. n Takva se pravila nazivaju sintaksa. n Ako se ne zadovolji propisana sintaksa, program će biti neispravan i neće se moći izvršiti. (c) S. Šutalo i D. Grundler, 2009. 25

Provjera i ispravljanje n Program je uporabno koristan, samo ako je logički ispravan. n

Provjera i ispravljanje n Program je uporabno koristan, samo ako je logički ispravan. n Za otkrivanje logičkih pogrešaka potrebno je provjeravati (testirati) program. n Program provjerava autor programa, više ljudi kod proizvođača programa ili neovisni ispitivači. (c) S. Šutalo i D. Grundler, 2009. 26

Provjera zadatka Pješak: Zadano t= 2 min sk= 70 cm N= 200 očekivano v

Provjera zadatka Pješak: Zadano t= 2 min sk= 70 cm N= 200 očekivano v 1=1, 17 m/s v 2= 4, 2 km/h Postupak treba ponoviti za što više ulaznih podataka za koje je poznat rezultat ili se rezultat zna izračunati. (c) S. Šutalo i D. Grundler, 2009. 27

Održavanje programa n Održavanje programa je postupak mijenjanja programa tijekom njegovog “životnog” vijeka. n

Održavanje programa n Održavanje programa je postupak mijenjanja programa tijekom njegovog “životnog” vijeka. n Izravno: ugovor o održavanju. n Neizravno: izdavanje novih inačica i ispravaka programa za programe koji se prodaju u velikim količinama (npr. program Windows). (c) S. Šutalo i D. Grundler, 2009. 28

Dokumentacija n Dokumentacija je važan dodatak programu, a sastoji se od: n uputa za

Dokumentacija n Dokumentacija je važan dodatak programu, a sastoji se od: n uputa za instaliranje programa, n priručnika za korisnike, n tehničkog opisa programa, n itd. (c) S. Šutalo i D. Grundler, 2009. 29

Programska struktura n Programska struktura opisuje način i redoslijed izvršavanja pojedinih radnji koje dovode

Programska struktura n Programska struktura opisuje način i redoslijed izvršavanja pojedinih radnji koje dovode do konačnog rješenja zadatka. n Razlikuje se nekoliko osnovnih programskih struktura. (c) S. Šutalo i D. Grundler, 2009. 30

Primjer pseudo jezika n Pri opisu programskih struktura rabit će se osnove pseudo jezika

Primjer pseudo jezika n Pri opisu programskih struktura rabit će se osnove pseudo jezika koji se rabi u Ispitnom katalogu za državnu maturu iz Informatike za šk. god. 2009. /2010. n Osnove tog pseudo jezika prikazane su na nekoliko sljedećih slajdova. (http: //dokumenti. ncvvo. hr/Ispitni_katalozi_08 -09/Izborni/IK-info. pdf). (c) S. Šutalo i D. Grundler, 2009. 31

Varijable n Mjesto u memoriji rezervirano za pohranu podatka naziva se varijabla. n Svaka

Varijable n Mjesto u memoriji rezervirano za pohranu podatka naziva se varijabla. n Svaka varijabla ime koje ju jednoznačno određuje. n Ime varijable se u pseudo jeziku može zadati proizvoljno, npr. x, a, TX, B_Pod, Am. Pe (c) S. Šutalo i D. Grundler, 2009. 32

Vrijednost varijable n Varijabli se vrijednost pridružuje s pomoću operatora pridruživanja. n Operator pridruživanja

Vrijednost varijable n Varijabli se vrijednost pridružuje s pomoću operatora pridruživanja. n Operator pridruživanja koji se rabi u ovoj inačici pseudo jezika je znak (: =). Npr. izraz x: =3 se može čitati "varijabli x se pridružuje broj 3". (c) S. Šutalo i D. Grundler, 2009. 33

Kraj naredbe n Algoritam zapisan pseudo jezikom sastoji se od niza naredbi. n Svaka

Kraj naredbe n Algoritam zapisan pseudo jezikom sastoji se od niza naredbi. n Svaka naredba ove inačice pseudo jezika završava znakom točka-zarez (; ). (c) S. Šutalo i D. Grundler, 2009. 34

Operatori n Operatori su simboli koji predstavljaju određene funkcije. n Operatori se mogu svrstati

Operatori n Operatori su simboli koji predstavljaju određene funkcije. n Operatori se mogu svrstati u skupine prema vrsti funkcije koju predočuju, npr. : n aritmetički operatori, logički operatori, operatori uspoređivanja (relacijski operatori). (c) S. Šutalo i D. Grundler, 2009. 35

Aritmetički operatori Pseudo jezik Pascal C/C+ + Zbrajanje + + + Oduzimanje - -

Aritmetički operatori Pseudo jezik Pascal C/C+ + Zbrajanje + + + Oduzimanje - - - Množenje * * * Dijeljenje / / / Cjelobrojno dijeljenje DIV / Ostatak cjelobrojnoga dijeljenja MOD % Opis (c) S. Šutalo i D. Grundler, 2009. 36

Operatori dijeljenja n Operator dijeljenja (/) kao rezultat vraća vrijednost kvocijenta u obliku realnog

Operatori dijeljenja n Operator dijeljenja (/) kao rezultat vraća vrijednost kvocijenta u obliku realnog broja. n Operator DIV vraća cjelobrojni dio dijeljenja dva cijela broja. n Operator MOD vraća cjelobrojni ostatak dijeljenja dva cijela broja. x : = 5; y : = 2; a=2, 5; (c) S. Šutalo i D. Grundler, 2009. a : = x/y; b : = x DIV y; c : = x MOD y; b=2; c=1 37

Logički operatori Pseudo jezik Pascal C/C+ + I AND && Logički ILI OR ||

Logički operatori Pseudo jezik Pascal C/C+ + I AND && Logički ILI OR || Logički NE NE NOT ! Opis Logički I (c) S. Šutalo i D. Grundler, 2009. 38

Operatori uspoređivanja Pseudo jezik Pascal C/C+ + < <= <= <= > > >

Operatori uspoređivanja Pseudo jezik Pascal C/C+ + < <= <= <= > > > Veće ili jednako >= >= >= Jednako = = == Različito <> <> != Opis Manje ili jednako Veće (c) S. Šutalo i D. Grundler, 2009. 39

Redoslijed izvršavanja operatora Redoslijed izvršavanja Operatori 1. () 2. NE 3. * / DIV

Redoslijed izvršavanja operatora Redoslijed izvršavanja Operatori 1. () 2. NE 3. * / DIV MOD I 4. + - ILI 5. <, <=, >=, <>, = (c) S. Šutalo i D. Grundler, 2009. 40

Osnovne programske strukture n Osnovne programske strukture mogu se svrstati u tri skupine. To

Osnovne programske strukture n Osnovne programske strukture mogu se svrstati u tri skupine. To su: n pravocrtna programska strutura (slijed, niz), n struktura grananja, n struktura petlje. (c) S. Šutalo i D. Grundler, 2009. 41

Pravocrtna struktura (pseudo jezik) Opis Pseudo jezik Unos ulaz Ispis izlaz Pridruživanje : =

Pravocrtna struktura (pseudo jezik) Opis Pseudo jezik Unos ulaz Ispis izlaz Pridruživanje : = (c) S. Šutalo i D. Grundler, 2009. 42

Pravocrtna programska struktura n Kao primjer pravocrtne programske strukture može poslužiti zadatak: n Korisnik

Pravocrtna programska struktura n Kao primjer pravocrtne programske strukture može poslužiti zadatak: n Korisnik unosi dva broja, brojevi se zbrajaju pa se ispisuje dobiveni zbroj. n Program se odvija uvijek istim i predvidim slijedom naredbi bez obzira na unesene podatke. (c) S. Šutalo i D. Grundler, 2009. 43

Pravocrtna programska struktura n Samo u slučaju rješavanja najjednostavnijih zadataka, programska struktura je pravocrtna,

Pravocrtna programska struktura n Samo u slučaju rješavanja najjednostavnijih zadataka, programska struktura je pravocrtna, tj. program se uvijek izvršava istim slijedom naredbi.

Programska struktura grananja n Redoslijed izvršavanja naredbi često ovisi o ulaznim podacima ili međurezultatima

Programska struktura grananja n Redoslijed izvršavanja naredbi često ovisi o ulaznim podacima ili međurezultatima obrade. n Grananje je programska struktura koja omogućuje različit tijek programa, ovisno o rezultatu postavljenog uvjeta. (c) S. Šutalo i D. Grundler, 2009. 45

Naredbe pseudo jezika za grananje Opis Pseudo jezik ako je uvjet onda naredba 1

Naredbe pseudo jezika za grananje Opis Pseudo jezik ako je uvjet onda naredba 1 inače naredba 2; Grananje Blok naredbi { } n Dijelovi programa koji se uvjetno izvode, grupiraju se u skupine ili blokove naredbi. (c) S. Šutalo i D. Grundler, 2009. 46

Programska struktura grananja n Kao primjer programske strukture grananja može poslužiti zadatak: n Korisnik

Programska struktura grananja n Kao primjer programske strukture grananja može poslužiti zadatak: n Korisnik unosi dva broja, a zatim se određuje i ispisuje veći broj. (c) S. Šutalo i D. Grundler, 2009. 47

Dijagram tijeka grananja n Dijagram tijeka grananja za traženje i ispis većeg od dva

Dijagram tijeka grananja n Dijagram tijeka grananja za traženje i ispis većeg od dva broja.

Programska struktura petlje n Često je u programu potrebno ponoviti neku radnju više puta

Programska struktura petlje n Često je u programu potrebno ponoviti neku radnju više puta (iterirati). Takva se programska struktura naziva petlja. n Ponavljati se može: n unaprijed zadani broj puta, n sve dok je ispunjen zadani uvjet. (c) S. Šutalo i D. Grundler, 2009. 49

Naredbe pseudo jezika za petlju Opis Pseudo jezik Petlja s unaprijed poznatim brojem ponavljanja

Naredbe 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 uvjet se provjerava na početku petlje dok je uvjet činiti naredba; Petlja kod koje nije unaprijed poznat broj ponavljanja, a uvjet se provjerava na kraju petlje ponavljati naredba; dok je uvjet;

Programska struktura petlje n Kao primjer programske strukture petlje može poslužiti zadatak: n Korisnik

Programska struktura petlje n Kao primjer programske strukture petlje može poslužiti zadatak: n Korisnik treba unijeti 100 cijelih brojeva, a prije svakog unosa broja ispisuje se tekst "Unesi broj". (c) S. Šutalo i D. Grundler, 2009. 51

Dijagram tijeka petlje n Dijagram tijeka petlje za unos sto cijelih brojeva. 52

Dijagram tijeka petlje n Dijagram tijeka petlje za unos sto cijelih brojeva. 52