Algorismes i programes

Un computador és una màquina de caràcter general, capaç de resoldre una gran quantitat de problemes diferents. Així i tot un computador no pot resoldre qualsevol problema sinó solament aquells que tenen un mètode de resolució que es pot expressar d’una forma determinada anomenada algorisme. Un algorisme és una descripció no ambigua i precisa de les accions que cal fer per a resoldre un problema en un nombre finit de passos.

El nom prové del nom del matemàtic persa al-Jwārizmī, considerat el pare de l’àlgebra i introductor del nostre actual sistema de numeració, que va estudiar els mètodes per ressolde de forma sistemàtica determinats problemes matemàtics. Donat que els algorismes provenen de les matemàtiques en elles trobarem bons exemples d’aquestos, com l’algorisme per calcular l’arrel quadrada d’un nombre.

_images/algorisme_arrel.png

Els algorismes generalment no ressolen un problema concret sinó que són la solució general a un problema de manera que, depenent de les dades d’entrada, poden resoldre cadascun dels cassos particulars. Per exemple: Hi ha un mètode general que ens permet dividir dos nombres i que podem aplicar per a dividir 68 entre 2, 230 entre 5,…

Per a que un seguit d’instruccions siga realment un algorisme haurà de tenir les següents propietats:

  • Cal que no continguen cap ambigüitat.

  • Cal que cadascuna de les accions estiga definida sense dubtes.

  • Cal que es puga realitzar en un nombre finit de passos.

Observa les següents instruccions per fregir un ou: Primerament ficarem oli en una paella i l’escalfarem. A continuació trencarem un ou i el ficarem també a la paella. Amb una paleta, tirarem oli calent per sobre de l’ou. Finalment servirem l’ou en un plat.

Aquest procediment no es pot considerar un algorisme, ja que conté ambigüitats (quant d’oli ficarem a la paella, una gota o mil litres? fins quina temperatura l’escalfem?), alguns passos poden ser dubtosos (que significa exactament «trencar» un ou?) i algun dels passos pot esdevindre infinit (fins quan hem d’estar abocant oli amb la paleta per damunt de l’ou?).

En general el llenguatge natural conté ambigüitats que el fan poc adequat per a la descripció d’algorismes, i per aquest motiu utilitzarem dues solucions diferents: els ordinogrames i el pseudocodi.