Sei sulla pagina 1di 8

Preguntas ed- Primer parcial

1. En el mecanismo de abstracción, lo importante es:

-Destacar los detalles relevantes del objeto de estudio.

2. En el mecanismo de abstracción, una cuestión a tener muy en cuenta es:

-El nivel de detalle en el que se está estudiando el problema.

3. Especificar una estructura de datos consiste en:

-Indicar qué hace sin indicar cómo lo hace.

4. En la definición de TAD:

"Colección de valores y de X que se definen mediante Y que es independiente de cualquier Z."

Debemos sustituir X, Y y Z (en ese orden) por:

-Operaciones, una especificación, implementación.

5. Una definición del TAD Pila de la forma siguiente, es un ejemplo de:

TIPO
Pila[G]
FUNCIONES

apila: Pila[G] x G → Pila[G]


desapila: Pila[G] – → Pila[G]
cima: Pila[G] → G
vacía: Pila[G] → Boolean
crea: → Pila[G]

AXIOMAS

Para cualquier x:G, p:Pila[G],


desapila(apila(p, x)) ≡ p
cima(apila(p, x)) ≡ x
vacía(crea) ≡ Verdadero
vacía(apila(p, x)) ≡ Falso

PRECONDICIONES

desapila(p:Pila[G]) require vacía(p) = Falso


cima(p:Pila[G]) require vacía(p) = Falso

--Especificación formal (respuesta)


6. El siguiente axioma para una Pila[G]

desapila(apila(p, x)) ≡ p

-Indica que el elemento que se desapila es el último que se apiló

-Todas las respuestas restantes son falsas.

7. El siguiente axioma para una Pila[G]

cima(apila(p, x)) ≡ x

-Indica que el elemento de la cima es el último que se apiló

8. Una precondición es:

- Un aserto sobre el estado anterior a la ejecución de una operación sobre un TAD que debe
asegurar el usuario del TAD.

-Todas las restantes son falsas.

9. Una postcondición es:

-Un aserto sobre el estado posterior de la ejecución de una operación sobre un TAD que debe asegurar el
TAD.

-Las respuestas restantes son falsas.

10. Un invariante es:

-Un aserto sobre el estado de un TAD que debe asegurar el TAD.

11. Si un algoritmo tiene dos operaciones en secuencia con cuyas complejidades algorítmicas tienen
orden O(N) y O(N) respectivamente, el orden del algoritmo será:

-O(N)

12. El algoritmo para recorrer una matriz de NxN elementos es de orden:

-O(N^2)

13. El algoritmo para sumar dos matrices de NxN elementos es de orden:

- O(N^2)

14. Si un algoritmo tiene dos operaciones, las segunda anidada en la primera mediante un esquema
iterativo, cuyas complejidades algorítmicas tienen orden O(N) y O(N) respectivamente, el orden del
algoritmo será:

- O(N^2)

15. El usuario de un procedimiento necesita saber:

- lo que hace el procedimiento


16. Las especificaciones de un procedimiento van destinadas a:

- los que van a hacer uso el procedimiento y a los que lo van a implementar

-Todas las restantes son falsas

17. ¿Cuál de las siguientes afirmaciones es cierta?

- Las especificaciones formales son totalmente precisas

18. Cuando hacemos uso del método push_back() de la clase vector de la STL:

- Estamos haciendo uso de una especificación

19. En los tipos de datos que proporciona un lenguaje (int, float, double, etc.):

- Todas las demás respuestas son válidas.

20. ¿Cuál de las siguientes afirmaciones es FALSA?

- En un lenguaje orientado a objetos un TAD se implementa como un objeto

21. Sobre los constructores, ¿cuál de las siguientes afirmaciones es cierta?

- Crean un objeto de un tipo abstracto

22. Sobre los modificadores, ¿cuál de las siguientes afirmaciones es cierta?

- El estado del objeto cambia después de usarlos

23. El orden de complejidad de un algoritmo:

- No depende de la máquina ni del lenguaje en el que se implemente

-Todas las restantes son falsas.

24. El tiempo de ejecución de un algoritmo de orden O(N 2):

