09.05.2013 Views

Programación en Pascal

Programación en Pascal

Programación en Pascal

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

PROCEDIMIENTO Intercambio(var a,b:<strong>en</strong>tero)<br />

ENTRADA: a,b<br />

SALIDA: a,b<br />

VARIABLES: aux<br />

INICIO<br />

aux ← a<br />

a ← b<br />

b ← aux<br />

FIN<br />

PROCEDURE Intercambia(var a,b:integer);<br />

VAR: aux<br />

BEGIN<br />

aux := a;<br />

a := b;<br />

b := aux;<br />

END;<br />

Como podemos observar el paso de seudocódigo a pascal es inmediato, sólo es necesario<br />

recordar las reglas de sintáxis y algunos aspectos básicos.<br />

• Los subalgoritmos terminan con (;) y no con (.)<br />

• Los parámetros pasados por refer<strong>en</strong>cia se distingu<strong>en</strong> por llevar igualem<strong>en</strong>te la partícula<br />

var. Se pasan por valor <strong>en</strong> caso contrario.<br />

• Nunca se realizan operaciones de <strong>en</strong>trada/salida <strong>en</strong> un procedimi<strong>en</strong>to o función, toda la<br />

información <strong>en</strong>tra y sale como parámetro.<br />

La pregunta ahora es determinar cuando un parámetro es pasado por valor o por refer<strong>en</strong>cia.<br />

Para ello nos ayudará la sigui<strong>en</strong>te tabla:<br />

Para cada parámetro tipo de dato tipo de dato<br />

simple<br />

estructurado<br />

de <strong>en</strong>trada por valor por refer<strong>en</strong>cia<br />

de salida o de<br />

<strong>en</strong>trada/salida<br />

por refer<strong>en</strong>cia por refer<strong>en</strong>cia<br />

Esto nos ayuda a saber porqué los parámetros a,b y c de la función está pasados por valor<br />

(son de <strong>en</strong>trada y simples), mi<strong>en</strong>tras que los parámetros a y b del procedimi<strong>en</strong>to son pasados<br />

por refer<strong>en</strong>cia (son de <strong>en</strong>trada y salida al mismo tiempo).<br />

Ahora estamos <strong>en</strong> disposición de modificar el programa que calcula el punto de intersección<br />

<strong>en</strong>tre dos rectas. Sería muy conv<strong>en</strong>i<strong>en</strong>te mant<strong>en</strong>er un subalgoritmo con esta operación y<br />

simplem<strong>en</strong>te hacer una llamada siempre que nos interese, de este modo, basta con escribirlo<br />

una vez y utilizarlo siempre que fuera necesario.<br />

At<strong>en</strong>di<strong>en</strong>do al programa, vemos que:<br />

• El procedimi<strong>en</strong>to queda después de la definición del programa, las constantes y variables y<br />

antes del programa principal.<br />

• Se consideran com<strong>en</strong>tarios lo que quede <strong>en</strong>tre llaves o <strong>en</strong>tre los símbolos (*...*)<br />

• La <strong>en</strong>trada/salida se realiza <strong>en</strong> el programa principal, no <strong>en</strong> el procedimi<strong>en</strong>to, a no ser que<br />

sea un procedimi<strong>en</strong>to exclusivo de <strong>en</strong>trada o salidada.<br />

• El procedimi<strong>en</strong>to se invoca mediante una llamada. Los parámetros se correspond<strong>en</strong> por<br />

posición, no por nombre. Así p<strong>en</strong>di<strong>en</strong>te1 se correspond<strong>en</strong> con el parámetro m1, const1 con<br />

c1, y así sucesivam<strong>en</strong>te.<br />

• Los parámetros x e y (coincid<strong>en</strong> <strong>en</strong> nombre por casualidad) son pasados por refer<strong>en</strong>cia<br />

porque son de salida.<br />

6

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!