Sign in Join
Wiki copytemporary

Basic Pascal Tutorial/Chapter 4/Parameters/es

English · Español · Français · Български · 中文(中国) · 日本語

4B - Parámetros

(autor: Tao Yue, estado sin cambios)

   Una lista de parámetros puede incluirse como parte de la cabecera de un procedimiento. La lista de parámetros permite que los valores de la variables sean transferidos desde el programa principal al procedimiento. La nueva cabecera de procedimiento sería:

pascal
 procedure Nombre (lista_formal_par??metros);

   La lista de parámetros puede consta de varios grupos de parámetros, separados por punto y coma (;):

pascal
 param_grupo_1; param_grupo2; ... ; param_grupoN

   Cada grupo de parámetros tiene la forma:

pascal
 identificador_1, identificador_2, ... , identificador_N : tipo_de_datos

   El procedimiento es ejecutado pasándole los argumentos (denominados lista de parámetros actuales) en el mismo número y tipo que la lista formal de parámetros.

pascal
 procedure Nombre (a, b : integer; c, d : real);
 begin
   a := 10;
   b := 2;
   writeln (a, b, c, d)
 end;

   Pongamos que llamas el procedimiento anterior desde el programa principal de esta forma:

pascal
 alfa := 30;
 Nombre (alfa, 3, 4, 5);

   Al volver al programa principal, ¿cuál es el valor de alpha? 30. El valor de alpha fue asignado a a, a la que se le dió 10 como valor. Lo que ocurre realmente es que alpha y a son completamente distintas. El valor en el programa principal no se ve afectado por lo que ocurre en el procedimiento.

   Esto es lo que se denomina llamada-por-valor (call-by-value). Con esto se pasa el valor de la variable al procedimiento.

   Otra vía de paso de parámetros es llamada-por-referencia (call-by-reference). Esta crea un enlace entre el parámetro formal y el parámetro actual. Al modificar el parámetro formal en el procedimiento el parámetro actual resulta a su vez modificado. La llamada-por-referencia se activa haciendo preceder el grupo de parámetros con var:

pascal
 var identificador_1, identificador_2, ... , identificador_N : tipo_de_datos

   En este caso, constantes y literales no pueden usarse como parámetros actuales porque deben poder ser modificados en el procedimiento.

   Este es un ejemplo que conjuga llamada-por-valor y llamada-por-referencia:

pascal
...
 procedure Nombre (a, b : integer; var c, d : integer);
 begin
   c := 3;
   a := 5
 end;

 begin
   alfa := 1;
   gamma := 50;
   delta := 30;
   Nombre (alfa, 2, gamma, delta);
 end.

   Inmediatamente tras la ejecución del procedimiento, gamma tiene valor 3, debido a que c es un parámetro por referencia, pero alfa sigue siendo 1 porque a es un parámetro pasado por valor.

   Esto es un poco confuso. Piensa que pasar-por-valor copia la variable y entrega esta copia al procedimiento. El procedimiento trabaja en la copia y la descarta cuando termina. La variable original no es modificada.

   Pasar-por-referencia pasa la variable actual al procedimiento. El procedimiento trabaja directamente con la variable y la devuelve al programa principal.

   En otras palabras, pasar-por-valor transfiere en un único sentido: del programa principal al procedimiento. 'Pasar-por-referencia'' transfiere en las dos sentidos.

previous contents next

From the Free Pascal wiki, page "Basic Pascal Tutorial/Chapter 4/Parameters/es", as it stood on 2022-08-20 after a change by Kai Burghardt, out of the wiki's dump of 2024-05-26. Copyright stays with the author who wrote it, according to the old wiki's Licensing page. If you have concerns about this material, message the admin.

Revision 1, last changed by WikiArchive .

Talk about this page

Nobody has opened a bench for this page yet. Sign in to open one.