UTN – FRRo Algoritmos y Estructuras de Datos Bibliotecas – Un ejemplo : Gestión de Pantalla, Retardo y Sonido 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ía s 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 Ma. Elena Farias- R.Kantor UTN – FRRo Algoritmos y Estructuras de Datos Bibliotecas – Un ejemplo : Gestión de Pantalla, Retardo y Sonido 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 Ma. Elena Farias- R.Kantor UTN – FRRo Algoritmos y Estructuras de Datos Bibliotecas – Un ejemplo : Gestión de Pantalla, Retardo y Sonido Se recomienda probar los siguientes ejemplos en la computadora: 1 – El siguiente programa muestra por pantalla un texto. Program hacer_algo; uses crt; begin clrscr; Writeln(’este programa’); Writeln(’muestra este texto por pantalla’); repeat until keypressed; 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 clrscr; Writeln('Escriba una frase:'); Readln(Frase); clrscr; textcolor(10); gotoxy(20,10); write(Frase); Repeat until keypressed; End. Pag. 3 de 5 Ma. Elena Farias- R.Kantor UTN – FRRo Algoritmos y Estructuras de Datos Bibliotecas – Un ejemplo : Gestión de Pantalla, Retardo y Sonido 4 – Este programa dibuja un rectangulo. Program Rectangulo; uses Crt; var i:integer; begin ClrScr; write(chr(218)); for i:=1 to 20 do write(chr(196)); write(chr(191)); for i:=2 to 10 do begin 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)); repeat until keypressed; 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; uses crt; var i: integer; BEGIN WriteLn('Retardo entre números'); for i:=1 to 50 do begin writeln (i); Delay(65000); end; WriteLn('Fin del ejemplo'); repeat until keypressed; END. Pag. 4 de 5 Ma. Elena Farias- R.Kantor UTN – FRRo Algoritmos y Estructuras de Datos Bibliotecas – Un ejemplo : Gestión de Pantalla, Retardo y Sonido 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; uses crt; var i: integer; BEGIN sound(70); repeat until keypressed; nosound; END. ANEXO Las constantes definidas para los colores son: Constante Valor Color Constante Valor Color Black 0 Negro Dark gray 8 Gris oscuro Blue Green 1 2 Azul Verde Light Blue Light Green 9 10 Azul claro Verde claro Cyan Red Magenta 3 4 5 Cyan Rojo Magenta Light Cyan 11 Light Red 12 Light Magenta 13 Brown 6 Light Gray 7 Pag. 5 de 5 Marrón Yellow Gris claro White 14 15 Cyan claro Rojo claro Magenta claro Amarillo Blanco Ma. Elena Farias- R.Kantor