190 likes | 433 Views
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.
E N D
C++ Algoritam 2. Dio (c) S.Šutalo i D.Grundler, 2007.
Algoritam • Računalo zadatakmože riješitisamo 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. (c) S.Šutalo i D.Grundler, 2007.
Algoritam • Mnoge radnje u svakodnevnom životuizvršavamo prema unaprijed naučenom algoritmu (npr. slanje SMS poruke mobilnim telefonom). • Promjena poretka izvršavanja osnovnih radnji algoritma najčešće dovodi do neželjenih rezultata (algoritam se mora izvršiti točno prema uputstvu). (c) S.Šutalo i D.Grundler, 2007.
Elementi algoritma • Algoritam treba provjeriti sa što više ulaznih podataka za koje je poznata izlazna vrijednost. OBRADA (algoritam) IZLAZ (rezultat) ULAZ (ulazni podaci) (c) S.Šutalo i D.Grundler, 2007.
Algoritam • 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. • Autor algoritma redovito nastoji pronaći algoritam koje najbrže, najučinkovitije i najsigurnije dovodi do rezultata. • Zadatak je moguće riješiti pomoću računala ako se algoritam predoči naredbama odabranog programskog jezika (napiše program). (c) S.Šutalo i D.Grundler, 2007.
Dijagram tijeka • Algoritam se može prikazati grafički. • Grafički prikaz algoritma naziva se dijagram tijeka. • Takav je prikazkoristan jer pregledno prikazuje algoritam, omogućava analizu problema, lakšu provjeru i traženje boljih postupaka rješavanja zadatka. (c) S.Šutalo i D.Grundler, 2007.
Znakovi dijagrama tijeka POČETAK i ZAVRŠETAK JEDNA ILI VIŠE NAREDBI OBRADE ULAZ PODATAKA DA ? ODLUKA IZLAZ PODATAKA NE (c) S.Šutalo i D.Grundler, 2007.
Osnovne algoritamske strukture • Osnovne algoritamske strukture mogu se svrstati u tri skupine. To su: • slijedni algoritam (slijed, niz), • grananje, • petlja. (c) S.Šutalo i D.Grundler, 2007.
Slijedni algoritam • Samo u slučaju rješavanja najjednostavnijih zadataka,algoritam je pravocrtan, tj. uvijek se izvršava u istom slijedu naredbi. • Takav ćemo algoritam nazivati slijedni algoritam (slijed, niz). (c) S.Šutalo i D.Grundler, 2007.
Slijedni algoritam • Kao primjer slijednog algoritma može poslužiti zadatak 1. • Korisnik unosi dva broja, brojevi se zbrajaju pa se ispisuje dobiveni zbroj. • Treba uočiti da se bez obzira na ulazne brojevenaredbeuvijek izvršavaju istim redoslijedom. (c) S.Šutalo i D.Grundler, 2007.
Dijagram tijeka slijeda • Dijagram tijeka slijednog algoritma za zbrajanje dva broja. (c) S.Šutalo i D.Grundler, 2007.
Grananje • Često je algoritam ovisan o međurezultatima ili ulaznim podacima pa se redoslijed izvršavanja naredbi mijenja ovisno o tim podacima. • Takva se struktura algoritma naziva grananje jer se ovisno o stanju podataka odvija jedan od mogućih dijelova (grana) algoritma. (c) S.Šutalo i D.Grundler, 2007.
Grananje • Kao primjer grananja može poslužiti zadatak 2. • Korisnik unosi cijeli broj, računa se apsolutna vrijednost tog broja pa se ispisuje rezultat. • Treba uočiti da redoslijed izvršavanja naredbi ovisi o međurezultatu. (c) S.Šutalo i D.Grundler, 2007.
Dijagram tijeka grananja • Dijagram tijeka grananja za računanje apsolutne vrijednosti broja. (c) S.Šutalo i D.Grundler, 2007.
Petlja • Često se dijelovi algoritma trebaju ponoviti više puta (iterirati). Takva se struktura algoritma naziva algoritamska petlja. • Ponavljati se može: • unaprijed zadani broj puta, • sve dok se ne ispuni određeni uvjet. (c) S.Šutalo i D.Grundler, 2007.
Petlja • Kao primjer algoritamske petlje može poslužiti zadatak 3. • Potrebno je ispisati prvih 100 prirodnih brojeva. • Treba uočiti da se dio naredbiizvršava opetovano sto puta. (c) S.Šutalo i D.Grundler, 2007.
Dijagram tijeka petlje • Dijagram tijeka petlje za ispis prvih sto prirodnih brojeva. (c) S.Šutalo i D.Grundler, 2007.