Sunteți pe pagina 1din 10

Concepto de unidad UNIT en Turbo Pascal 7 UNIDADES EN TURBO PASCAL 7.

0
Concepto de unidad Estructura de una unidad Creacin de unidades Utilizacin de las unidades estndar Identificadores idnticos en distintas unidades Sntesis final

CONCEPTO DE UNIDAD
Es un conjunto de constantes, tipos de datos, variables, procedimientos y funciones encapsuladas bajo un mismo identificador. Poseen una estructura bien definida. Las unidades pueden ser predefinidas (estndar) o definidas por el usuario. Turbo Pascal 7.0 posee siete unidades estndar: SYSTEM GRAPH DOS CRT PRINTER TURBO3 GRAPH3

ESTRUCTURA DE UNA UNIDAD UNIT


Una unidad esta constituida por las siguientes secciones: Cabecera de la unidad Seccin Interface (o seccin pblica) Seccin implementatin (o seccin privada) Seccin de inicializacin UNIT <identificador> INTERFACE USES <lista de unidades>; {opcional} {declaraciones pblicas de objetos exportables} IMPLEMENTATION {declaraciones privadas} {definicin de procedimientos y funciones pblicas} BEGIN {cdigo de inicializacin} {opcional} END.

UNIT

Pag 1 de 10

Concepto de unidad UNIT en Turbo Pascal 7 CABECERA DE LA UNIDAD


Comienza con la palabra reservada UNIT seguido del identificador y finalizado con un punto y coma. Un identificador vlido est formado por una cadena de 1 a 8 caracteres. El nombre de la unidad puede ser arbitrario pero debe coincidir con el nombre del fichero que lo contiene. Ejemplo: La UNIT test debe almacenarse en un fichero denominado test.pas. Una vez compilado, la extensin del fichero ser TPU (turbo pascal unit).

SECCIN INTERFACE
Esta parte es la que permite conectar esta unidad con otras unidades y programas. Tambin es conocida como la seccin pblica ya que los objetos declarados en esta seccin son exportables al exterior. En esta seccin se pueden declarar constantes, tipos de datos, variables*, funciones y procedimientos. En esta seccin slo se declara la cabecera de las funciones y procedimientos. Su implementacin se encuentra en la seccin implementation.

EJEMPLO DE DECLARACIN DE SECCIN INTERFACE


UNIT rayo; INTERFACE USES Dos, Graph, Crt; VAR a, b, c : integer; FUNCTION Exponencial (a, b : integer):real; PROCEDURE Dividir(x, y : integer; var cociente : integer); OJO!. Las variables declaradas en esta seccin son en realidad variables globales, ya que son visibles desde otras unidades y programas.

UNIT

Pag 2 de 10

Concepto de unidad UNIT en Turbo Pascal 7 SECCIN IMPLEMENTATION


Esta seccin es estrictamente privada y por tanto su contenido no es exportable. Esta seccin contiene los cuerpos de los procedimientos y funciones declarados en la seccin interface. Las variables declaradas dentro de esta seccin sern de uso exclusivo para los procedimientos y funciones de dicha unidad ( UNIT).

EJEMPLO DE DECLARACIN DE SECCIN IMPLEMENTATION


IMPLEMENTATION FUNCTION Exponencial (a, b : integer):real; VAR p, i : integer; BEGIN p:=1; for p:=1 to b do p:=p*a; exponencial:=p; END; {exponencial} PROCEDURE Dividir(x,y:integer; var cociente:integer); BEGIN cociente:=x DIV y; END; {Dividir}

SECCIN DE INICIALIZACIN
Esta seccin opcional puede contener, por ejemplo, instrucciones que sirvan para iniciar variables. La ejecucin de estas instrucciones se efecta antes de ejecutar la primera instruccin del programa que usa dicha unidad. En esta seccin tambin se pueden inicializar cualquier estructura de datos que emplee la unidad.

UNIT

Pag 3 de 10

Concepto de unidad UNIT en Turbo Pascal 7 CREACIN DE UNIDADES


Una vez que se dispone del cdigo fuente la unidad se compila de la misma forma que un programa. El archivo obtenido posee la extensin TPU y es un fichero no ejecutable. Para poder utilizar una unidad se debe declarar su uso en la seccin USES Ejemplo: Program Prueba; USES Utilidad;

CREACIN DE UNIDADES
UNIT utili; INTERFACE USES Crt, Dos; PROCEDURE Frase (texto:string); PROCEDURE Pausa; IMPLEMENTATION USES Printer; PROCEDURE Frase; BEGIN Clrscr; GotoXY((80-length(texto)) DIV 2,10); writeln(texto); END; {Frase} PROCEDURE Pausa; BEGIN repeat until Keypressed END; {Pausa} END. {Heeeeey no tiene un BEGIN}

UNIT

Pag 4 de 10

Concepto de unidad UNIT en Turbo Pascal 7 USO DE LA ANTERIOR UNIDAD


PROGRAM usoutili; USES utili, crt; VAR text:string; BEGIN clrscr; writeln(Introduce un texto); readln(text); frase(text); pausa END. {usoutili}

USO CIRCULAR DE UNIDADES


A partir de la versin 5.0 se puede hacer uso de unidades mutuamente dependientes (que se invocan entre ellas). En ambos casos dicha referencia debe realizarse en la seccin de implementation. Para compilar estas unidades se debe utilizar la orden MAKE del men del compilador. Para ello se compila una de las dos unidades quedando la otra automticamente compilada.

Ejemplo 1: UNIT Visualiz; INTERFACE PROCEDURE EscribirenposicionXY(x,y:integer;men:string); IMPLEMENTATION USES Crt, Error; PROCEDURE EscribirenposicionXY(x,y:integer;men:string); BEGIN if (x in [1..80]) AND (y in [1..25]) then BEGIN GotoXY(x,y); writeln(men) END else Vererror(coordendas xy fuera de rango) END; {Escribirenposicionxy} END. {Visualiz} UNIT Pag 5 de 10

