Professional Documents
Culture Documents
MANEJO DE PANTALLA EN C
GRUPO: 1IL115
PROFESORA
PROF. Dra. ADDYS DE LAM
INTEGRANTES
Campos Bryan 8-958-1721
Franco Cirilo 8-918-469
Ruiz Héctor 8-915-1415
Sanchez Ernesto 9-743-681
FECHA
06/09/2018
INTRODUCCIÓN A LOS INTERFACES DE TEXTO .................................................................................... 3
OBJETIVOS....................................................................................................................................................... 4
LA PANTALLA NORMAL EN MODO TEXTO: DIMENSIONES ................................................................ 4
Tabla n 1: tamaño en modo texto .............................................................................................................. 4
ACTIVAR EL MODO TEXTO ......................................................................................................................... 4
BORRAR PANTALLA...................................................................................................................................... 5
Utilizar una función del sistema .................................................................................................................... 5
Escribir una función que mediante programación borrará la pantalla ........................................................... 6
Función clrscr().............................................................................................................................................. 6
BORRAR LÍNEA DESDE EL CURSOR AL FINAL ....................................................................................... 7
Función delline()............................................................................................................................................ 7
ELIMINAR LÍNEA ........................................................................................................................................... 7
Función clreol() ............................................................................................................................................. 7
Función insline() ............................................................................................................................................ 8
COLOR DE FONDO , COLOR DE TEXTO Y ACTUALIZACIÓN DE AMBOS AL MISMO TIEMPO...... 9
Función textbackground() ............................................................................................................................ 10
Función textcolor() ...................................................................................................................................... 10
Función textarr() .......................................................................................................................................... 11
MOVIMIENTOS EN BLOQUE DE TEXTO. ................................................................................................. 11
Función movetext() ...................................................................................................................................... 11
POSICIONAMIENTO DEL CURSOR ............................................................................................................ 12
Función gotoxy() ......................................................................................................................................... 12
CAMBIAR EL TIPO DE CURSOR ................................................................................................................ 12
Función _setcursortype() ............................................................................................................................. 12
CREACIÓN DE VENTANA ........................................................................................................................... 13
Función window() ........................................................................................................................................ 13
CONTROL DE INTENSIDAD ........................................................................................................................ 14
Función highvideo() .................................................................................................................................... 14
Función lowvideo()...................................................................................................................................... 14
VALOR DE COORDENADAS X E Y DEL CURSOR .................................................................................. 14
Funcion wherex() ......................................................................................................................................... 14
Funcion wherey() ......................................................................................................................................... 14
CONCLUCION ................................................................................................................................................ 15
REFERENCIAS ............................................................................................................................................... 15
INTRODUCCIÓN A LOS INTERFACES DE TEXTO
A estas alturas del siglo XXI casi todos los ordenadores personales utilizan modernos
entornos gráficos como son Windows o los también conocidos KDE y GNOME en Linux.
Estos sistemas pueden representar cualquier imagen a partir de pequeños puntos que
pueden ser de uno de los millones de colores soportados. Para aplicaciones más sencillas, se
utiliza lo que se denomina Interfaz de texto, que es mucho más fácil de controlar por el
ordenador y más que suficiente para determinadas aplicaciones.
En todos los ejemplos que hemos hecho hasta ahora hemos podido comprobar como los
resultados se iban presentando en la pantalla de forma secuencial, es decir, unos debajo de
otro conforme se iban generando. Cuando se alcanzaba la parte baja de la pantalla todo el
contenido subía automáticamente para dejar una nueva línea vacía abajo. Algunas
operaciones más "sofisticadas" que hemos llegado a hacer han sido borrar todo usando la
instrucción o encolumnar la presentación de algunos listados ajustando los argumentos que
le pasamos a la instrucción de imprimir. De todas formas los resultados siempre se han
visto de color gris sobre fondo negro. Muy triste.
En este tema vamos a ver cómo se puede conseguir escribir exactamente en la posición de
la pantalla que queramos, así como en distintos colores de letra y de fondo. También
usaremos unos caracteres especiales conocidos como "Semigráficos" para dibujar líneas y
recuadros que den más consistencia a nuestras presentaciones.
OBJETIVOS
El alumno aprenderá a manejar las instrucciones necesarias para programar en modo texto
generando, impresiones en pantalla con presentación.
El alumno conocerá el manejo de caracteres ASCII para dar presentación.
El alumno conocerá las opciones de edición de texto para el dominio del editor y del
teclado.
El alumno conocerá las instrucciones de salida para imprimir en pantalla.
El alumno conocerá las instrucciones de entrada para capturar datos.
Según el adaptador gráfico usado, hay disponible una variedad concreta de modos de texto
en los ordenadores compatibles IBM. Se detallan a continuación:
El modo texto más usado con diferencia en entorno DOS y en las primeras consolas
Windows es el de 80 columnas por 25 filas con 16 colores. Este modo estaba disponible en
prácticamente todos los ordenadores personales IBM y compatibles. Todos los modos
80×25 también tenía un modo virtual 80×24, usado por algunas aplicaciones que
necesitaban una barra de estado en la última fila, como los emuladores de terminal. En
realidad era el mismo modo 80×25, pero restringido por software para hacer inaccesible la
última file.
Ej. textmode(C4350);
BORRAR PANTALLA
#include <stdio.h>
void main()
{
system("cls");
}
Escribir una función que mediante programación borrará la pantalla
#define PERR(bSuccess, api){if(!(bSuccess)) printf("%s:Error %d from %s
\
on line %d\n", __FILE__, GetLastError(), api, __LINE__);}
Función clrscr()
esta función despeja la ventana de texto actual y coloca el cursor en la esquina superior
izquierda
# include <conio.h>
# include <stdio.h>
Int main(){
printf(“Ejemplo de \”clrscr\”\n\n”);
printf(“pulsar una tecla para continuar…”);
getch();
clrscr();
return 0;
}
BORRAR LÍNEA DESDE EL CURSOR AL FINAL
Función delline()
Borra la línea donde se encuentra el cursor y mueve todas las líneas inferiores a una línea
anterior. La función delline funciona en la ventana de texto activa.
#include <conio.h>
int main() \{
clrscr();
cprintf( "Ejemplo de \"delline\"\r\n\r\n" );
cprintf( "en una de estas líneas, para borrarla.\n" );
cprintf( "Pulsa una tecla para continuar...\n" );
getch();
gotoxy( 1, 3 );
delline();
return 0;
}
ELIMINAR LÍNEA
Función clreol()
Aquí como te das cuenta mostramos un mensaje luego utilizamos la función getch() para
poder hacer una pausa hasta presionar una tecla (según el mensaje Enter), la siguiente línea
"gotoxy(x, y);clreol();" borrar el texto mostrado en la posición (x, y).
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
gotoxy(2,2);printf(“Presione enter para continuar”);
getch();
gotoxy(2,2);clreol();
gotoxy(3,3); printf(“Presione enter una vez más”);
getche();
}
#include <conio.h>
#include <stdio.h>
int main() \{
clrscr();
printf( "Ejemplo de \"clreol\"\n\n" );
printf( "Esto es un mensaje\nescrito en variaslíneas.\n");
printf( "Usaremos \"gotoxy\"para colocar el cursor\n
printf( "en una de estas líneas, para borrarla.\n" );
printf( "Pulsa una tecla para continuar...\n" );
getch();
gotoxy( 1, 4 );
clreol();
getch();
return 0;
}
int main() \{
clrscr();
cprintf( "Ejemplo de \"insline\"\r\n\r\n" );
cprintf( "Añadiremos una línea vacía después de esta.\n");
insline();
cprintf( "\r\n Pulsa una tecla para continuar...\n" );
getch();
return 0;
}
COLOR DE FONDO , COLOR DE TEXTO Y ACTUALIZACIÓN DE AMBOS
AL MISMO TIEMPO.
La función textattr() permite establecer un color de texto y otro de fondo en una sola
llamada, en lugar de llamar una vez a textcolor() y otra vez a textbackground(), pero el
resultado es el mismo. Como ya se ha comentado, cada posición de pantalla se almacena en
2 bytes: en el primero se guarda el código ASCII del carácter mostrado; en el segundo se
guardan los atributos de color de texto, de fondo y la intermitencia. La forma de almacenar
esos atributos en esos 8 bits es la siguiente:
7 6 5 4 3 2 1 0
blink back back back text text text text
Los bits del 0 al 3 guardan el color de texto, de 0 a 15 (16 colores posibles). Los bits del 4, 5
y 6 guardan el color de fondo, de 0 a 7 (8 colores posibles). El bit 7 guarda el estado de
intermitencia.
Ej.
textattr(5); //5 =0 000 0101 texto=5 fondo=0 Inter=0
textattr(37); //37 =0 010 0101 texto=5 fondo=2 Inter=0
textattr(165);//165=1 010 0101 texto=5 fondo=2 Inter=1
Para no tener que pasar a binario pueden usarse las constantes predefinidas, multiplicando el
color de fondo por 16 y sumando la constante BLINK (128) para activar intermitencia.
Ej.
textattr(BLINK + 16 * RED + BLUE); //Texto azul, fondo
//rojo e intermitencia activada.
Función textbackground()
Esta funcion selecciona el color de fondo especificado por el argumento color. Esta funcion
solamente funciona con aquellas funciones que envían datos de salida en modo 0 y 7;
también se pueden usar constantes simbólicas definidas en conio.h en lugar de enteros.
# include <conio.h>
int main(){
cprintf( "Ejemplo de \"textbackground\"\r\n\r\n" );
textbackground(BLUE);
cprintf( "Este mensaje tiene otro color de fondo.\n" );
cprintf( "Pulsa una tecla para continuar...\n" );
getch();
return 0;
}
Función textcolor()
Esta función selecciona el color de texto especificado por el argumento color. Esta función
solamente funciona con aquellas funciones que envían datos de salida en modo texto
directamente a la pantalla. El argumento color es un numero entero entre 0 y 15 y el
numero 128, para activar el parpadeo.
# include <conio.h>
int main(){
cprintf( "Ejemplo de \"textcolor\"\r\n\r\n" );
textcolor(LIGHTRED);
cprintf( "Este mensaje tiene otro color de texto.\n" );
cprintf( "Pulsa una tecla para continuar...\n" );
getch();
return 0;
}
Función textarr()
Esta función asigna ambos colores de primer plano y de fondo en una sola llamada.
# include <conio.h>
int main(){
return 0;
}
clrscr();
cprintf(“ejemplo de \”movertext\”\r\n\r\n”);
cprintf(“el rectángulo será un área pequeña.\n”);
cprintf(“copiamos esta línea…\r\n…y esta tambien.\r\n”);
cprintf(“\”movertext\” ha rretomado:
%d\r\n.\n”,movetext(1,4,ANCHURA, 3+ALTURA,5,15));
getch();
clrscr();
return 0;
}
POSICIONAMIENTO DEL CURSOR
Función gotoxy()
Mueve el cursor de la ventada de texto a la posición según las coordenadas especificadas
por los argumentos x e y. si las coordenadas no son validas entonces la llamada a la función
gotoxy es ignorada.
# include <conio.h>
int main(){
clrscr();
cprintf(“ejemplo de \”gotoxy\”\r\n\r\n”);
cprintf(“1°linea.\n”);
cprintf(“2°linea.\n”);
gotoxy(5,20);
cprintf(“3°linea.\n”);
gotoxy(20,1);
cprintf(“4°linea.\n”);
gotoxy(1,15);
cprintf(“5°linea.\n”);
getch();
clrscr();
return 0;
}
Función _setcursortype()
Selecciona la apariencia del cursor entre tres tipos. El argumento tipo_cursor indica el tipo
de cursor a seleccionar según estos:
_NOCURSOR Desactiva el cursor
_NORMALCURSOR Cursor normal
_SOLIDCURSOR cursor es un cuadrado relleno
# include <conio.h>
int main(){
char nombre[15]. Si_no=’’;
_setcursortype(_SOLIDCURSOR);
clrscr();
cprintf(“ejemplo de \”_setcursortype \”\r\n\r\n”);
cprintf(“cursor es un cuadrado relleno.\n”);
getch();
clrscr();
return 0;
}
CREACIÓN DE VENTANA
Función window()
Define una ventana de texto en pantalla especificado por los argumentos izquierda y
superior, que describen la esquina superior izquierda y por los argumentos derecha e
inferior, que describen la esquina inferior derecha.
#include <conio.h>
int main() \{
clrscr();
cprintf( "Ejemplo de \"window\"\r\n\r\n" );
cprintf( "La ventana de texto será de (10,10) á
(50,20).\r\n" );
window( 10, 10, 50, 20 );
cprintf( "Ahora estamos dentro de la ventana de
texto.\r\n" );
cprintf( "Pulsa una tecla para continuar..." );
getch();
return 0;
}
CONTROL DE INTENSIDAD
Función highvideo()
Selecciona los caracteres con una mayor intensidad mediante activando el bit de la mayor
intensidad del color de primer plano en uso.
Función lowvideo()
Selecciona los caracteres con una menor intensidad mediante activando el bit de la menor
intensidad del color de primer plano en uso.
# include <conio.h>
int main(){
clrscr();
cprintf(“ejemplo de \”highvideo\”\r\n\r\n”);
cprintf(“el texo tiene su propia intensidad.\n”);
cprintf(“ahora combiemos la intensidad.\n”);
hidhvideo();
cprintf(“la intensidad a partir de ahora es mayor”);
cprintf(“la intensidad a partir de ahora es menor”);
lowvideo();
cprintf(“pulsa una tecla para continuar…”);
return 0;
}
Funcion wherey()
Obtiene la coordenada y de la posición del cursor actual (dentro de la ventana en uso).
# include <conio.h>
int main(){
_setcursortype(_SOLIDCURSOR);
clrscr();
cprintf(“ejemplo de \”wherex\”y\”wherex\”\r\n\r\n”);
cprintf(“la posición del cursor es(%d,%d)\n”, wherex, wherex);
getch();
clrscr();
return 0;
}
CONCLUCION
Todos los resultados de los programas que hemos hecho hasta ahora en este curso de
programación los hemos podido ver en la pantalla a través de lo que denominamos
"Interfaz de texto", primero sólo en blanco y negro, y ahora en colores. A partir de aquí
vamos a tener la posibilidad de usar la pantalla como una matriz de puntos de colores
(Píxeles) donde tendremos la posibilidad de dibujar lo que queramos usando las
instrucciones adecuadas.
En los veremos la forma de iniciar el modo de pantalla de texto, algo muy sencillo, y
después cómo dibujar figuras en la pantalla para que hagan nuestros programas y juegos
más vistosos. la cabecera conio.h declara varias funciones útiles para mejorar el
rendimiento de la «entrada y salida por consola» desde un programa.
Dos conceptos muy importantes que hay que tener en cuenta a la hora de trabajar con
interfaces de texto son las coordenadas y color. Esta nos permite dar un “mejor formato” al
texto en la terminal de MS-DOS, ya sea dándole color al texto o color al fondo, por
mencionar un ejemplo simple.
REFERENCIAS
Cabanes, N. (2018). Tema 10: Pantalla en modo texto - AprendeAProgramar.com. [online]
Aprendeaprogramar.com. Available at:
http://www.aprendeaprogramar.com/mod/resource/view.php?id=153 [Accessed 1 Sep.
2018].
Es.wikipedia.org. (2018). Modo texto. [online] Available at:
https://es.wikipedia.org/wiki/Modo_texto [Accessed 1 Sep. 2018].
Taringa.net. (2018). Colores en C++ - cout<<"Hola Mundo" ; -
Taringa!. [online] Available at:
https://www.taringa.net/comunidades/programadores/2091/Colores-en-C.html [Accessed 1
Sep. 2018].
Foro.elhacker.net. (2018). Gama de colores.. [online] Available at:
https://foro.elhacker.net/programacion_cc/pequenita_aportacion_gama_de_colores_y_gran
_duda_al_respecto-t391209.0.html [Accessed 1 Sep. 2018].
Kernighan, B. and Ritchie, D. (2016). The C programming language. Englewood Cliffs,
N.J.: Prentice Hall.s