C++

17
(c) S.Šutalo i D.Grundler, 2007. 1 C++ C++ Algoritam Algoritam 2. Dio 2. Dio

description

C++. Algoritam 2. Dio. Algoritam. Računalo zadatak može riješiti samo ako dobije upute kako to učiniti. Takve se upute nazivaju algoritmom . Algoritam je popis radnji (operacija, uputstava) koje treba izvršiti u navedenom redoslijedu da bi se dobilo rješenje postavljenog zadatka. - PowerPoint PPT Presentation

Transcript of C++

Page 1: C++

(c) S.Šutalo i D.Grundler, 2007. 1

C++C++AlgoritamAlgoritam

2. Dio2. Dio

Page 2: C++

(c) S.Šutalo i D.Grundler, 2007. 2

AlgoritamAlgoritam

Računalo zadatakRačunalo zadatak može riješitimože riješiti

samo samo ako dobije uputeako dobije upute kako to kako to

učiniti.učiniti.

Takve se upute nazivaju Takve se upute nazivaju algoritmomalgoritmom..

AlgoritamAlgoritam je je popis radnjipopis radnji (operacija, uputstava) (operacija, uputstava)

koje treba koje treba izvršiti u navedenom redoslijeduizvršiti u navedenom redoslijedu da da

bi se dobilo rješenje postavljenog zadatka.bi se dobilo rješenje postavljenog zadatka.

Page 3: C++

(c) S.Šutalo i D.Grundler, 2007. 3

AlgoritamAlgoritam

Mnoge radnje u svakodnevnom životuMnoge radnje u svakodnevnom životu

izvršavamo prema unaprijed naučenom izvršavamo prema unaprijed naučenom

algoritmualgoritmu (npr. slanje SMS poruke mobilnim (npr. slanje SMS poruke mobilnim

telefonom). telefonom).

Promjena poretkaPromjena poretka izvršavanja izvršavanja osnovnih radnjiosnovnih radnji

algoritma najčešće algoritma najčešće dovodi do neželjenih dovodi do neželjenih

rezultatarezultata (algoritam se mora izvršiti točno (algoritam se mora izvršiti točno

prema uputstvu).prema uputstvu).

Page 4: C++

(c) S.Šutalo i D.Grundler, 2007. 4

Elementi algoritmaElementi algoritma

ULAZ(ulazni podaci)

OBRADA(algoritam)

IZLAZ(rezultat)

Algoritam treba Algoritam treba provjeriti sa što više ulaznih provjeriti sa što više ulaznih

podataka za koje je poznata izlazna vrijednostpodataka za koje je poznata izlazna vrijednost..

Page 5: C++

(c) S.Šutalo i D.Grundler, 2007. 5

AlgoritamAlgoritam

Većina zadataka se možeVećina zadataka se može riješiti na više različitih riješiti na više različitih načinanačina pa je za njihovo rješenje pa je za njihovo rješenje moguće napisati moguće napisati više različitih algoritama.više različitih algoritama.

Autor algoritma redovito nastoji pronaći algoritam Autor algoritma redovito nastoji pronaći algoritam koje koje najbrže, najučinkovitije i najsigurnijenajbrže, najučinkovitije i najsigurnije dovodi dovodi do rezultata. do rezultata.

Zadatak je moguće riješiti pomoću Zadatak je moguće riješiti pomoću računalaračunala ako ako se se algoritam predoči naredbama odabranog algoritam predoči naredbama odabranog programskog jezikaprogramskog jezika (napiše program). (napiše program).

Page 6: C++

(c) S.Šutalo i D.Grundler, 2007. 6

Dijagram tijekaDijagram tijeka

Algoritam se može prikazati grafički.Algoritam se može prikazati grafički.

Grafički prikaz algoritmaGrafički prikaz algoritma naziva se naziva se dijagram dijagram

tijeka.tijeka.

Takav je Takav je prikazprikaz koristan koristan jer jer pregledno prikazuje pregledno prikazuje

algoritamalgoritam, omogućava , omogućava analizu problemaanalizu problema, lakšu , lakšu

provjeruprovjeru i traženje boljih postupaka rješavanja i traženje boljih postupaka rješavanja

zadatka. zadatka.

Page 7: C++

(c) S.Šutalo i D.Grundler, 2007. 7

Znakovi dijagrama tijekaZnakovi dijagrama tijeka

ULAZ PODATAKA

IZLAZ PODATAKA

POČETAK i ZAVRŠETAK

ODLUKA

JEDNA ILI VIŠE

NAREDBI OBRADE

DA

NE

?

Page 8: C++

(c) S.Šutalo i D.Grundler, 2007. 8

Osnovne algoritamske struktureOsnovne algoritamske strukture

Osnovne algoritamske struktureOsnovne algoritamske strukture mogu se mogu se

svrstati u tri skupine. To su:svrstati u tri skupine. To su:

