You are on page 1of 4

Universidad Mayor de San Andrs

Ingeniera Electrnica

SISTEMAS DE COMPUTACIN, ETN903

Tema:

Laboratorio N 6

Presentado por:

Grupo: G03

Said Yasser ALE SALINAS

Erick Rubn GUARANI TARIFA

Miguel Eduardo SILVA POMA

Docente:

Javier SANABRIA GARCIA

Fecha de entrega: 11- 05 - 2017


Objetivos:

Disear un sistema de computacin en Linux que tenga un men y pueda


manejarse un contador con el teclado.

Anlisis:

NCURSES

Ncurses es una librera de funciones para el manejo de interfaces basadas en


texto. Es decir, se trata de un conjunto de funciones, ya programadas, que
podemos utilizar en nuestros programas para mejorar su presentacin.

Como Ncurses no es una librera estndar de C, es necesario ordenar al compilador


que la enlace con nuestro programa. Esto se hace aadiendo la opcin lncurses al
comando gcc. As pues, esta lnea de comando compila el programa
holamundo.c sin enlazarlo con la librera Ncurses:

$ gcc holamundo.c

En cambio, esta otra lnea fuerza el enlace del programa con la librera Ncurses:

$ gcc lncurses holamundo.c

No hace falta decir que la librera debe estar instalada en nuestro sistema, a que
no?. Adems, debemos hacer un #include <ncurses.h> en el programa que vaya a
utilizar estas funciones.

Ncurses tiene muchsimas funciones, pero nosotros slo nos referiremos a las que
necesitamos para empezar a funcionar con ella.

Inicializacin de Ncurses

Para utilizar las funciones de Ncurses en nuestro programa, basta con que
incluyamos la siguiente llamada:

initscr();

Esta funcin crea una ventana de texto. La ventana se llama stdscr (que significa
standard screen, es decir, pantalla estndar). A partir de aqu podremos utilizar
cualquier funcin de Ncurses, pues todas actan sobre esa ventana . Por ejemplo,
una funcin que suele ir justo despus es:
initscr(): Inicializa Ncurses y crea la pantalla estndar. Debe ser invocada antes
que cualquier otra funcin de la librera.

keypad(stdscr, activar): Activa / desactiva la recepcin de teclas especiales,


como F1, ESC, Intro, etc. Si activar = 1, se activa la recepcin. Si activar = 0, se
desactiva.

echo() / noecho(): Activa / desactiva el eco de caracteres. Si el eco est activo, lo


que se escriba en el teclado aparece en la pantalla. Si est inactivo, no.

cbreak() / nocbreak(): Activa / desactiva el envo inmediato de teclas.


Normalmente, cuando se teclea algo no es enviado al programa hasta que no se
pulsa intro. La funcin cbreak() hace que todo cuanto se teclee sea enviado al
programa sin necesidad de intro. La funcin nocbreak() desactiva este
comportamiento

nodelay(stdscr, activar): Activa / desactiva la espera para lectura de teclado. Las


funciones para leer un solo carcter, como getch(), detienen la ejecucin del
programa hasta que se pulsa alguna tecla. Llamando a esta funcin con el
parmetro activar = 1, conseguiremos que el programa no se detenga en getch()
aunque no se pulse tecla alguna. Para desactivarlo, llamaremos a la funcin con
activar = 0.

endwin(): Finaliza Ncurses. Hay que llamar a esta funcin antes de terminar el
programa para liberar la memoria ocupada y restaurar la consola al estado inicial.

Escribir y leer

Cuando utilicemos Ncurses debemos olvidarnos de las funciones de entrada/salida


estndar, como scanf(), printf(), gets() o puts(). En su lugar usaremos estas otras
funciones:

printw() y putstr(): Para escribir usaremos la funcin printw(), que funciona igual
que printf() pero sobre una ventana de Ncurses. Tambin podemos usar putstr(),
que es como puts(), es decir, sirve para imprimir cadenas

getstr() y getch(): Para leer disponemos de getstr(), que es como gets(), es decir,
sirve para leer cadenas por teclado. De modo que, si queremos leer un nmero,
debemos leerlo como cadena y luego convertirlo a nmero (con las funciones
estndar atoi(), atof(), etc). Tambin podemos usar getch(), que lee un nico
carcter.

move(): Para colocar el cursor usaremos move(y,x). Esto ubica el cursor en la


columna x y la fila y de la pantalla. Funciona como la funcin gotoxy() de
Borland, pero, cuidado!, porque en move() se indica primero la fila y luego la
columna, es decir, justo al revs que en la funcin de Borland.
refresh(): Actualiza la pantalla. Es el nico modo de asegurarnos de que los
cambios realizados se muestren instantneamente

You might also like