Una unidad tiene una estructura muy similar a la de un programa.
La cláusula uses de la parte de interface sólo es necesaria cuando la unidad actual llame a otras unidades. Todos los procedimientos y funciones en la sección de interface deben ser definidos en la sección de implementación.
La cabecera de los procedimientos y funciones declarados en la parte de interface deben ser idénticos a la cabecera de las mismas funciones definidas en la parte de implementación; sin embargo, es posible escribir la cabecera en forma abreviada en la sección de implementación.
Unit utilidad; (* este nombre de la unidad debe coincidir con el nombre del
archivo de programa *)
Interface
Uses
Wincrt, Printer;
Procedure Frase (Texto : String);
Implementation
Uses
Printer;
Var
MiVar : Integer
Procedure Frase;
Begin
Clrscr;
GotoXY ((80-Lenght (Texto)) div 2,1)
Write (texto);
End.
Begin
MiVar := 0
End.
Una vez que se dispone el código fuente de una unidad, se compila de igual forma que un programa, pero el archivo obtenido no es ejecutable directamente. Tiene la extensión TPU (Turbo Pascal Unit).
Para utilizar esa unidad dentro de un programa, debe incluir una sentencia uses para indiciar al compilador que está utilizando esa unidad.
ProgramPrueba;
Uses Utilidad;
Ejemplo:
Escribir una unidad que conste a su vez de un procedimiento para intercambiar los valores de dos variables, así como calcular su valor máximo.
Unit Demo1;
* Cursos Idiomas Extranjero Estudia inglés, francés, italiano alemán o chino en el extranjero
Interface
Procedure Intercambio (Var I,J : Integer);
Function Máximo (I, J : Integer) : Integer;
Implementation
Procedure Intercambio;
Var
Aux : Integer;
Begin
Aux := I;
I := J;
J := Aux
End;
Function Máximo;
Begin
If I>J then
Maximo := I
Else
Maximo :=J
End;
End.
Una vez que lo haya escrito, guárdelo en disco con el nombre de Demo1.PAS, a continuación, compílelo hacia el disco. El código objeto se llamará Demo1.TPU. Esta unidad la utilizaremos en el siguiente programa:
Program Prueba;
Uses
Demo1;
Var
X,Y : Integer;
Begin
Write (`Introducir dos números enteros: `);
Readln (X,Y);
Intercambio (X,Y);
Writeln (X,´ `,Y);
Writeln (`El valor máximo es: `, Máximo (X,Y));
End.
No hay comentarios:
Publicar un comentario