slijedni algoritam (slijed, niz),slijedni algoritam (slijed, niz),

grananje,grananje,

petlja.petlja.

Page 9: C++

(c) S.Šutalo i D.Grundler, 2007. 9

Slijedni algoritamSlijedni algoritam

Samo u slučaju rješavanja Samo u slučaju rješavanja najjednostavnijih najjednostavnijih

zadataka,zadataka, algoritamalgoritam je je pravocrtan, tj. uvijek se pravocrtan, tj. uvijek se

izvršava u istom slijedu naredbiizvršava u istom slijedu naredbi..

Takav ćemo algoritam nazivati Takav ćemo algoritam nazivati slijedni algoritam slijedni algoritam

(slijed, niz).(slijed, niz).

Page 10: C++

(c) S.Šutalo i D.Grundler, 2007. 10

Slijedni algoritamSlijedni algoritam

Kao Kao primjer slijednog algoritmaprimjer slijednog algoritma može poslužiti može poslužiti

zadatak 1.zadatak 1.

Korisnik Korisnik unosi dva brojaunosi dva broja, ,

brojevi se brojevi se zbrajajuzbrajaju pa se pa se

ispisuje dobiveni zbroj.ispisuje dobiveni zbroj.

Treba uočiti da se Treba uočiti da se bez obzira na ulazne brojevebez obzira na ulazne brojeve

naredbenaredbe uvijek izvršavaju istim redoslijedomuvijek izvršavaju istim redoslijedom..

Page 11: C++

(c) S.Šutalo i D.Grundler, 2007. 11

Dijagram tijeka slijedaDijagram tijeka slijeda

Dijagram tijeka Dijagram tijeka

slijednog algoritmaslijednog algoritma za za

zbrajanje dva broja.zbrajanje dva broja.

Page 12: C++

(c) S.Šutalo i D.Grundler, 2007. 12

GrananjeGrananje

Često je Često je algoritam ovisan o međurezultatima ili algoritam ovisan o međurezultatima ili

ulaznim podacimaulaznim podacima pa se pa se redoslijedredoslijed izvršavanja izvršavanja

naredbinaredbi mijenja ovisno o tim podacima. mijenja ovisno o tim podacima.

TakvaTakva se se strukturastruktura algoritma naziva algoritma naziva grananje grananje jer jer

se se ovisno o stanju podatakaovisno o stanju podataka odvija odvija jedan od jedan od

mogućih dijelova (grana) algoritmamogućih dijelova (grana) algoritma..

Page 13: C++

(c) S.Šutalo i D.Grundler, 2007. 13

GrananjeGrananje

Kao Kao primjer grananjaprimjer grananja može poslužiti zadatak 2. može poslužiti zadatak 2.

Korisnik Korisnik unosi cijeli brojunosi cijeli broj, ,

računa se računa se apsolutna apsolutna

vrijednostvrijednost tog tog broja broja pa pa

se se ispisuje rezultat.ispisuje rezultat.

Treba uočiti da Treba uočiti da redoslijedredoslijed izvršavanja naredbi izvršavanja naredbi ovisi ovisi

o međurezultatuo međurezultatu..

Page 14: C++

(c) S.Šutalo i D.Grundler, 2007. 14

Dijagram tijeka grananjaDijagram tijeka grananja

Dijagram tijeka Dijagram tijeka

grananjagrananja za za

računanje apsolutne računanje apsolutne

vrijednosti broja.vrijednosti broja.

Page 15: C++

(c) S.Šutalo i D.Grundler, 2007. 15

PetljaPetlja

Često se Često se dijelovi algoritma trebaju ponoviti više dijelovi algoritma trebaju ponoviti više

putaputa (iterirati). (iterirati). Takva se struktura algoritma Takva se struktura algoritma

naziva algoritamskanaziva algoritamska petlja petlja..

Ponavljati se može: Ponavljati se može:

unaprijed unaprijed zadani broj puta,zadani broj puta,

sve dok se ne ispuni određeni uvjet.sve dok se ne ispuni određeni uvjet.

Page 16: C++

(c) S.Šutalo i D.Grundler, 2007. 16

PetljaPetlja

Kao primjer algoritamskeKao primjer algoritamske petlje petlje može poslužiti zadatak može poslužiti zadatak

3.3.

Potrebno je Potrebno je ispisati ispisati

prvih 100 prirodnih prvih 100 prirodnih

brojeva.brojeva.

Treba uočiti da se Treba uočiti da se dio naredbidio naredbi izvršava opetovano sto izvršava opetovano sto

puta.puta.

Page 17: C++

(c) S.Šutalo i D.Grundler, 2007. 17

Dijagram tijeka petljeDijagram tijeka petlje

Dijagram tijeka petljeDijagram tijeka petlje

za ispis prvih sto za ispis prvih sto

prirodnih brojeva.prirodnih brojeva.