Programación Orientada a Objetos en Java
48 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

¿Cuál de los siguientes factores se refiere a la capacidad del software para manejar entradas no esperadas?

  • Facilidad de uso
  • Robustez (correct)
  • Eficiencia
  • Correctitud
  • ¿Qué permite la extensibilidad en un software?

  • Ejecutarse en diferentes sistemas operativos
  • Usar el código en otros programas
  • Agregarle nueva funcionalidad (correct)
  • Requerir pocos recursos de cómputo
  • ¿Cuál es la función de las excepciones en un programa?

  • Manejar eventos inesperados durante la ejecución (correct)
  • Detectar condiciones esperadas
  • Declarar métodos de clases
  • Mejorar la eficiencia del código
  • En Java, ¿qué clase se utiliza como base para las excepciones?

    <p>Exception</p> Signup and view all the answers

    ¿Qué implica la portabilidad de un software?

    <p>Su capacidad de ejecutarse con mínimas modificaciones en otro sistema</p> Signup and view all the answers

    ¿Qué es una interfaz en programación orientada a objetos?

    <p>Una colección de métodos que deben ser implementados</p> Signup and view all the answers

    ¿Cuál de las siguientes opciones describe mejor la reusabilidad del código?

    <p>Posibilidad de usar código existente en otros programas</p> Signup and view all the answers

    ¿Cuál es el propósito de una clase wrapper en programación?

    <p>Almacenar datos primitivos como objetos</p> Signup and view all the answers

    ¿Qué almacena un nodo interno en un árbol de expresión aritmética?

    <p>Una operación matemática</p> Signup and view all the answers

    ¿Cuál es el propósito del algoritmo 'Evaluar(árbol_exp)'?

    <p>Calcular el valor de una expresión a partir de su árbol de expresión</p> Signup and view all the answers

    ¿Qué ocurre cuando se intenta agregar una raíz a un árbol que ya tiene una?

    <p>Se lanza un error</p> Signup and view all the answers

    En un árbol binario, ¿qué representa un nodo hoja?

    <p>Un nodo que no tiene hijos</p> Signup and view all the answers

    ¿Qué valor obtiene un nodo interno en un árbol al evaluarse?

    <p>El resultado de aplicar su operación a los valores de sus hijos</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones sobre el árbol binario es correcta?

    <p>Puede contener un solo nodo</p> Signup and view all the answers

    ¿Qué método se utiliza para probar si un nodo tiene un hijo izquierdo?

    <p>hasLeft(v)</p> Signup and view all the answers

    ¿Qué error ocurre al eliminar un nodo que tiene dos hijos en un árbol binario?

    <p>Ocurre un error</p> Signup and view all the answers

    ¿Cuál es la función principal de 'remove(k)' en un diccionario?

    <p>Remover la entrada con clave k y retornar su valor</p> Signup and view all the answers

    ¿Qué método se utiliza para verificar si un diccionario está vacío?

    <p>isEmpty()</p> Signup and view all the answers

    ¿Qué es una tabla hash?

    <p>Una estructura que usa una función hash y un arreglo de buckets</p> Signup and view all the answers

    En los diccionarios no ordenados, ¿cómo se comparan las claves?

    <p>Por igualdad</p> Signup and view all the answers

    ¿Qué operación retorna un iterador de las claves en un diccionario?

    <p>Keys()</p> Signup and view all the answers

    ¿Qué se entiende por 'hash abierto' en el contexto de tablas hash?

    <p>Usar una lista en cada componente para manejar colisiones</p> Signup and view all the answers

    ¿Cuál de las siguientes afirmaciones es incorrecta sobre la operación 'find(k)'?

    <p>Debe eliminar una entrada con clave k</p> Signup and view all the answers

    ¿Qué sucede cuando se utiliza el método 'insert(k,v)' en un diccionario?

    <p>Agrega una nueva entrada y retorna la entrada creada</p> Signup and view all the answers

    ¿Cuál es la característica clave de un árbol AVL?

    <p>Mantiene una altura proporcional al logaritmo del número de nodos.</p> Signup and view all the answers

    ¿Qué se debe verificar al realizar la eliminación en un árbol AVL?

    <p>De qué lado se eliminó el nodo para realizar el rebalanceo.</p> Signup and view all the answers

    ¿Cuál es el resultado de una rotación doble izquierda en un árbol AVL?

    <p>Se mejora el balance del nodo que tiene exceso de altura en su subárbol izquierdo.</p> Signup and view all the answers

    ¿Cuál es la función de la segunda función hash H2 en el hashing doble?

    <p>Identificar buckets ocupados y gestionar colisiones.</p> Signup and view all the answers

    ¿Qué operación se modifica en un árbol AVL cuando se inserta un nodo nuevo?

    <p>El rebalanceo de nodos.</p> Signup and view all the answers

    En una función hash, ¿cuál es una opción común para H2(k)?

    <p>$q - (k ext{ mod } q)$ donde $q$ es un número primo.</p> Signup and view all the answers

    ¿Qué tipo de árboles son los árboles AVL?

    <p>Árboles binarios de búsqueda auto-balanceados.</p> Signup and view all the answers

    ¿Qué significa O(log2(n)) en el contexto de árboles binarios de búsqueda?

    <p>El tiempo de búsqueda crece logarítmicamente con el número de elementos.</p> Signup and view all the answers

    ¿Cuál es la complejidad del algoritmo Merge Sort en el peor de los casos?

    <p>O(n*log2(n))</p> Signup and view all the answers

    ¿Qué caracteriza al algoritmo Heap Sort?

    <p>Se basa en una cola con prioridad.</p> Signup and view all the answers

    En el peor de los casos, ¿cuál es la complejidad del algoritmo Quick Sort?

    <p>O(n^2)</p> Signup and view all the answers

    ¿Qué permite hacer un archivo de acceso directo?

    <p>Leer y modificar registros en cualquier orden.</p> Signup and view all the answers

    ¿Cuál es la función del algoritmo seek en relación con los archivos?

    <p>Mover el puntero del archivo a un byte específico.</p> Signup and view all the answers

    ¿Qué implica la serialización de un objeto?

    <p>Salvar el estado del objeto en un stream.</p> Signup and view all the answers

    En la implementación de archivos indexados, ¿qué tipo de archivos son necesarios?

    <p>Un archivo de índice y un archivo de datos.</p> Signup and view all the answers

    En Quick Sort, ¿cómo se determina el punto de división del arreglo?

    <p>Se escoge un pivote que determina la disposición de los elementos.</p> Signup and view all the answers

    ¿Cuál es una desventaja del uso de un arreglo ordenado?

    <p>Acceso lento a los elementos que no están al principio</p> Signup and view all the answers

    ¿Qué característica define al árbol B+?

    <p>Almacena entradas (clave, valor) solo en las hojas</p> Signup and view all the answers

    ¿Qué tipo de complejidad tienen los árboles AVL y 2-3 para buscar y actualizar?

    <p>Complejidad logarítmica</p> Signup and view all the answers

    ¿Cuál es una ventaja de usar pilas en estructuras de datos?

    <p>Inserción rápida</p> Signup and view all the answers

    ¿Qué aspecto negativo se relaciona con la estructura de un árbol binario?

    <p>Algoritmo de eliminación complejo</p> Signup and view all the answers

    ¿Qué propiedad caracteriza al árbol B?

    <p>Múltiples claves en los nodos internos</p> Signup and view all the answers

    ¿Cuál es la desventaja principal de usar un arreglo no ordenado?

    <p>Inserciones y eliminaciones lentas</p> Signup and view all the answers

    ¿Cuál es la principal ventaja de usar un árbol Red-Black?

    <p>Búsqueda rápida</p> Signup and view all the answers

    Study Notes

    Factores de Calidad

    • Factores externos: Características de calidad del software visibles al usuario, sin necesidad de conocer el código fuente.
    • Factores internos: Características de calidad del software visibles al programador, que implica conocer el código fuente.
    • Corrección: El programa produce la salida esperada para entradas dadas, cumpliendo con la especificación.
    • Robustez: Capacidad del programa para manejar entradas inesperadas o no contempladas, respondiendo adecuadamente (no colapsando).
    • Extensibilidad: Facilidad para añadir nuevas funcionalidades al software sin afectar el funcionamiento existente.
    • Portabilidad: Adaptabilidad del software a diferentes entornos de hardware o sistemas operativos con poco o ningún cambio.
    • Reutilización: Posibilidad de utilizar el código fuente en otros programas, para generar código ya existente y ahorrar tiempo.
    • Eficiencia: Requiere pocos recursos informáticos (CPU y memoria), ejecutando tareas rápidamente.
    • Facilidad de uso: Intuitividad y facilidad de manejo para usuarios con diferentes niveles de experiencia.

    Excepciones

    • Excepciones: Eventos inesperados durante la ejecución de un programa, como errores o entradas incorrectas.
    • Manejo de excepciones (POO): En la programación orientada a objetos, las excepciones son objetos que indican una condición inesperada. Otros módulos del programa capturan la excepción y reparan la situación.
    • Excepciones en Java: Las excepciones en Java son subclases de la clase Exception. Los métodos deben especificar en su signatura las excepciones que pueden lanzar. Las excepciones se lanzan con la sentencia "throw".

    Interfaces

    • Interfaces: Una colección de declaraciones de métodos sin atributos, que serán implementadas por una o más clases. Las clases que implementan la interfaz deben implementar todos los métodos definidos por la interfaz.

    Clases Wrapper

    • Clases Wrapper: Facilitan tratar datos primitivos (int, boolean, etc.) como objetos. Se utilizan por razones de tipo y polimorfismo.

    Genericidad

    • Genericidad: Mecanismo para crear estructuras de datos y clases cuya funcionalidad es independiente del tipo de datos que contienen.
    • Parametrización: Se establece un tipo variable durante la compilación para crear un esquema genérico.

    Estructuras de Datos

    • Estructura de datos: Forma de organizar un conjunto de datos para facilitar su manipulación y acceso tanto global como particular.

    Algoritmos

    • Algoritmo: Conjunto de pasos bien definidos para realizar una tarea específica en tiempo finito.
    • Orden de tiempo de un algoritmo: Función T(n) que representa el tiempo de ejecución del algoritmo en función del tamaño de la entrada (n)
    • Notación asintótica (big-oh): Descripción del comportamiento de un algoritmo (i.e., crecimiento del tiempo de ejecución) a medida que la entrada crece.

    Secuencias

    • Secuencia: Una colección ordenada de elementos homogéneos (del mismo tipo).
    • Ventajas de las listas en arreglos: Residencia principal de memoria, recuperación de componentes constante (O(1)),
    • Desventajas de las listas en arreglos: Tamaño máximo definido, inserción/eliminación de elementos en orden lineal (O(n))

    Pilas

    • TDA Pila: Una colección de objetos actualizada siguiendo una política LIFO (último en entrar, primero en salir).
    • Operaciones de Pila: Push(e) – inserta un elemento e en la cima, Pop() – elimina y devuelve el elemento superior, isEmpty()- retorna verdadero si la pila está vacía, top() – devuelve el elemento superior sin eliminarlo, size() - devuelve el número de elementos.

    Colas

    • TDA Cola: Una colección de objetos actualizada siguiendo una política FIFO (primero en entrar, primero en salir).
    • Operaciones de Cola: Enqueue(e) – inserta un elemento e al final, Dequeue() – elimina y devuelve el elemento del principio, isEmpty() – retorna verdadero si la cola está vacía, Front() – devuelve el elemento del principio sin eliminarlo, size() - devuelve el número de elementos.

    Listas Enlazadas

    • Lista enlazada: Una secuencia que contiene estructuras de datos donde cada elemento apunta al siguiente elemento.

    Árboles

    • Árbol: Un tipo de estructura de datos que organiza los elementos jerárquicamente.
    • Nodo hoja: Un nodo sin hijos en un árbol.
    • Nodo interno: Un nodo que posee uno o más nodos hijos en un árbol.
    • Raíz: El nodo superior de un árbol.
    • Hijos de un nodo: Los nodos que están directamente conectados al nodo.
    • Padre de un nodo: El nodo que se encuentra encima de otro nodo.
    • Hermano de un nodo: Un nodo que tiene el mismo padre que otro nodo.
    • Recorridos de un árbol: Forma sistemática de visitar los nodos del árbol (preorden, postorden, inorden y por niveles).
    • Altura de un árbol: Longitud del camino más largo desde la raíz a una hoja.

    Árboles Binarios de Búsqueda

    • Árbol binario de búsqueda (ABB): Una estructura de datos jerarquizada en forma de árbol en la que cada nodo tiene como máximo 2 hijos.
    • Propiedad de los ABB: Para cada nodo v, todos los valores en el subárbol izquierdo están por debajo de v y los valores en el subárbol derecho están por encima de v.
    • Operaciones: Buscar, eliminar e insertar un nodo.

    Árboles Binarios

    • Árbol binario: Estructura de datos jerarquizada en la que cada nodo tiene como máximo dos nodos hijos.
    • Ordenamiento: Orden que deben cumplir los nodos hijos de un nodo.
    • Hijos: Los nodos inmediatos que descienden de un nodo padre.

    Árboles AVL

    • Árbol AVL: Árbol binario de búsqueda equilibrado. Se auto-equilibra para evitar problemas de rendimiento.

    Árboles 2-3-4

    • Árbol 2-3-4: Árbol de búsqueda que generaliza la idea de los árboles 2-3, permitiendo un número variable de claves por nodo.

    Tabla Hash

    • Tabla Hash: Estructura de datos que implementa mapeos. Puede proveer búsquedas/inserciones/eliminaciones en tiempo promedio O(1)

    Heap

    • Heap: Estructura de datos que busca el elemento de mayor prioridad.

    Grafos

    • Grafo: Conjunto de vértices y aristas (con o sin dirección). Pueden ser dirigidos y no dirigidos.
    • Vértices: Puntos del grafo.
    • Aristas: Conexiones entre vértices.
    • Grado (de un vértice): Cantidad de aristas conectadas a un vértice.

    Recorridos de Grafos

    • DFS(Depth-First Search): Algoritmo recursivo para recorrer un grafo.
    • BFS (Breadth-First Search): Algoritmo no recursivo para recorrer un grafo que visita todos los nodos adyacentes antes de pasar a los siguientes niveles.
    • Recorrido por niveles: Se visita a todos los nodos de un mismo nivel antes de visitar los del siguiente.

    Camminos en Grafos

    • Camino: Secuencia de vértices y aristas que conecta dos vértices.
    • Camino de costo mínimo: El algoritmo de Dijkstra busca el camino más corto entre dos vértices dados en un grafo, considerando las aristas ponderadas (con costo).
    • Camino entre todos los vértices: El algoritmo de Floyd-Warshall permite hallar el camino más corto entre todos los pares de vértices en un grafo ponderado.

    Serialización

    • Serialización: Proceso de convertir el estado de un objeto en un formato que puede ser almacenado y recuperado.
    • Archivos de acceso directo: Permiten acceder a cualquier registro sin necesidad de leer los anteriores. Se puede utilizar en archivos indexados.
    • Archivos indexados: Se utiliza un índice (tabla) para acceder rápidamente a los datos.

    Compresión de Datos

    • Compresión de datos: Reducción del tamaño de un archivo, manteniendo la información original.
    • Compresión con pérdida: Se pierde información durante el proceso de compresión.
    • Compresión sin pérdida: No se pierde información durante el proceso de compresión.
    • Algoritmo Huffman: Algoritmo de compresión (sin pérdida) que asigna códigos a los caracteres de acuerdo a su frecuencia.

    Árbol B y B+

    • Árbol B: Generalización del árbol 2-3, permitiendo un número variable de claves por nodo. Propiedades: todos los nodos a la misma profundad tienen el mismo número de claves.
    • Árbol B+: Similar al árbol B, pero los nodos internos solo contienen claves, lo que mejora las operaciones de recorrido.

    Ordenamiento

    • Algoritmos de Ordenamiento: Métodos para ordenar una secuencia de elementos. Se diferencian por tiempo de ejecución, uso de memoria y complejidad.
    • Bubble Sort: Ordenamiento que recorre el arreglo y compara elementos adyacentes intercambiándolos si están fuera de orden.
    • Insertion Sort: Ordenamiento que inserta un elemento en la posición correcta en una secuencia organizada de manera creciente.
    • Merge Sort: Divide y ordena – método recursivo que divide un arreglo en subconjuntos más pequeños, los ordena y luego los combina.
    • Heap Sort: Método que utiliza una cola con prioridades para ordenar un arreglo.
    • Quick Sort: Divide y ordena – método recursivo que elige un elemento como pivote y divide el arreglo en dos subarreglos, unos menores y otros mayores que el pivote.

    Studying That Suits You

    Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

    Quiz Team

    Related Documents

    Description

    Este cuestionario cubre conceptos clave de programación orientada a objetos en Java, incluidos excepciones, reusabilidad, y estructuras de datos como árboles. Responde preguntas sobre la extensibilidad, portabilidad, e interfaces en el desarrollo de software.

    More Like This

    Use Quizgecko on...
    Browser
    Browser