Zapis algoritma v naravnem jeziku

Algoritem lahko zapišemo kar v naravnem jeziku (npr. v slovenščini), vendar pa moramo biti pri tem dovolj natančni, da bo besedilo nedvoumno, torej da ga bo mogoče razumeti samo na en način. Programska koda je sama po sebi nedvoumna, pri naravnem jeziku pa moramo za to lastnost poskrbeti sami.

Zapišimo algoritem za problem MIN3 v naravnem jeziku:

  1. Vhod: Tri cela števila.
  2. Primerjaj prvi dve števili.
  3. Če je prvo število manjše od drugega, primerjaj še prvo in tretje število. Če je prvo število manjše od tretjega, je izhod enak prvemu številu, sicer pa tretjemu.
  4. Če je prvo število večje od drugega (ali če sta števili enaki), primerjaj še drugo in tretje število. Če je drugo število manjše od tretjega, je izhod enak drugemu številu, sicer pa tretjemu.

Prikazani način je najprimernejši za algoritme, ki so sestavljeni iz zaporedja korakov. Kot vidimo v zgornjem primeru, je zapis v naravnem jeziku nekoliko okoren že za pogojne stavke, še bolj pa to velja za zanke. Marsikdaj si namreč moramo pomagati z navodili tipa »Pojdi na korak s številko ...«, ki hitro zameglijo strukturo algoritma. Zato običajno raje uporabljamo psevdokodo, ki predstavlja srednjo pot med naravnim in programskim jezikom.

Zapis algoritma s psevdokodo

Tudi pri zapisu algoritma s psevdokodo si lahko pomagamo z naravnim jezikom, vendar pa je zgradba zapisa podobna zgradbi programa v pythonu ali katerem sorodnem programskem jeziku. Podobno kot pri naravnem jeziku smo tudi pri psevdokodi zelo svobodni. Poskrbeti moramo le za nedvoumnost.

Na primer algoritem za problem MIN3 bi lahko v psevdokodi zapisali takole:

vhod: cela števila a, b in c
če velja a < b, potem:
  če velja a < c, potem:
    naj = a
  sicer:
    naj = c
sicer:
  če velja b < c, potem:
    naj = b
  sicer:
    naj = c
izhod: vrednost spremenljivke naj

Vidimo, da je psevdokoda pravzaprav zelo podobna pythonovemu programu. Uporabljamo jo predvsem pri obsežnejših algoritmih, ko se ne želimo ukvarjati s podrobnostmi posameznih korakov, zato vsaj nekatere od njih zapišemo v naravnem jeziku ali pa s pomočjo matematičnih simbolov.