- es siempre menor que el de un algoritmo de orden O(N 3) a partir de un valor de N.

25. Sobre los observadores, ¿cuál de las siguientes afirmaciones es cierta?

- No pueden modificar el estado del objeto

26. Se dice que una función g(n) es de orden O(f(n)) cuando:

- g(n) está acotada superiormente por un múltiplo de f(n) a partir de un determinado valor de n.

27. El producto de matrices, implementado usando tres esquemas iterativos anidados, es de orden:

- O(N^3)
28. ¿Cual de las siguientes afirmaciones es CIERTA?

-Todas las restantes son falsas.

- La búsqueda binaria o dicotómica, en un vector ordenado, es de O(log(N))

29. La principal ventaja de un array es:

- Ninguna de las respuestas restantes es cierta

30. La operación de búsqueda de un elemento en un array es:

- puede ser de O(logN) siempre que el array esté ordenado por algún ítem y la búsqueda se realice en
función de ese ítem

31. Una lista simple:

- Ninguna de las restantes respuestas es cierta.

32. sobre la implementación de una lista usando celdas enlazadas, ¿cuál es la opción correcta?

- Hace más eficientes las operaciones de borrado e inserción

33. En una lista implementada con celdas enlazadas, que no permita elementos repetidos y use
cursor, el método insertar después del elemento del cursor:

- Todas las respuestas restantes son falsas

34. La siguiente postcondición en la operación de insertar después de la posición del cursor

old.estaVacia() = falso implica old.actual() = anterior()

indica que:

- El cursor queda situado en el elemento que se acaba de insertar

35. La siguiente postcondición en la operación de insertar antes de la posición del cursor

old.estaVacia() = falso implica old.actual() = siguiente()

indica que:

- El cursor queda situado en el elemento que se acaba de insertar

36. Indica que afirmación es CIERTA para los métodos de insertar delante o detrás del cursor, en
una lista implementada con celdas doblemente enlazadas.

- Ambos métodos son de O(1)

37. El método borrar en cualquiera de las variantes de la lista con cursor:

-Todas las respuestas restantes son falsas


38. La siguiente postcondición para el método borrar() en una lista con cursor

old.esPrimero() = falso y old.esUltimo() = falso implica old.anterior() = anterior() y old.siguiente() =


actual()

indica que:

- Si el elemento a borrar no es ni el primero ni el último, el cursor quedará en el elemento siguiente al que


se borra

39. La siguiente postcondición para el método borrar() en una lista con cursor

old.esUltimo() = cierto implica estaVacio() = cierto o old.anterior() = actual() y esUltimo() = cierto

indica que:

- Si el elemento a borrar es el último de la lista, ésta queda vacía o el cursor se queda en el nuevo último
elemento de la lista.

40. La siguiente postcondición para el método borrar() en una lista con cursor

old.esPrimero() = cierto implica estaVacio() = cierto o old.siguiente() = actual() y esPrimero() =


cierto

indica que:

- Si el elemento a borrar es el primero de la lista, ésta queda vacía o el cursor se queda en el nuevo primer
elemento de la lista.

41. Indica que afirmación es CIERTA para el método métodos de borrar el elemento referenciado
por el cursor en una posición intermedia, en una lista implementada con celdas enlazadas, en
cualquiera de sus variantes (simple, doble o circular):

- Es de O(1) para todas las variantes

42. Sobre la implementación de una lista usando celdas doblemente enlazadas, ¿cuál es la opción
correcta?

- Todas la restantes respuestas son falsas.

-El borrado del elemento referenciado por el cursor es de O(1)

- La búsqueda de un elemento antes de la posición del cursor es de O(N)

43. Sobre la implementación de una lista usando celdas simplemente enlazadas, ¿qué afirmación es
cierta en la búsqueda de un elemento antes de la posición del cursor?

- Es de O(N^2)

44. Indica qué respuesta es CIERTA en la implementación de buscar primera ocurrencia de un


ítem desde la cabeza de una lista.

- Es de O(N) tanto para listas enlazadas simples, dobles o circulares.


45. La siguiente postcondición para la operación de buscar la primera ocurrencia de un item a
partir de la cabeza de la lista, en listas con cursor

