divendres, 11 de març de 2011

[Programació] Estructura dels algorismes

Ara que ja sabem especificar algorismes és moment d'analitzar-ne l'estructura general. Les parts d'un algorisme són les següents:
  1. Capçalera: indica el principi i nom de l'algorisme. La paraula clau algorisme s'ha de posar sempre al principi.
  2. Definició de constants: enumeració de les constants de l'algorisme (si n'hi ha). Apareixen enmig de les paraules clau const i fconst.
  3. Definició de tipus: enumeració dels tipus enumeratius de l'algorisme (si n'hi ha). Apareixen enmig de les paraules clau tipus i ftipus.
  4. Declaració de variables: enumeració de les variables de l'algorisme. Apareixen enmig de les paraules clau var i fvar.
  5. Cos de l'algorisme: descripció de les accions de l'algorisme.
  6. Final de l'algorisme: indica el final d'aquest. Es fa servir la paraula clau falgorisme.

Pel què fa a les accions, n'hi ha de diversos tipus, tot i que d'accions elementals només n'hi ha una, l'assignació. L'assignació és la forma d'assignar un valor a una variable. Per exemple:
nom de variable:= expressió;
És important que tant la variable com l'expressió siguin del mateix tipus.

Fa un moment he dit que hi ha diversos tipus d'accions, això és perquè podem composar accions combinant accions elementals.

Mitjançant la composició seqüencial podem crear una acció formada per una llista d'accions individuals endreçades en una seqüència. És a dir:
acció1
acció2
...
acción

Mitjançant la composició alternativa podem executar una acció (o accions) o una altra (o altres) depenent de l'estat. És a dir:
si expressió llavors
accióa
sino
acciób
fsi

Mitjançant la composició iterativa podem repetir l'execució d'una acció, que s'anomena iteració. Per especificar aquesta composició s'ha de fer servir la propietat invariant (I), que és la descripció dels càlculs acumulats al llarg de les iteracions fetes fins a un moment determinat. És a dir:
{ I i el resultat d'avaluar expressió és un cert valor booleà B (que pot ser cert o fals) }
mentre expressió fer
{ I i B }
acció
{ I }
fmentre
{ I i no(B) }

Cap comentari:

Publica un comentari a l'entrada