Concepto de unidad UNIT en Turbo Pascal 7


Ejemplo 2 UNIT Error; INTERFACE PROCEDURE Vererror(cadena:string); IMPLEMENTATION USES Visualiz; PROCEDURE Vererror(cadena:string); BEGIN EscribirenposicionXY(1,25,cadena) END; {Vererror} END. {Error}

USO DE LAS DOS ANTERIORES UNIDADES


Programa que escribe un texto en pantalla, dando un mensaje de error si las coordenadas del texto son incorrectas. PROGRAM circular; USES crt, visualiz; BEGIN clrscr; EscribirenposicionXY(1,1, test); EscribirenposicionXY(90,90, fuera de la pantalla); EscribirenposicionXY(10,20, retorno a la pantalla); END.

UNIDADES ESTANDAR
Estas unidades se sitan en un fichero denominado turbo.tpl y se cargan en memoria automticamente junto con el entorno. SYSTEM CRT DOS PRINTER

UNIDAD SYSTEM
Contiene los procedimientos y funciones estndar de TP relativas a la entrada/salida, cadenas de caracteres, calculo en coma flotante, gestin de memoria,.... Esta unidad no necesita ser referenciada ya que se carga automticamente en la compilacin de cada programa.

UNIT

Pag 6 de 10

Concepto de unidad UNIT en Turbo Pascal 7 UNIDAD CRT


Esta unidad proporciona un conjunto de declaraciones que permiten el acceso al control de los modos de pantalla, de teclado, posicionamiento del cursor,.. Algunos de sus procedimientos son: clrscr: borra la pantalla. keypressed: detecta la pulsacin de una tecla. Sound: hace sonar el altavoz interno window: define una ventana de texto en la pantalla. Ejemplo Soun01 Program Sound01; Uses crt; Var I : Integer; Begin I:=350; While (I<500) do BEGIN Sound(I); {Da el sonido de i Hz} Delay(I); {Detiene el sistema I milisegundos } I := I + 25; END; End. Ejemplo Ventana Program ventana; uses crt; var X, Y: Byte; begin TextBackground(Black); { Coloca la pantalla en color negro } ClrScr; repeat X := Succ(Random(80)); { Dibuja ventanas aleatorias } Y := Succ(Random(25)); Window(X, Y, X + Random(10), Y + Random(8)); TextBackground(Random(16)); { de colores aleatorios } until KeyPressed; {hasta que se presione una tecla} end.

UNIT

Pag 7 de 10

Concepto de unidad UNIT en Turbo Pascal 7 UNIDAD DOS


Esta unidad contiene declaraciones, constantes, tipos variables, procedimientos y funciones relacionadas con el sistema operativo DOS y la gestin de archivos. Algunos de sus procedimientos son: gettime: proporciona la hora a travs del reloj interno getdate: proporciona fecha registrada en el ordenador. Disksize: proporciona el tamao de la unidad de almacenamiento sealada. Ejemplo Dime la Hora PROGRAM Hora; USES Crt, Dos; VAR Horas, Minutos, Segundos, Centesimas:word; function ZeroAIzq(w : Word) : String; var s : String; begin Str(w:0,s); if Length(s) = 1 then s := '0' + s; ZeroAIzq := s; end; BEGIN Clrscr; while not Keypressed do begin GotoXY(64,1); GetTime(horas,minutos,segundos,centesimas); write(ZeroAIzq(horas):2,':',ZeroAIzq(minutos):2,',', ZeroAIzq(segundos):2,'.',ZeroAIzq(centesimas):2); end {while} END. {Hora}

UNIT

Pag 8 de 10

Concepto de unidad UNIT en Turbo Pascal 7 UNIDAD PRINTER


Esta unidad facilita la tarea del programador cuando utiliza la impresora como dispositivo de salida. Permite enviar la salida estndar de Pascal a la impresora utilizando para ello los procedimientos write y writeln. Solamente si la impresora est conectada al puerto LPT1 EJEMPLO: PROGRAM impresora. USES printer; VAR a,b,c:integer; BEGIN writeln(lst, este texto aparece en la impresora); read(a,b); c:=a+b; writeln(lst,c:6); END. {impresora}

UBICACIN DE LAS UNIDADES


El sistema espera encontrar las unidades que disea el programador en el directorio activo de la unidad de disco activa.

IDENTIFICADORES IDNTICOS EN DIFERENTES UNIDADES


Turbo Pascal permite el uso del mismo identificador en diferentes unidades. Turbo Pascal siempre utiliza el identificador de la ltima unidad explorada Una forma de poder distinguir entre distintos identificadores es emplear el identificador de la unidad, seguido de un punto y del identificador del procedimiento.

UNIT

Pag 9 de 10

Concepto de unidad UNIT en Turbo Pascal 7 RESUMEN


UNIT <identificador>; {cabecera obligatoria} {El identificador debe ser utilizado como nombre de archivo} INTERFACE USES <lista de unidades>; {opcional} CONST..... TYPE...... VAR...... PROCEDURE....... {slo cabecera} FUNCTION........... {slo cabecera} IMPLEMENTATION {Declaraciones privadas: locales a la unidad} USES <lista de unidades>; {opcional} CONST..... TYPE...... VAR...... PROCEDURE....... {cabecera y cuerpo} FUNCTION........... {cabecera y cuerpo} BEGIN {Seleccin de inicializacin: opcional} ............................... END. {Obligatorio, fin de implementacin}

UNIT

Pag 10 de 10

S-ar putea să vă placă și