Vous êtes sur la page 1sur 4

Ejercicios de repaso. Laboratorio de Programacin.

2008
Preguntas:

1. Define qu es una clase y qu es un objeto y explica las diferencias entre ellos. Escribe la declaracin de una clase llamada ClaseA que tenga: Un atributo que almacene una cadena de caracteres y se llame mensaje Un mtodo llamado metodo1 que no recibe nada por parmetro y no devuelve nada como resultado. Simplemente imprime por pantalla el mensaje Soy el mtodo 1. Un mtodo llamado metodo2 que no recibe nada por parmetro ni devuelve ningn resultado. Simplemente imprime por pantalla el contenido almacenado en el atributo mensaje Un constructor al que se le pase como parmetro una cadena de caracteres y lo almacene en el atributo mensaje. 2. Indica cul es el resultado de las siguientes expresiones, dados los valores de las variables mostrados a continuacin: Boolean a = true Boolean b = true Boolean c = false int i = 2 int j = 3 int k = 5

Expresin ! (b || ((!b && c) && a)) k / (j%i) a && b || b && c !((j<10) && a) i>j || j<k (i>j)&& b || k<10

Valor

Problemas Problema 1:
Cree una clase Texto que permita definir un array de caracteres de un tamao que se indicar en el constructor aadir caracteres saber cuntas vocales hay en el texto imprimir el texto

Problema 2:
La clase Clip va a representar la informacin de un clip de audio. Cada clip se caracteriza por una serie de muestras, almacenadas en un array de enteros, que son capturadas con un conversor analgico/digital con un rango de valores de -127 a +128. Adems de las muestras, el objeto almacena la frecuencia de muestreo del conversor (en muestras por segundo, entero) y la duracin del clip (en segundos, real). Apartado 1 (1 punto) Escribe los atributos y los mtodos de acceso para todos los atributos, que, en el caso de las muestras, deben permitir guardar/leer valores de las muestras individuales (indicando la posicin de la muestra), no de toda la serie. Adems, escribe el constructor, que recibe como parmetros nicamente la frecuencia de muestreo y la duracin. Las muestras se inicializan con valor -1 y su valor se ajustar posteriormente con el mtodo de acceso correspondiente. Apartado 2 (1 punto) Escribe el mtodo construirTrenDePulsos, que sirve para rellenar el clip de audio con un tren de pulsos, esto es, una seal con aspecto que muestra la figura. El mtodo recibe un parmetro (tiempo) con la duracin en segundos de cada semiperiodo. El pulso empieza en valor mximo.

Apartado 3 (1 punto) Escribe el mtodo imprimirHistograma, que recorre las muestras e imprime el nmero de veces que aparece cada valor en todo el clip. Por ejemplo, para el tren de pulsos anterior, quedara:

-127: 15000 -126: 0 ... 127: 0 128: 15000


NOTA: Por supuesto, el mtodo debe servir para cualquier seal de audio, no slo el tren de pulsos.

Problema 3
Se va a programar un juego de rol, del cual se nos ha encargado programar en Java parte del esquema de personajes. Para ello se nos han dado las siguientes directrices: Tenemos que programar 2 tipos de personajes, los Magos y los Clrigos. Todos los personajes cuentan con los siguientes datos: o nombre: una cadena. o raza: una cadena que puede tomar los valores humano, elfo, enano u orco. o fuerza: un entero entre 0 y 20 o inteligencia: un entero entre 0 y 20 o puntos de vida mximos: un entero entre 0 y 100 o puntos de vida actuales: un entero entre 0 y puntos de vida mximos Adems cada tipo de personaje tiene atributos y restricciones especficos que se detallaran en los apartados correspondientes.

Se pide: Apartado 1: Escribe una clase Personaje que rena los atributos mencionados en el enunciado. Dicha clase debe incluir: Un constructor para poder inicializar los atributos (se supone que los puntos de vida actuales son iguales a los mximos al inicializarse) Mtodos pon y dame para todos los atributos de la clase Mtodo imprime que saque por pantalla los datos del personaje Apartado 2: Escribe la clase Mago teniendo en cuenta las siguientes restricciones. Al crearse, un mago no puede tener en inteligencia un valor menor que 17 ni en fuerza un valor mayor que 15 Adems un mago almacena los nombres de los hechizos que ha memorizado. Un mago normal slo puede memorizar a la vez un mximo de 4 hechizos. Implemntalo como un array y aade los siguientes mtodos: o aprendeHechizo: que tiene un parmetro de tipo String y que aade un hechizo al array (deber buscar un hueco libre en el array). o lanzaHechizo: que tiene como parmetro un objeto de tipo Personaje que ser el personaje sobre el que recae el hechizo. Las acciones a tomar sern las de restar 10 de los puntos de vida actuales de dicho personaje y olvidar el hechizo (borrarlo del array). Escribe el constructor de la clase (puedes suponer que en el momento de su creacin, un mago no conoce ningn hechizo). Reescribe el mtodo imprime para que se muestren los nuevos datos incluyendo la lista de hechizos. Apartado 3: Escribe la clase Clrigo teniendo en cuenta las siguientes restricciones. Al crearse, un clrigo no puede tener una fuerza con un valor menor que 18 y una inteligencia con un valor menor que 12 ni mayor que 16 ambos incluidos El clrigo reza a un dios para obtener el don de la curacin. Por lo tanto se deber modificar el constructor genrico para aceptar el nombre del dios del cual el clrigo es devoto y as poder almacenarlo.

Un clrigo tiene el don de curar, por lo tanto, la clase deber tener un mtodo curar que recibe como parmetro un objeto de tipo Personaje sobre el que recae la accin de curar y que aumenta en 10 los puntos de vida Reescribe el mtodo imprime para que muestre adems de los datos bsicos el nombre del dios.

Apartado 4: Escribe una clase de prueba con un mtodo main en la que se creen 2 magos (A y B) y un clrigo (C) y en el que tengan que realizar las siguientes acciones. Imprimir los datos de los tres personajes El mago A aprende 2 hechizos. El mago B aprende 1 hechizo. Imprimir los datos de los magos El mago A lanza un hechizo sobre el mago B El mago B lanza un hechizo sobre el mago A El clrigo cura al mago B El mago A lanza un hechizo sobre el mago B Imprimir los datos de los tres personajes NOTA: los casos en los que un atributo pueda tomar valores no permitidos contrlalos lanzando la excepcin PersonajeException