Pascal

Solo disponible en BuenasTareas
  • Páginas : 6 (1446 palabras )
  • Descarga(s) : 0
  • Publicado : 4 de noviembre de 2010
Leer documento completo
Vista previa del texto
Funciones en Pascal

Una función es una estructura autónoma de programa, similar en muchos aspectos a un procedimiento. A diferencia de un procedimiento, sin embargo, una función se usa para devolver un solo valor de tipo simple a su punto de referencia. Además, una función se referencia especificando su nombre dentro de una expresión, si fuera una variable ordinaria de tipo simple ennombre de la función puede venir seguido por uno o mas parámetros actuales encerrados entre paréntesis y separados por coma. En la mayoría de los casos los parámetros actuales transferirán información a parámetros valor dentro de la función y pueden, por tanto, expresarse como constantes, variables o expresiones.

La declaración de una función tiene la siguiente forma:

|function Nombre(p1,p2,...):tipo |
|{declaraciones locales y subprogramas} |
|begin |
| |
|Nombre := valor de la función |
|end; |

|p1,p2,... lista de parámetros formales |
|tipotipo de dato del resultado |
|que devuelve la función |

Ejemplos:
Función verifica: boolean ;
{Función sin parámetros formales}
Función cambia (Var valor_1, valor_2: real): real;
Función potencia (base, exponente: real): real;

Invocación de funciones

Las funciones se invocan de la siguiente manera:
| (parámetros _ locales) ;|

 

Donde:
Parámetros _ locales es una lista de variables y/o constantes separadas por comas. La existencia de parámetros _ locales dependerá de que existan parámetros formales en la declaración de la función.

Por ejemplo, resolvamos el problema de calcular la raíz cuadrada de un número, utilizando el algoritmo de Newton:

X (i+1) = x (i) + 0.5 (a/x (i) -x (i))

Lacodificación del programa sería:

Program Raíz _ cuadrada;
{El siguiente programa calcula la raíz Cuadrada de un número}

Uses Crt;
Var
raiz, numero : real;
{Declaración de la función raiz_cuad}
Función raiz_cuad(a: real): real;
Var
C, x: real;
Begin
X:= 1E-9;
C:= 1.0;
while Abs (c-x)>1E-9 do
Begin
C:= x;
X:= x + 0.5 * (a/x -x)End;
raiz_cuad:= x
{El resultado se asigna a nombre _ función}
End;
Begin
ClrScr;
Write ('La raíz cuadrada de: ');
ReadLn (numero);
raíz:=raiz_cuad (numero);
{Invoca a la función raiz_cuad}
WriteLn;
WriteLn ('Es igual a : ',raíz:6:8);
ReadKey;
ClrScr
End.

Ámbito de variables

Las variables se clasifican en LOCALES y GLOBALES. Unavariable LOCAL es una variable declarada dentro de un subprograma, y el significado de dicha variable se limita a ese subprograma y a los módulos que éste contiene. Cuando otro subprograma utiliza el mismo nombre de variable, se crea una variable diferente en otra posición de la memoria. Por eso, si un subprograma asigna un valor a una de las variables locales, tal valor no es accesible a los otrossubprogramas.

Cuando se desea que otros subprogramas tengan acceso al valor de una variable, ésta debe declararse como GLOBAL, lo cual se logra declarándola en el módulo que abarca a dichos subprogramas.
Para tener la seguridad de que una variable va a tener un alcance GLOBAL, conviene declararla en el MODULO PRINCIPAL.
Los conceptos anteriores se aclaran por medio de la siguientefigura:

|Program anidado; |
|[pic] |

Referencias de identificadores válidos:
|Bloque |Identificador |Significado de cada identificador |
|anidado |M |constante global |
|  |i,,j |variables globales...
tracking img