Bibliotecas en PASCAL: Cualquier versión que empleemos de lenguaje PASCAL cuenta con un conjunto de instrucciones, subprogramas y funciones que son comunes a todas las implementaciones del lenguaje. Estas son conocidas como las aplicaciones estándar del lenguaje. Desde el punto de vista de aprender a programar(objetivo inicial de Wirth, creador del lenguaje) estas aplicaciones, junto a las que podemos incorporar con nuestras propias declaraciones de funciones y procedimientos, son suficientes. Sin embargo, cuando se pretende trabajar con mínimo grado de elegancia, se hace verdaderamente difícil, y a veces imposible lograrlo con ese limitado al conjunto de funciones y procedimientos. Es por ello que las implementaciones ofrecen la posibilidad de agregar conjuntos de funciones y subprogramas adicionales. Esos conjuntos que son denominados bibliotecas, librerías o unidades permiten agregar a las estándar, funciones y procedimientos para los mas diversos objetivos. Así hay librerías orientadas al manejo de la memoria, a la interacción con el sistema operativo, con funciones matemáticas y estadísticas de altonivel, manejo de archivos, manejo de pantallas, etc. El mecanismo para hacer uso de estas librerías es sencillo. En la parte declarativa se pone la palabra reservada de Pascal para incluir librerías: USES seguida del nombre, o los nombres, de las librerías a utilizar. El nombre de la librería depende de la implementación, así como las herramientas (funciones y procedimientos) que trae la misma. ( se encuentran en el manual del lenguaje). Como ejemplo, la versión de Pascal utilizada en nuestro curso tiene una biblioteca destinada a un elementa manejo de la pantalla, tiempo y sonido. Es la llamada Unidad CRT (CRT = catodic ray tube = tubo de rayos catódicos, por el tipo de pantalla que existía cuando se creó igual sirve para la pantalla de plasma ) Para poder usar todas las herramientas de esta unidad nuestro programa debe tener definida en su parte declarativa una declaración de este tipo: PROGRAM nombredeprograma (INPUT, OUTPUT); USES CRT; resto del programa Pag. 1 de 5
Veamos a continuación los procedimientos y funciones que ofrece esta unidad: Procedimientos: Procedimiento ClrScr : ClrScr=clear screen( borrar pantalla). El procedimiento ClrScr borra el contenido de la pantalla. No lleva argumentos. Procedimiento GotoXY(x,y): El procedimiento GotoXY tiene dos parámetros x e y, correspondientes a una columna y una fila en la pantalla (la pantalla en este caso se presenta como una matriz cuyas columnas van de 1 a 80, y sus filas de 1 a 24). Por ejemplo la sentencia GotoXY(3,4) posiciona el cursor, para que la próxima sentencia de lectura o escritura(read o write) se posicione y lea o imprima a partir de la columna 3 y fila 4. Procedimiento DelLine: El procedimiento DelLine (sin parámetros), borra la línea en la cual se encuentra ubicada el cursor.el cursor puede ser posicionado en un lugar cualquiera usando GotoXY Procedimiento TextColor (Color); El procedimiento TextColor se usa para seleccionar el color del texto en la pantalla. En el anexo se encontrará un listado de algunos de los valores de color posibles. Funciones : Función Keypressed: Devuelve TRUE si se pulsa una tecla, y false en caso contrario Función ReadKey: Espera que el usuario pulse una tecla, y devuelve el caracter correspondiente a la tecla pulsada. Pag. 2 de 5
Se recomienda probar los siguientes ejemplos en la computadora: 1 El siguiente programa muestra por pantalla un texto. Program hacer_algo; Writeln( este programa ); Writeln( muestra este texto por pantalla ); end. 2 - El siguiente programa borra la pantalla, e imprime en el centro de la pantalla un cartel: Program P; Uses Crt; Begin ClrScr; GotoXY(30,10); write(' Esto esta '); GotoXY(30,11); write(' Al medio de'); GotoXY(30,12); write(' la pantalla'); End. 3 ESte programa escribe un texto ingresado por el usuario en el centro de la pantalla, en color verde. Program texto_scr; Uses crt; Var Frase : String[40]; Begin Writeln('Escriba una frase:'); Readln(Frase); textcolor(10); gotoxy(20,10); write(frase); Repeat until keypressed; End. Pag. 3 de 5
4 Este programa dibuja un rectangulo. Program Rectangulo; uses Crt; var i:integer; ClrScr; write(chr(218)); for i:=1 to 20 do write(chr(196)); write(chr(191)); for i:=2 to 10 do GotoXY(1,i); write(chr(179)); GotoXY(22,i); write(chr(179)); end; GotoXY(1,11); write(chr(192)); for i:=1 to 20 do write(chr(196)); write(chr(217)); end. MANEJO DEL TIEMPO: Delay(Tmp : Word); Detiene la ejecución del programa durante un tiempo especificado en Tmp en milisegundos. El intervalo válido es desde 0 hasta 65535, la precisión del retardo depende de la precisión del reloj interno de la computadora. Ejemplo: Este programa muestra los números del 1 al 50 con un retardo entre uno y otro. PROGRAM Retardo; var i: integer; BEGIN WriteLn('Retardo entre números'); for i:=1 to 50 do writeln (i); Delay(65000); end; WriteLn('Fin del ejemplo'); END. Pag. 4 de 5
MANEJO DE SONIDO: Procedimiento Sound (Frecuencia) Activa el sonido. Genera un sonido en la bocina de la computadora a una frecuencia determinada por el valor de Frecuencia. Para detener el sonido es necesario ejecutar el procedimiento NoSound. Procedimiento NoSound Desactiva el sonido iniciado con el procedimiento Sound. Ejemplo: Este programa emite un sonido hasta que el usuario presiona una tecla. PROGRAM Sonido; var i: integer; BEGIN sound(70); nosound; END. ANEXO Las constantes definidas para los colores son: Constante Valor Color Black 0 Negro Blue 1 Azul Green 2 Verde Cyan 3 Cyan Red 4 Rojo Magenta 5 Magenta Brown 6 Marrón Light Gray 7 Gris claro Constante Valor Color Dark gray 8 Gris oscuro Light Blue 9 Azul claro Light Green 10 Verde claro Light Cyan 11 Cyan claro Light Red 12 Rojo claro Light Magenta 13 Magenta claro Yellow 14 Amarillo White 15 Blanco Pag. 5 de 5