nav_dugme codeBlog codeBlog
  • početna
  • Učionica
  • Saveti
  • Zanimljivosti
  • Kontakt

Algoritmi - uopšteno

Viber
zoom_plus zoom_minus

Uvod

Algoritam je precizno definisan postupak (plan) za rešavanje određenog problema na računaru pa, shodno tome, možemo reći da program predstavlja realizaciju (ostvarenje) algoritma.

Da bi se određeni postupak za rešavanje problema zaista mogao nazvati algoritmom, mora zadovoljiti sledeće kriterijume:

1. Algoritam mora biti konačan (mora se sastojati iz konacnog broja koraka).

Smatramo da je ovaj korak jasan sam po sebi, ali ćemo se kasnije u tekstu ovime ipak pozabaviti detaljinje.

2. Svaki korak algoritma mora biti ostvariv (na računaru) i precizno definisan.

Postupci ili pojedinacni koraci koji samo deluju "lepo" i "zanimljivo", ali nisu zapravo ostvarivi, ne predstavljaju algoritam, ili deo algoritma.

Pojedinacni koraci u algoritmima moraju (bar približno) odgovarati instrukcijama programskog jezika koji se koriste za realizaciju algoritma.

3. Algoritam mora biti efikasan .... ili bi bar trebalo da bude (što efikasniji).

Napisali smo u prethodnom članku o osnovama programiranja (Šta je zapravo programiranje - članak), da računari raspolažu memorijom i izvršavaju instrukcije izrazito velikom brzinom. Istina je da su memorijski kapacitet i brzina izvršavanja instrukcija današnjih računara znatni (čak i onih skromnijih), mnogo veći nego ranije i da većina jednostavnijih programa funkcioniše lagodno u okviru ovih kapaciteta. Ali, kada su u pitanju komplikovaniji programi, priča je ipak drugacija! Komplikovaniji programi i dalje zahtevaju veliku pažnju pri korišcenju resursa i ovo je nešto o cemu programeri itekako moraju voditi računa (i nešto o čemu će programeri još dugo morati da vode računa)!

Kao ilustraciju svega navedenog, možete (kasnije) pročitati članak o Binarnom Stablu Pretrage u Sekciji Učionica na našem sajtu.

4. Algoritam može imati jedan ili više ulaznih podataka (ne mora obavezno, ili bar, ne moramo mi kao korisnici direktno unosititi te podatke), ali mora imati bar jedan izlazni podatak.

Sasvim je moguce napisati program koji će izračunati zbir dva broja, pri čemu nam neće nikako prikazati rezultat, ali, pretpostavljamo da je jasno zašto to nećemo raditi.

Takođe, osvrnimo se na to da program ne mora prikazivati rezultat svakog (pomoćnog) izračunavanja, niti mora prikazati rezultat direktno na ekranu (vec ga može, recimo, smestiti u neku datoteku), ali mora ga smestiti negde i nekako.

U početnim fazama učenja programerskih veština, polaznici često mešaju pojam algoritma sa dijagramima toka.

Gradivo iz ove sekcije detaljno se izučava u I godini školovanja, a o tome šta su dijagrami toka, možete procitati u članku o dijagramima toka (Dijagrami toka - članak).

Autor članka Nikola Vukićević Za web portal www.codeblog.rs
Napomena: Tekstovi, slike, web aplikacije i svi ostali sadržaji na sajtu www.codeblog.rs (osim u slučajevima gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta www.codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog pismenog odobrenja autora.
©2021. Sva prava zadržana.
Viber
početna Početna > Članci > Algoritmi - uopšteno

Info & povezani članci

Info

trejler_sat Datum objave: 23.11.2019.

trejler_dokument Jezici:

trejler_teg_zeleni Težina: 3/10

Povezani članci

Šta je zapravo programiranje? Dijagrami toka - osnove Zašto baš binarni brojevi? Pozicioni brojevni sistemi IT termini Optimizacija algoritama Klase složenosti algoritama - (O notacija) Napredna Google pretraga Kako napraviti dobru lozinku
Preuzmite PDF verziju
Code never lies; comments sometimes do.
Ron Jeffries
codeBlog codeBlog
Projekat posvećen popularizaciji kulture i veštine programiranja među mladim programerima.
Napomena: Tekstovi i slike na sajtu www.codeblog.rs (osim u slučajevima, gde je drugačije navedeno) predstavljaju intelektualnu svojinu autora sajta www.codeblog.rs i zabranjeno je njihovo korišćenje na drugim sajtovima i štampanim medijima, kao i bilo kakvo drugo korišćenje u komercijalne svrhe, bez eksplicitnog odobrenja autora.
© 2021. Sva prava zadržana.
Facebook - logo
Instagram - logo
LinkedIn - logo
Twitter - logo
E-mail
Naslovna
   •
Uslovi korišćenja
   •
Obaveštenja
   •
FAQ
   •
Kontakt