Programación en Pascal
Programación en Pascal
Programación en Pascal
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