Top Banner
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
5

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

Mar 05, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

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

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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