Programske strukture

Sitio: CARNET - Arhiva 2021 Loomen
Curso: Algoritmi i programiranje 2. razred
Libro: Programske strukture
Imprimido por: Invitado
Día: Saturday, 21 de March de 2026, 13:27

1. Algoritmi

Algoritam je procedura koja do posljednjih detalja opisuje aktivnosti i njihov redoslijed, potreban da se obradom ulaznih podataka, u konačnom broju koraka dođe do izlaznih podataka, odnosno rješenja.

Algoritam možemo zapisati:

  1. pseudojezikom 
  2. dijagramom tijeka

Pseudojezik je tobožnji program  (grč. pseudos – laž) koji se sastoji od kratkih izraza na govornom jeziku koji opisuju i ukratko objašnjavaju pojedine zadatke algoritma.

Dijagram tijeka je grafički prikaz algoritma. Sastoji od nekoliko jednostavnih geometrijskih likova spojenih usmjerenim crtama. Usmjerene crte pokazuju tijek rješavanja zadatka pa odatle i naziv dijagrama.
Prednosti dijagrama tijeka:

  1. pregledno prikazuje algoritam
  2. omogućava lakšu analizu i provjeru predloženog rješenja
  3. omogućuje pronalaženje boljih postupaka rješavanja zadatka - optimizaciju


Za pseudojezik možemo koristiti bilo koji tekstualni editor, dok za je za dijagram tijeka zgodno koristiti aplikacije:

  1. Raptor
  2. Flowgorithm 
Cilj algoritma je cjelokupni zadatak svesti na niz jednostavnih, manjih radnji, te na temelju ulaznih podataka dobiti rezultat.
koraci u izvođenju algoritma
Algoritam treba imati slijedeća svojstva:
  1. Konačnost – mora uvijek završiti nakon konačnog broja koraka
  2. Definiranost – svaki korak mora biti precizno definiran – akcije koje treba poduzeti moraju biti jednoznačno (nedvosmisleno) definirane
  3. Ulaz – može ali i ne mora imati ulazne veličine koje su dane inicijalno prije početka algoritma
  4. Izlaz – ima jednu ili više izlaznih veličina koje su u specificiranom odnosu sa ulaznim veličinama
  5. Efikasnost - sve operacije koje se obavljaju u algoritmu moraju biti jednostavne tako da se mogu obaviti u točno i u konačnom vremenu
Naš cilj pri izradi je pronaći algoritam koji najbrže, najučinkovitije i najsigurnije dovodi do rezultata.




2. Operatori, funkcije, naredbe

Programska struktura je ustrojstvo programa, odnosno način i redoslijed rješavanja pojedinih manjih radnji da bi se došlo do konačnog rješenja zadatka.

Da bismo od ulaznih podataka došli do izlaznih,  podatke je potrebno pohraniti u memoriji. Mjesto u memoriji  rezervirano za pohranu podatka naziva se varijabla. Varijablama dajemo sugestivna imena. 

Obrada podataka najčešće se svodi ma matematičke logičke operacije i funkcije nad njima.

Operatori

Operatori

Definirane funkcije

Definirane funkcije

Prioritet izvršavanja 

Prioriteti

Osnovne naredbe u programskim jezicimaOsnovne naredbe

*sve tablice preuzete su sa sjedišta NCVOO


3. Slijedna struktura

Kod slijedne strukture naredbe slijede jedna iza druge neovisno o vrijednostima ulaznih ili izračunatih veličina. To je najjednostavnija programska struktura. 

1. primjer: Algoritam i programski kod za izračun opsega i površine pravokutnika.

Zapis pomoću pseudojezika:

                                                                                           ulaz (a,b)

                                                                                           O=2*(a+b)

                                                                                           P=a*b

                                                                                           izlaz (O,P)

Zapis pomoću dijagrama tijeka:

pravokutnik

Zapis pomoću programskod koda u C++-u

pravokutnik.cpp

2. primjer: Algoritam zamjene vrijednosti dvije varijable.

Zorni primjer iz svakodnevnog života nam je zamjena tekućina koje smo nasuli u krive čaše. Jasno je da nam je potrebna dodatna čaša. Kod rada s varijablama umjesto dodatne čaše koristimo pomoćnu varijablu:

zamjena varijabli s pomocnom

zamjenaPomocnaCPP

3. primjer: Algoritam zamjene vrijednosti bez korištenja pomoćne varijable.

ZamjenaBezPomocne

Zamjena Bez POmocna CPP

4. Uvjetno grananje

Redoslijed izvršavanja naredbi često ovisi o ulaznim podacima ili međurezultatima obrade.

Uvjetno grananje ili razgranata algoritamska struktura je programska struktura koja omogućuje različit tijek programa, ovisno o rezultatu postavljenog uvjeta.

Programska struktura grananja može se ostvariti:

  1. jednostrukim uvjetnim grananjem
  2. dvostrukim uvjetnim grananjem
  3. višestrukim uvjetnim grananjem

Struktura grananja uvijek se zasniva na testiranju određenih uvjeta. Za testiranje uvjeta koristimo relacijske i/ili logičke operatore.
1. primjer: Algoritam koji provjerava je li broj paran ili neparan.

parnost neparnost

2. primjer: Algoritam koji provjerava je li broj paran ili neparan, ili je 0 koja nije ni parna ni neparna.

Paran neparan 0

5. Programske petlje

Često je u programu potrebno ponoviti neku radnju više puta (iterirati). Takva se programska struktura naziva programska petlja

Razlikujemo:

  1. bezuvjetne -  ponavljaju se unaprijed zadani broj puta
  2. uvjetne – ponavljaju sve dok je ispunjen uvjet

1. primjer: Sumirati prirodne brojeve do unesenog broja n .

      

Problem možemo riješiti na više načina npr. pomoću programske petlje for:

for

       

Pomoću programske petlje while


while do n

  

  te pomoću programske petlje do while:


do_while_do_n