Problem in primerek problema

V prejšnjem razdelku smo že govorili o »programerskih problemih«, kljub temu pa nam še ni povsem jasno, kaj naj bi to bilo. Programerski problem (v nadaljevanju bomo pridevnik »programerski« pogosto izpustili) je izziv, ki je namenjen reševanju s pomočjo računalniškega programa. Ker s programi obdelujemo takšne in drugačne podatke, moramo pri vsakem problemu podati njegov vhod (katere podatke želimo obdelovati) in pričakovani izhod (kakšen naj bi bil rezultat obdelave podatkov). Zapišimo problem iskanja najmanjšega med tremi števili v opisani obliki:

  • Vhod: Trojica celih števil.
  • Pričakovani izhod: Najmanjše število v trojici.

Zaradi enostavnosti smo se omejili na trojice celih števil. Trojice števil a, b in c bomo pisali v obliki (a, b, c). Ker se bomo v tej učni enoti še večkrat srečali s problemom iskanja najmanjšega števila v podani trojici, mu bomo dali krajše ime: problem MIN3.

Probleme običajno definiramo precej splošno. Na primer problem MIN3 bi radi rešili za poljubno trojico celih števil, ne pa zgolj za nekaj konkretnih trojic, denimo (25, 20, 17), (1999, 1998, 2001) ali (230, 260, 250). Vsaka konkretna trojica in najmanjše število v tej trojici pa skupaj tvorita primerek problema. Vsak primerek problema je sestavljen iz nekega konkretnega veljavnega vhoda in pričakovanega izhoda za ta vhod.

Vaja

Vaja

Problem mora biti definiran tako, da je za vsak veljaven vhod povsem jasno, kakšen je pričakovani izhod. Pri problemu MIN3 to gotovo drži, saj lahko za vsako trojico celih števil določimo njen minimum (najmanjše število).

Vaja

Vaja