Metode za opis algoritma

            Već smo rekli da je najčešći metod (način) za opisivanje algoritma neka od dijagramskih tehnika za zapis algoritma tj. standardni dijagrami toka i struktuirani dijagram toka.

            Dijagrami toka za opis nekog algoritamskog koraka koriste grafičke simbole u obliku raznih geometrijskih figura koje su međusobno povezane orjentisanim linijama. Svaka forma određuje osnovnu funkciju, a unutar svake figure upisuje se tekst kojim se potpuno opisuje taj algoritamski korak. Grafički simboli koji se u praksi najčešće koriste su:

 

Ovo je simbol za granično mesto. Koristi se za označavanje graničnih mesta u programu: početak (start), kraj (end) ili tačke prekida unutar programa (stop). Početak nema predhodnika, a kraj i prekid nemaju sledbenika.

Ovo je simbol za obradu. Njime se prikazuju sve vrste obrada, a konkretan zakon obrade se upisuje unutar simbola i to mogu biti alritmetičke ili logičke operacije, prenos podataka, dodela vrednosti i sl. Svaki radni blok ima jednog ili više predhodnika i jednog sledbenika.

Ovo je simbol ulaz-izlaz. On simbolizuje operaciju ulaza tj. unos logičkog sloga tj. podatka u operativnu memoriju i izlaza tj. pisanja logičkog sloga tj, podataka iz memorije na spoljni nosilac podataka (papir, monitor, disk i sl.).

Ovo je simbol za odluku, uslovni prelaz, selekciju. Ovo je jedini korak koji ima više od jednog izlaza. Ovim blokom se određuje dalji tok programa. Ako je ispunjen uslov kontrola se predaje bloku B1, a ako uslov nije ispunjen izvršiće se blok B2.

Ovo su linije odvijanja programa. Povezuju pojedine algoritamske korake i pokazuju kojem se algoritamskom koraku predaje upravljanje.

 Ovo je spajanje. Simbolizuje uključivanje u liniju odvijanja obrade, tj. u liniju prenosa upravljanja. Vrlo je korisno označiti smer prikupljanja vrhom strelice.

 

        

Ovo je priključna tačka. Simbolizuje izlaz, prenos upravljanja iz jednog koraka ili grane i ulaz u neku drugu granu. Ovaj oblik može imati veiše ulaznih tački, a samo jednu izlaznu tačku

      Ovo je prekid niza operacija izazvan nekim fizičkim uslovom (npr. kraj jednog lista i prelazak na početak drugog lista papira. Ovo nije prekid programa.

  Ovo je simbol za potprogram. Deo programa obrade koji je realizovan kao zasebna celina koja se može pozivati na izvršavanje po potrebi iz raznih tačaka programa.

Prikaz algoritma u obliku dijagrama toka ima određene prednosti:

          ·         Ovako prikazan algoritam je pregledan i lako čitljiv

          ·         Daje jasne i pregledne veze između detalja i celine

          ·         Znatno olakšava testiranje, otkrivanje i lociranje grešaka, pa samim tim i njihovo otklanjanje

          ·         Omogućava lako menjanje algoritma, izmenu uslova kao i doradu i dopunu

          ·         Dijagram toka ne zavisi od narednih faza u rešavanju problema, tj. od njegovog kasnijeg korišćenja.

          ·         Dijagram toka je nezavisan od vrste računara i programskih jezika na kojima će biti realizovan

          ·         Dijagram toka je čitljiv i za ljude koji nemaju nikakva znanja o programiranju

 

            Ovi dijagrami imaju i određene nedostatke u odnosu na druge dijagramske metode: zauzimaju dosta prostora i gustina informacija koju sadrže u sebi je mala. Ali glavna mana koja je i dovela do redukcije njihovog korišćenja je ta što ovi dijagrami nisu prilagođeni tehnici razvoja programa „odozgo – na dole“ koja se danas korisi za razvoj velikih rpogramskih sistema.

            Danas se češće koriste strukturirani dijagrami toka. Ovi dijagrami su potpuno prilagođeni metodama sturkturiranog programiranja i razvoju programa odozgo na dole. Grafički prikaz ovog postupka zasniva se na ispunjavanju tri uslova:

-          Svaki dijagram toka mora imati pravougaoni oblik

-          Svaki deo dijagrama toka koji se može dalje dekomponovati opet mora biti pravougaonog oblika i pri tome

-          Svaki blok ima samo jednu ulaznu i jednu izlaznu tačku

            Za razliku od standardnih dijagrama toka, stukturirani dijagrami ne dozvoljavaju realizaciju bezuslovnih skokova unutar programa, odnosno ne dozvoljavaju upotrebu GOTO naredbi koje su jedne od glavnih uzročnika smanjene preglednosti programa i grešaka u programu.