Sam pojam je usko vezan za rešavanje zadataka pomoću računara. Osnovne karakteristike jednog algoritma su: polazne ili ulazne veličine, postavka zadatka, način rešavanja zadatka i izlazne veličine ili rezultat. Svaki algoritam mora da ima ulazne veličine na osnovu kojih će da izračunava traženi zadatak. Postavka zadatka u grubim crtama određuje kako je najlakše da se zadatak reši. Način rešavanja zadatka određuje koliko brzo će algoritam doći do rešenja, jer nije svako rešenje jednako efikasno. Izlazne veličine su rezultat konačnog broja koraka koje je algoritam izveo u toku rada. Izlazne veličine ne moraju biti one koje se očekuju.
Algoritmi se najčešće predstavljaju kao skup određenih simbola koji čine algoritamsku šemu. Simboli koji se koriste su:
Karakteristike algoritamske šeme bi morale biti takve da omoguće lako otkrivanje grešaka u strukturi algoritma, kraći i jasniji zapis algoritma, preglednu vezu između blokova i nezavisnost od daljeg korišćenja.
Šeme se mogu podeliti u tri kategorije:
Linijske algoritamske šeme
Linijske šeme su one kod kojih se svaki algoritamski korak izvršava najviše jednom u toku izvršavanja algoritma. Mogu biti proste ili razgranate. Proste su one kod kojih se svaki korak izvršava tačno jednom u toku jednog izvršavanja algoritma. Sastoji se od algoritamskih koraka ulaza, obrade i izlaza. Razgranate algoritamske šeme karakteriše da se algoritamski korak izvršava najviše jednom (dakle jednom ili nijednom) i obavezno sadrži bar jedan uslovni algoritamski korak. U razgranatoj šemi postoje najmanje dva toka po kojima je moguće da se odvija algoritam. Svaki od tih tokova je u stvari prosta linijska šema. Tako da će se, prilikom izvršavanja algoritma, izvršiti tačno jedna grana šeme.
Ciklične algoritamske šeme
Ciklične šeme su one kod kojih se jedan ili više algoritamskih koraka može izvršiti najmanje dva puta u toku jednog izvršavanja algoritma. Na neki način ciklične šeme bismo mogli prikazati i kao linijske šeme, gde bismo blok koji bi trebalo da se izvrši više puta pisali jedan za drugim dokle god je potrebno. Jasno je da bi, ako bismo imali 100 ponavljanja (iteracija), bilo potrebno ispisati 100 blokova obrade, što bi uveliko otežalo preglednost same šeme.
Slika 1. Primer ciklične šeme
Na slici vidimo da se u slučaju unosa broja b = 0 algoritam vraća na ulaz, da bi se ponovio unos ispravnog podatka.
Ciklične šeme se dalje dele na konstantne i promenljive.
Kod konstantnih se zakon obrade ne menja unutar ciklusa. Primer bi bio algoritam množenja dva prirodna broja m i n. Množenje možemo shvatiti kao uzastopno sabiranje broja n sa samim sobom m puta. Dakle, u m ciklusa bismo imali jedan te isti zakon po kome bismo uvećavali rezultat.
Kod promenljivih šema zakon obrade se menja u zavisnosti od toga u kom smo koraku iteracije.
Primer:
Izračunati:
za poznate brojeve n > 0 i poznate vrednosti x1, x2, x3, ..., xn sve strogo veće od nule.
U svakom sledećem koraku se menja znak vrednosti tako da je u svakoj parnoj iteraciji rezultat pozitivan, a u svakoj neparnoj je rezultat negativan.
Složene algoritamske šeme
Bilo kakva kombinacija prethodno opisanih šema daje složene šeme. U okviru složene šeme možemo imati nekoliko grananja i nekoliko cikličnih blokova. Na sledećoj slici imamo primer složene šeme.
Linijske proste
Izačunati vrednost izraza z = 3 x + 7y2 , gde su x i y poznate veličine.
Linijske razgranate
Vratiti apsolutnu vrednost prethodnog izraza.
Ciklične konstantnog tipa
Naći proizvod dva cela broja x i y.
Ciklične promenljivog tipa
Izračunati:
za poznate brojeve n > 0 i poznate vrednosti x1, x2, x3, ..., xn sve strogo veće od nule.
Složene šeme
Naći sumu n brojeva, ako je neki od njih manji od 100 pomnožiti ga nekom konstantom.