Download TEST REFERENCIAS Y TIPOS ABSTRACTOS DE DATOS (06/10

Document related concepts
no text concepts found
Transcript
TEST REFERENCIAS Y TIPOS ABSTRACTOS DE DATOS (06/10/2010)
EDI - CURSO 2010/2011 (Grupo Sistemas)
Alumno/a: ____________________________________________
D.N.I.:
_______________
TEST. 5 puntos.
Nota: cada pregunta correcta suma 1,25 puntos (las respuestas incorrectas no penalizan). En algunos
casos, la respuesta correcta puede consistir en no marcar opción alguna.
1.- Marque la respuesta/s correcta/s.
[ ] Una referencia en Java guarda la dirección de memoria en la que se almacena un objeto.
[ ] Los objetos en Java se pasan por valor.
[ ] Sólo es posible tener una referencia por objeto.
[ ] Generalmente, en Java es posible aplicar operadores aritméticos (+, -, *, ...) sobre referencias.
2.- Marque la respuesta incorrecta respecto al concepto de especificación algebraica de tipos
abstractos de datos.
[ ] Es una técnica formal.
[ ] Permite definir sin ambigüedad un TAD.
[ ] A la hora de definir un TAD de tipo T, sus operaciones nunca involucran tipos de datos auxiliares
(ej.: tipo Entero).
[ ] Es independiente de cualquier representación/implementación.
3.- Marque la respuesta/s correcta/s respecto a los tipos abstractos de datos.
[ ] El conjunto de operaciones constructoras se puede clasificar como libre o no libre.
[ ] Si la operación de un TAD llamado T devuelve un resultado de tipo T, entonces dicha operación
es generadora.
[ ] Si la operación de un TAD llamado T devuelve un resultado de tipo T, entonces dicha operación
es modificadora.
[ ] El usuario de un TAD ha de conocer sólo los aspectos más relevantes de su implementación.
4.- Señale la principal desventaja de una interfaz respecto a una clase abstracta.
[ ] Las interfaces están ligadas a una jerarquía rígida de tipos de datos.
[ ] Las interfaces no están ligadas a una jerarquía rígida de tipos de datos.
[ ] Es necesario hacer una inversión importante de esfuerzo si la interfaz cambia después de su
especificación inicial.
[ ] No permiten el uso de herencia múltiple.
- Página 1 -
CUESTIONES. 5 puntos.
A (1,5 puntos) Dado el TAD bolsa, definido como una colección no ordenada de elementos y con
posible repetición, y suponiendo las operaciones CrearBolsa, EsVacía, Poner y Quitar, escriba la
especificación semántica de las operaciones EsVacía y Quitar en función de las operaciones
generadoras.
* Nota: suponga
∀ b ∈bolsa ,∀ e , f ∈elemento
B (3,5 puntos) Suponiendo la siguiente implementación de la clase VariableEnlazada,
class VariableEnlazada<X> {
private X _valor;
private VariableEnlazada<X> _enlace;
public VariableEnlazada (X valor, VariableEnlazada<X> enlace) {
_valor = valor;
_enlace = enlace;
}
public
public
public
public
public
void setValor (X valor) { _valor = valor; }
X getValor () { return _valor; }
void setEnlace (VariableEnlazada<X> enlace) { _enlace = enlace; }
VariableEnlazada<X> getEnlace () { return _enlace; }
String toString () { return _valor.toString(); }
}
implemente en Java un método recorrer (VariableEnlazada<X> inicio) que imprima por pantalla el
contenido de toda la cadena de enlaces (uno por línea). 1,75 puntos.
* Nota: suponga que inicio representa la referencia al primer objeto de la cadena.
Implemente en Java un método recorrer_y_alterar (VariableEnlazada<X> inicio) que modifique
una cadena de enlaces 'ignorando' los enlaces que ocupan una posición par en la cadena inicial. A
continuación se muestra un ejemplo. 1,75 puntos.
* Nota: se pide modificar los enlaces, no crear una nueva cadena de objetos de clase VariableEnlazada.
'a'
'b'
's'
'ñ'
'b'
Pos: 1
Pos: 2
Pos: 3
Pos: 4
Pos: 5
Resultado:
'a'
's'
- Página 2 -
'b'