si retVal = false implica esUltimo() = cierto

indica que:

- Si el elemento no es encontrado, el cursor queda en la última posición de la lista

46. La siguiente postcondición para la operación de buscar la primera ocurrencia de un item a


partir de la cabeza de la lista, en listas con cursor

si retVal = cierto implica actual() = item

indica que:

- Si el elemento es encontrado, el cursor queda apuntando al elemento encontrado

47. Considerando una listaSimple como aquella que permite acceder/modificar únicamente el
elemento cabeza¿Cuál de las siguientes afirmaciones sobre su uso para implementar una pila o una
cola es cierta?

- La implementación de una pila usando una listaSimple es directa

48. En una cola implementada usando un array:

- El único elemento accesible es el primero que se ha insertado, siempre y cuando éste no se haya
eliminado.

49. Considerando una listaSimple como aquella que permite acceder/modificar el elemento cabeza
¿Cuál de las siguientes afirmaciones es cierta?

- La implementación de una pila usando una listaSimple es directa

50. En una cola con tamaño ilimitado, cuál de las siguientes afirmaciones es cierta:

- El borrado tiene precondiciones y postcondiciones

51. En una pila con tamaño ilimitado, cuál de las siguientes afirmaciones es cierta:

- El borrado tiene una postcondición.

52. ¿Cuál de las siguientes afirmaciones sobre una cola es FALSA?

- En una cola es imprescindible la especificación de una operación que permita acceder a cualquier
elemento.

53. ¿Cuál de las siguientes afirmaciones es CIERTA?

- Una pila se puede implementar usando celdas enlazadas.

54. En una lista implementada con celdas doblemente enlazadas, cuál de las siguientes afirmaciones
es cierta:
- La buśqueda de un item a partir de la cabeza tiene la misma complejidad computacional que si usamos
celdas simplemente enlazadas.

55. En una lista implementada con celdas simplemente enlazadas, ¿cuál de las siguientes
afirmaciones es correcta?

- El recorrido en ambos sentidos es de mayor o igual complejidad computacional que si usamos celdas
doblemente enlazadas.

56. ¿Cuál de las siguientes afirmaciones es CIERTA para una cola de prioridad?

-Todas las restantes son falsas

57. ¿Cuál de las siguientes afirmaciones es CIERTA para una cola de prioridad?

- Si se implementa usando un montículo la inserción es O(log(N))

58. ¿Cual de las siguientes afirmaciones es cierta?

- En el emblocamiento variable no espaciado los registros pueden tener tamaños diferentes pero un
registro siempre pertenece a un bloque

- En el emblocamiento variable espaciado los registros pueden tener tamaños diferentes y los registros
pueden pertenecer a más de un bloque

- Cuando se transfiere información a disco, ésta se transfiere de bloque en bloque

59. ¿Cuál de las siguientes afirmaciones sobre ficheros de apilo es FALSA?

- En todos los casos los registros tendrán siempre el mismo número de campos

60. ¿Cuál de las siguientes afirmaciones es CIERTA en un fichero de apilo?

- El recorrido ordenado de todo el fichero es de orden O(N^2)

- En un fichero de apilo no estructurado los registros tienen longitud variable y hay que guardar el
identificador de los atributos además de su valor.

-La reorganización del fichero es de orden O(N)

61. ¿Cuál es la principal ventaja de un fichero de apilo?

- Que las inserciones son muy rápidas

62. ¿Cuál de las siguientes afirmaciones es CIERTA en un fichero secuencial?

- La inserción en la zona maestra es de orden O(N) y en la de derrama de orden O(1)

- La búsqueda de un registro por la clave en la zona maestra es de orden O(logN)

- Sólo se puede usar un campo clave y éste sólo mejora la eficiencia de la zona maestra

63. El recorrido ordenado en un fichero secuencial es:

- de orden O(N) si se recorre la zona maestra en orden ascendente de la clave


64. ¿Cuál de las siguientes afirmaciones es CIERTA sobre la zona de derrama en un fichero
secuencial?

- Facilita las inserciones pero pierden eficiencia las operaciones que se pueden beneficiar de la clave.

Potrebbero piacerti anche