5
1 ALGORITMI (2) Pojam algoritma Dijagram toka (Blok dijagram) Osnovne strukture algoritma Primjeri mr.sc.M.Čičak Opis zadatka i postupka rješavanja ŠTO? NAD ČIM? - opis zadatka, polaznih podataka, željenih rezultata i njihovih međusobnih zakonitosti, relacija KAKO? - opis postupka rješavanja - redoslijed primjene zakonitosti, relacija na podacima da bi se dobio željeni rezultat Simboli koji se najćešće upotrebljavaju za dijagram toka: OSNOVNE ALGORITAMSKE STRUKTURE (POSTUPCI) LINIJSKA slijed, sekvenca RAZGRANATA g rananje, selekcija CIKLIČNA - ponavljanje, iteracija (petlja) Linijska struktura - slijed, sekvenca naredbe slijede jedna iza druge A 1 A 2 A 3 A n sekvenca predstavlja niz naredbi pridruživanja (dodjeljivanja) (:=) Varijabli pridružujemo (:=)vrijednost a:=b n:=n+1 RAZGRANATA struktura - grananje, selekcija Omogućuje različiti tok odvijanja programa ovisno o rezultatu postavljenog uvjeta. uvjeti logički

Opis zadatka i postupka rješavanja Dijagram toka …mcicak/PRUPIP/2T.pdf1 ALGORITMI (2) Pojam algoritma Dijagram toka (Blok dijagram) Osnovne strukture algoritma Primjeri mr.sc.M.Čičak

  • Upload
    others

  • View
    34

  • Download
    0

Embed Size (px)

Citation preview

1

ALGORITMI (2) Pojam algoritma

Dijagram toka (Blok dijagram)

Osnovne strukture algoritma

Primjeri

mr.sc.M.Čičak

Opis zadatka i postupka rješavanja

ŠTO? NAD ČIM?- opis zadatka, polaznih podataka, željenih rezultata i

njihovih međusobnih zakonitosti, relacija

KAKO?- opis postupka rješavanja

- redoslijed primjene zakonitosti, relacija na podacima da bi se dobio željeni rezultat

Simboli koji se najćešće upotrebljavaju za dijagram toka:

OSNOVNE ALGORITAMSKE STRUKTURE (POSTUPCI)

LINIJSKA – slijed, sekvenca

RAZGRANATA – grananje, selekcija

CIKLIČNA - ponavljanje, iteracija

(petlja)

Linijska struktura - slijed, sekvenca

naredbe slijede jedna iza druge

A1

A2

A3

An

• sekvenca predstavlja niz naredbi pridruživanja (dodjeljivanja) (:=)

Varijabli pridružujemo (:=)vrijednosta:=bn:=n+1

RAZGRANATA struktura - grananje, selekcija

Omogućuje različiti tok odvijanja programa ovisno o rezultatu

postavljenog uvjeta.

uvjeti logički

2

Naredba switch-case (C++)

omogućava višestruko grananje koje

ovisi o vrijednosti postavljenog

uvjeta.

uvjet je cjelobrojni izraz

ili cjelobrojna varijabla

O:= ?

12345

Algoritam za odluku o oblačenju ovisno o vremenskim uvjetima

Dijagram toka Pseudo kod

Kod PYTHON

Nacrtati dijagram toka algoritama kojim se određuje veći od dva zadata broja korištenjem formule

bab

baaba

,

