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

Contenido eliminado Contenido añadido
m Se colocaron saltos de línea para que no se salga del borde
Se agrega plantilla: mejorar formato.
Línea 1:
{{mejorar formato}}
 
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 miles y miles de instrucciones. Poner unas detrás de otras sin más generará pronto un caos difícil de manejar. Además, es normal que unas cuantas rutinas tengan que repetirse, por lo que copiar y pegar el código no solo es un gran engorro, sino que produciría problemas de mantenimiento (si hay que hacer alguna modificación, se debe hacer en todas las copias).
 
Línea 7 ⟶ 9:
Veamos como puedes construir las tuyas propias.
 
==Procedimientos sencillos==
La programación estructurada trata de dividir el programa en 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
<source lang=pascal>
 
begin
InicializaVariables;
Línea 28 ⟶ 30:
LiberaMemoria
end.
</source>
 
 
Bastante más fácil de seguir, ¿verdad?
Línea 36 ⟶ 38:
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:
 
<source lang=pascal>
procedure Acceso;
var
Línea 52 ⟶ 55:
end
end;
</source>
 
Primeros comentarios sobre este ejemplo:
 
Línea 59 ⟶ 62:
* 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==
Un procedimiento también puede tener "parámetros", igual que la función que acabamos de ver:
<source lang=pascal>
 
{--------------------------}
{ Ejemplo en Pascal: }
Línea 93 ⟶ 96:
saludo( 'Juan' ); (* Saludamos a Juan *)
end. (* Y se acabó *)
</source>
 
En el próximo apartado veremos la diferencia entre pasar parámetros por valor (lo que hemos estado haciendo) y por referencia (para poder modificarlos), y jugaremos un poco con la recursividad.