Diferencia entre revisiones de «Programación en Pascal/Funciones y procedimientos»

Contenido eliminado Contenido añadido
Javuchi (discusión | contribs.)
Página nueva: Programar como lo hemos estado haciendo hasta ahora, es decir, una instrucción tras otra, y cuando llega el '''end.''' se acabó, está bien. Pero en la vida real, es normal escribir...
 
Línea 8:
 
=Procedimientos sencillos=
La programación estructurada trata de dividir el programa el bloques más pequeños, buscando una mayor legibilidad, y más comodidad a la hora de corregir o ampliar.
 
Por ejemplo, en el caso de nuestra maravillosa agenda, podemos empezar a teclear directamente y crear un programa de 2000 líneas que quizás incluso funcione, o dividirlo en partes, de modo que el cuerpo del programa sea
 
begin
InicializaVariables;
PantallaPresentacion;
Repeat
PideOpcion;
case Opcion of
'1': MasDatos;
'2': CorregirActual;
'3': Imprimir;
...
end;
Until Opcion = OpcionDeSalida;
GuardaCambios;
LiberaMemoria
end.
 
 
Bastante más fácil de seguir, ¿verdad?
 
En nuestro caso (en el lenguaje Pascal), estos bloques serán de dos tipos: procedimientos (procedure) y funciones (function).
 
La diferencia entre ellos es que un procedimiento ejecuta una serie de acciones que están relacionadas entre sí, y no devuelve ningún valor, mientras que la función sí que va a devolver valores. Veamoslo con un par de ejemplos:
 
procedure Acceso;
var
clave: string; (* Esta variable es local *)
begin
writeln(' Bienvenido a SuperAgenda ');
writeln('=========================='); (* Para subrayar *)
writeln; writeln; (* Dos líneas en blanco *)
writeln('Introduzca su clave de acceso');
readln( clave ); (* Lee un valor *)
if clave <> ClaveCorrecta then (* Compara con el correcto *)
begin (* Si no lo es *)
 
writeln('La clave no es correcta!'); (* avisa y *)
exit (* abandona el programa *)
end
end;
 
Primeros comentarios sobre este ejemplo:
 
* El cuerpo de un procedimiento se encierra entre "begin" y "end", igual que las sentencias compuestas y que el propio cuerpo del programa.
* Un procedimiento puede tener sus propias variables, que llamaremos variables locales, frente a las del resto del programa, que son globales. Desde dentro de un procedimiento podemos acceder a las variables globales (como ClaveCorrecta del ejemplo anterior), pero desde fuera de un procedimiento no podemos acceder a las variables locales que hemos definido dentro de él.
* La orden exit, que no habíamos visto aún, permite interrumpir la ejecución del programa (o de un procedimiento) en un determinado momento.
 
=Procedimientos con argumentos=