Šta je algoritam i kakav je dobar algoritam
Algoritam je niz jasnih koraka, poređanih određenim redom, koji vodi do rešenja. Izvršava ga čovek ili računar, a važno je da izvršilac razume svaki korak. Dobar algoritam ima precizne korake: „200 ml mleka“ svako izvrši isto, a „malo“ i „neko vreme“ svako shvata drugačije. Redosled je važan, kao kod čarapa i cipela. Algoritam mora i da se završi: uputstvo koje se uvek vraća na isti korak traje beskonačno. Isti zadatak često može da se reši različitim algoritmima, pa se oni porede po tome koji je kraći ili brži; reč u rečniku poređanom po azbuci brže se nađe otvaranjem po sredini nego čitanjem reč po reč. Kada se algoritam zapiše u programskom jeziku ili složi od blokova u nekom okruženju, nastaje program koji računar izvršava.
Ulaz, obrada i izlaz; pseudokod i dijagram toka
Ulaz je ono od čega algoritam polazi, obrada je ono što radi sa podacima, a izlaz je rezultat. Kod algoritma za cenu svezaka ulaz su cena i broj svezaka, obrada je množenje, a izlaz ukupan iznos. Algoritam može da se zapiše običnim jezikom, pseudokodom ili dijagramom toka. Pseudokod koristi kratke naredbe rečima, kao unesi, postavi, ispiši i ako … onda … inače; namenjen je ljudima, pa ga računar ne izvršava direktno. U dijagramu toka elipsa označava početak i kraj, pravougaonik običan korak, a romb odluku, pitanje sa odgovorima da i ne. Strelice pokazuju koji korak dolazi posle kog. Kod odluke se uvek izvršava tačno jedna grana: ako je uneti broj 10, a uslov glasi „veći od 10“, izvršava se deo posle inače.
Algoritmi za zbir, prosek, minimum i maksimum
Za zbir spiska brojeva zbir se na početku postavi na 0, pa se svaki broj doda: za 3, 5, 2, 5 zbir raste 3, 8, 10, 15. Za broj elemenata brojač se u svakom koraku poveća za 1. Prosek je zbir podeljen brojem elemenata, pa su potrebne obe vrednosti: temperature 12, 15, 9 i 14 daju 50 : 4 = 12,5. Za najveći broj (maksimum) prvi broj se zapamti, a zatim se svaki sledeći poredi sa zapamćenim i zamenjuje ga samo ako je veći; jednak broj ne menja vrednost. Za najmanji broj (minimum) postupak je isti, samo se traži manji broj. Početna vrednost minimuma ne sme da bude 0, jer bi algoritam mogao da ispiše broj kojeg nema u spisku. Euklidov algoritam ponavljanjem deljenja s ostatkom ili oduzimanja daje najveći zajednički delilac (NZD) dva broja.