C++
-
Upload
kaleigh-logan -
Category
Documents
-
view
52 -
download
0
description
Transcript of C++
(c) S.Šutalo i D.Grundler, 2007. 1
C++C++AlgoritamAlgoritam
2. Dio2. Dio
(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.
(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).
(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..
(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).
(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.
(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
?
(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.
(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).
(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..
(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.
(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..
(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..
(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.
(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.
(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.
(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.