,},max{

a>b

max:=a max:=b

da ne

max<b

max:=b

da

max:=a

Primjer

pocpoc

krajkraj

a,b

a,b

max

Pronaći maksimum od tri zadana broja a, b i c

}},,max{max{},,max{ cbacba

poc

a>bda ne

a>c b>c

max:=a max:=c max:=b max:=c

da nene

kraj

max

a,b,c

Primjer

Kreirati dijagram toka koji izračunava zbroj prvih - n brojeva

poč.

n

Z:=0

B:=0

Z := Z+B

B := B+1

B=nNE

Z

kraj

Ciklična struktura - ponavljanje (petlja)

uvjet

tijelo petlje

da

netijelo petlje

uvjetne

da

Za svaki i:=k1 do k2 s korakom k3

tijelo petlje

Sve dok-činiti

While do

Ponavljaj-sve dok

Repeat - until

brojač petlje

broj prolaza 13

12

k

kkn

definiranje uvjeta

Omogćuje ponavljanje algoritamskih koraka više puta.

i:=k1,k2,k3

forDO

3

Paralelne

petlje

petlje koje

se sijeku

Pravila Dozvoljene su paralelne (ugnježdene) petlje.

Nisu dozvoljene petlje koje se sjeku!

- Zbroj prvih n brojeva

poč.

n

Z:=0

B:=0

Z := Z+B

B := B+1

B=nNE

Z

kraj

Z := 0

Z := Z + i

i := 1, n

kraj

start

n

Z

- grananje - petlja, ponavljanje

Početak

Kraj

Faktorijel

N

I:=1,N

Faktorijel := Faktorijel * I

Faktorijel :=1

Početna vrijednost

Kreirati dijagram toka koji učitava cijeli broj N i izračunava N!

- sve vrste petlji (uočiti razliku)

Primjer

Početak

Kraj

Faktorijel

N

N:=N-1

Faktorijel := Faktorijel * N

Faktorijel := 1

N>0

ne

PETLJA uvjet na početku

Početak

Kraj

Faktorijel

N

N:=N-1

Faktorijel := Faktorijel * N

Faktorijel := 1

N>0

ne

Početak

Faktorijel

N

N:=N -1

Faktorijel := Faktorijel * N

Faktorijel := 1

N>0

Kraj

da

PETLJA uvjet na početku uvjet na kraju

Razraditi logiku algoritma (pomoću dijagrama toka) - kvadratna jednadžba

A B C D Izlaz

1 -4 5 -4 2+1*i

2-1*i

Nacrtati dijagram toka za

izračunavanje rješenja kvadratne

jednadžbe gdje su ulazni objekti

koeficijenti kvadratne jednadžbe

A,B,C

PRONAĐI I

ISPRAVI GREŠKE

Primjer

4

X1:=RX2:=R

1. POČETAK 2. Pročitaj / Učitaj vrijednost n. 3. Podijeli n sa 2 i zapamti ostatak u ost. 4. Ako je ost 0 idi na stavku 7. 5. Ispiši „n je neparan broj“. 6. Idi na stavku 8. 7. Ispiši „n je paran broj“. 8. KRAJ

Napisati i nacrtati algoritam koji provjerava da li je učitani broj paran broj ? (tekstualno i grafički )

Primjer:

Nacrtati dijagram toka

Napisati i nacrtati algoritam koji provjerava da li je učitani broj paran broj ? (tekstualno i grafički )

Primjer:

?

Razraditi logiku algoritma (pomoću dijagrama toka)

Kotao ima radnu temperaturu u intervalu [50°C- 80°C]. Napisati algoritam koji provjerava da li je s tipkovnice zadana vrijednost temperature kotla u dopuštenomintervalu i ispisuje odgovarajuću poruku.

#include <stdio.h>#define donja 50.0#define gornja 80.0int main(){float t;printf("\n Unesite temperaturu kotla: ");scanf("%f",&t);if (t < donja) {printf("Temperatura je pala ispod dopustene!\n");} else if (t > gornja) {printf("Temperatura je porasla iznad dopustene!\n");} else {printf("Temperatura kotla OK\n");}return 0;}

P

Unos

donja, gornja,t

K

t<donja

t>gornja

Temp je

ispod dopuštene

da

Temp je

Porasla iznaddopuštene

Temp je

O.K.

da

Primjer

start

Y := 1

n=0

Y := Y * X

n := n - 1

kraj

ne

da

X, n

Y

?

Nacrtati dijagram toka koji

izračunava funkciju y = xn

Primjer

start

Y := 1

n=0

Y := Y * X

i := 1,n

kraj

da

X, n

Y

Kreirati algoritam za sljedeći problem:

ako je

x > 3 => y = x2 + 5

x = 3 => y = 1

x < 3 => y = 1 / (x2 + 5)

Primjer

5

ne

da

x=3 Y := 1

start

Y := x*x+5

Y := 1/(x^2+5)

x>3

kraj

da

ne

x

Y

Primjer - algoritam - brojenje znamenki

Nacrtaj dijagram toka za brojenje znamenki

unesenog broja (npr. za uneseno 324 daje 3)

br n cijeli

324 0 324

1 32.4

2 3.24

3 0.324

Kreirati dijagram toka za brojenje znamenki

unesenog broja (npr. za uneseno 324 daje 3)

Ubr n cijeli

324 0 324

1 32.4

2 3.24

3 0.324

Primjer - algoritam - brojenje znamenki

Studentska rješenja

Početak

n

i := 1

K: =1

C:= n / ki := i + 1

k := k *10

i - 1

c>0da

Kraj

Početak

n

B:=1

Z:=0

C:= InI - BZ:=Z+1

B:=B*10

Z

C< 0ne

Kraj

Kreirati algoritam za igru

pogađanja gdje će

računalo odrediti neki broj

između 0 i 100, recimo 53,

a zatim korisnik pokušava

pogodit zamišljeni broj i

računalo mu odgovara

npr. kao što je prikazano u

donjoj tablici:

Korisnik Računalo

40 Broj je veći

90 Broj je manji

50 Broj je veći

53 Pogodak, broj

pokušaja: 4

Primjer