/* Acció llegirsn. Demana a l'usuari que introdueixi un caràcter que ha de ser S, s, N, o n. Si l'usuari introdueix s o n, el programa transforma el caràcter en S o N. Des del programa principal li passem per referència la variable que ha de recollir el valor llegit, ja que com que és una acció, no retorna cap valor directament. */ acció llegirsn(var c: caràcter) és fer llegir(c); mentre (c != 'S' i c != 's' i c != 'N' i c != 'n'); si c=='s' llavors c='S'; fisi si c=='n' llavors c='N'; fisi fifunció /* Com que és una acció, no fa cap retorna. C també és una variable local, però la passem per referència des del programa principal, això vol dir que agafa la mateixa adreça de memòria que la variable del programa principal, i per tant, quan fem llegir (c) veritablement el que estem fent es llegir la variable que hem declarat en el programa principal i li hem passat per referència: */ .... siono=' '; /* variable declarada en el programa principal */ llegirsn(siono); /* la c de la acció agafa la adreça de siono */ /* ara siono ha recollit el valor de la variable local c */ ....