Está en la página 1de 11

Tema: III.

Programacion dirigida por eventos


Practicas
Herramientas Avanzadas para el Desarrollo de Aplicaciones
Departamento de Lenguajes y Sistemas Inform
aticos
Universidad de Alicante

Curso 2012-2013 , Copyleft 2011-2013 .


Reproduccion permitida bajo los terminos de la licencia de
documentaci
on libre GNU.

1 / 11

Contenido
1

Requisitos

Ejercicio 1

Ejercicio 2

Ejercicio 3

Ejercicio 4 (I)

Ejercicio 4 (II)

Ejercicio 4 (III)

Objetivos...

Entrega...
2 / 11

Requisitos

Crea un directorio llamado hada-p2.


Dentro de
el crea el archivo que contendra todo el codigo fuente

pedido: hada-p2.vala.
Puedes crear tu propio programa principal de pruebas en un archivo

llamado main.vala. No debes entregarlo.


Puedes compilar el c
odigo as: valac hada-p2.vala main.vala,

esto generara un ejecutable llamado hada-p2.

3 / 11

Ejercicio 1

Crea en un archivo llamado hada-p2.vala una clase que represente una


aplicacion, p.e.;
1

c l a s s A p p l i c a t i o n : GLib . O b j e c t {
p u b l i c A p p l i c a t i o n ( s t r i n g name ) {
m name = name ;
}

3
5

p u b l i c v o i d r u n ( ) { } // Pone en marcha l a a p l i c a c i o n
p u b l i c v o i d q u i t ( ) { }// Termina l a a p l i c a c i o n

7
9

p r i v a t e s t r i n g m name ;
11

Esta clase pertenecera al espacio de nombres Hada.


En el archivo main.vala escribe el c
odigo de la funcion main 1 que
cree un objeto de esa clase, le envie el mensaje run y luego quit.

fjate que no debe ser un metodo de la clase.


4 / 11

Ejercicio 2
A partir de aqu y hasta el final de la practica, todas las se
nales, cuando
corresponda, se conectaran en el constructor de la clase correspondiente.
A
nade a la clase Application dos se
nales: void on init() y void

on end().
Estas se
nales deberan emitirse al inicio y al final de la aplicacion

respectivamente.
Crea una funci
on independiente (no un metodo de una clase)

llamada: void al inicio().


Esta funci
on imprimira por pantalla el texto:

"\nComenzamos...\n".
Con
ectala a la se
nal on init. Comprueba que se ejecuta cuando

comienza la aplicaci
on y se emite la se
nal correspondiente.

5 / 11

Ejercicio 3
Crea una funci
on independiente (no un metodo de una clase)

llamada: void al final().


Esta funci
on imprimira por pantalla el texto: "\nAcabamos...\n".
Con
ectala a la se
nal on end. Comprueba que se ejecuta cuando

termina la aplicacion y se emite la se


nal correspondiente.
Crea una funci
on independiente (no un metodo de una clase)

llamada: void al final2().


Esta funci
on imprimira por pantalla el texto: "\nAcabamos de

verdad...\n".
Con
ectala a la se
nal on end. Comprueba ahora que, ademas de

ejecutarse la funcion al final, tambien se ejecuta al final2 al


terminar la aplicacion y emitir la se
nal correspondiente.

6 / 11

Ejercicio 4 (I)

Tambi
en en el fichero hada-p2.vala y a
nadida al ejemplo anterior

crea una clase pila de enteros (el nombre de la clase sera Stack)
tambien perteneciente al espacio de nombres Hada.
Esta clase tendr
a un u
nico constructor a partir de un string que

representara el nombre de la pila.


El n
umero maximo de elementos que tendra sera 10.
Dispondr
a del metodo public void push (int) para apilar

elementos y del metodo public int pop () para desapilar


elementos.
Podr
a emitir dos se
nales: void stack underflow (); y void

stack overflow ();.

7 / 11

Ejercicio 4 (II)

El programa principal de prueba para esta clase estara en el fichero


main.vala. Renombra la funci
on main anterior que tendras en el a
main-aplicacion. La nueva funci
on main llevara a cabo las siguientes
acciones:
1

Cuando se apile un elemento comprobara si la pila esta llena, si no lo


esta lo apilara y si lo esta emitira la se
nal stack overflow.

Cuando se desapile un elemento comprobara si la pila no esta vaca, si


no lo esta lo desapilara y si lo esta emitira la se
nal stack underflow,
despues devolvera la constante kERROR2 que reflejara el error.

public const int kERROR = -100;


8 / 11

Ejercicio 4 (III)

Crea las funciones independientes (no metodos de una clase): void


on overflow(...) y void on underflow(...). Conectalas a las se
nales
correspondientes.

Estas funciones imprimiran por pantalla el texto: "Stack


overflow %s index = %d\n" y "Stack underflow %s index
= %d\n" respectivamente, donde los parametros %s y %d de la
cadena de formato representan el nombre de la pila y el ndice de la
misma donde se ha intentado apilar o desapilar un elemento y ha
provocado la emision de esta se
nal.

9 / 11

Objetivos...

El alumno sabe:
 A
nadir se
nales a una clase.
 Conectar a una se
nal una funci
on.
 Conectar a una se
nal un metodo.
 Crear una clase desde cero dotandola de se
nales y conectarle
a estas el c
odigo que quiere que se ejecute en cada caso.

10 / 11

Entrega...

La entrega consistir
a en un fichero llamado hada-p2.tgz que

contendra el directorio hada-p2 y no ocupara mas de 256KB.

11 / 11

También podría gustarte