Postopki

(algoritmi)

Uvod

V vsakdanjem željenju se vsakodnevno srečujemo z raznimi postopki. Ponavadi se velike večine izmed njih ne zavedamo. Ko zjutraj vstanemo iz postelje in se odpravimo v šolo ali na delo, to običajno izvedemo po dolečenem postopku (vstanemo, se umijemo, opravimo svoje zadeve, se oblečemo, pozajtrkujemo, ...). Tudi odhod v šolo je postopek : od doma se odpravimo pet minut pred prihodom autobusa, vstopimo v avtobus, izstopimo na pravi postaji, se sprehodimo do šole, .. Sam pouk je postopek, ki ga opredeljujeta urnik in izvedba posameznih ur, ... Reševanje nalog v šoli zahteva določeno proceduro oz.postopek. Te in podobne postopke izvajamo samodejno in so nam bili priučeni. Določene postopke nam vsiljujejo družbene norme, nekatere tudi zakonodaja. Tudi ti dve kategoriji sta v osnovi postopka.

Naslednje poglavje se bo ukvarjalo s postopki, predvsem z njihovim opisom, značilnostmi in preverjanjem postopkov.

Zakaj bi postopke opisovali ?

Vprašanje morebiti ni tako nezanimivo. Pomislimo na naslednje :

Pričnimo na začetku :

Algoritem je načrt (navodilo) za izvedbo zaporedja akcij (ali postopkov) nad podatki, da bi se dosegli želeni rezultati.
Da bi bil uporaben, mora algoritem biti:

Splošne (obvezne) lastnosti algoritmov

Želeni atributi algoritmov

Poleg lastnosti, ki zagotavljajo, da nas izvajanje zaporedja korakov privede do želenega cilja, pa si ponavadi od postopka želimo še kaj več, kot je npr. to, da do cilja pridemo v čim krajšem času, da je sledenje navodilom enostavno, ... Te lastnosti postopkov, ki ne vplivajo na rezultat postopka, temveč njegovo predvsem na njegovo učinkovitost so:

Predstavitev algoritma

Postopke lahko predstavljamo na različne načine in z različnimi sredstvi. Ker so postopki dejansko navodila, se njihov opis ponavadi razlikuje v odvisnosti od tega, na katerih področjih življenja jih uporabljamo. V splošnem jih lahko podamo:

Diagrami potekov

Gradniki diagramov poteka

Gradniki diagramo poteka so grafični simboli s privzetimi pomeni. Največ uporabljani simboli so:

  1. začetni ali končni blok: označujeta začetek ali konec postopka.
  2. blok internega procediranja; sem spadajo vse operacije, ki se interno izvršijo v postopku (prireditve, aritmetika, ..
  3. odločitveni blok; omogoča vejitve v postopku, uporabljamo ga tudi za kontrolni blok ponavljanj
  4. vhodni ali izhodni blok; zagotavlja interakcijo postopka z okoljem, uporabnikom ali drugimi postopki
  5. povezava; določa tok izvajanja programa oz. kaže na naslednji izvajalni element postopka

 

 

Osnovne sestavine diagrama poteka

 

Primeri diagramov poteka

1. Sestavite diagram poteka za postopek, ki bo prebral tri celoštevilske vrednosti in izpisal njihovo povprečno vrednost

2. Naslednji postopek ugotavlja deljivost vnesenega števila z 2 in s 3. Če je vneseno število deljivo z obema, ga izpiše:

3. Spodnji postopek izpiše vneseno število natanko trikrat:

 

Kontrola izvajanja in pravilnosti postopkov

Testiranje postopkov, prevsem na področju računalništva, praktično ni mogoče brez podatkov. Tako v bistvu testiramo izvajanje programov (izvajanje postopka ne določeni množici podatkov) ne pa direktno samega postopka, in ustreznost, pravilnost izvajanja kontroliramo preko spreminjanja samih podatkov. V ta namen lahko uporabimo specifično oz. namensko programsko opremo. Primer take opreme so razhroščevalniki (debuggers) pri uporabi programske kode, ali pa npr. orodja, ki omogočajo programiranje s pomočjo gradnikov diagramov poteka in nato sledenje izvajanja, kot je npr. Flow Char Programming .

Lahko pa pravilnost izvajanja postopka izvedemo tudi ročno, na list papirja, s t.i. sledjo izvajanja. Pri tem postopku si izrišemo tabelo, katere glava vsabuje vse spremenljive vrednosti, ki nastopajo v določenem postopku. Nato po stolpcih za vsak korak izvajanja beležimo spremembo teh vrednosti. Pravilnost postopka je potrjena v primeru, da smo iz znanih začetnih vrednosti preko postopka prišli do preverljivo pravilnega rezultata.

Izvedimo sled izvajanja za predhodni primer diagrama, kjer vneseno vrednost trikrat izpišemo:

 

postopek omogoča preverjanje vseh obveznih lastnosti postopka, pa tudi prenekaterega izmed želenih atributov.