Examen Final - 75.41. Algoritmos y Programación II

Cátedra: Mandrafina
Fecha: Segundo Cuatrimestre 2004
Día: 24/02/2005

Esta página está incompleta; podés ayudar completando el material.

Enunciado

Punto I

Describa diferencias conceptuales entre as variables puntero y el resto de las variables.

Punto II

En un árbol B de orden m = 5 se insertan las claves 1,2,3,…, n.
(Cantidad máxima de claves por página: m - 1, Cantidad mínima de claves por página: m / 2)

  • ¿Qué claves originan la división de un nodo?
  • ¿Qué claves hacen que la altura del árbol crezca?

Justificar.

Punto III

Describa cuatro elementos escenciales en el diseño de un Tipo de Dato Abstracto.

Punto IV

Insertar las siguientes Claves en el orden indicado en un Árbol AVL.
( K, A, I, C, U, L, T, W, O, B )

Punto V

Escribir la implementación de la primitiva

 void eliminarArbol(ArbolBinario& arbol)

del TDA Árbol Binario en forma recursiva.

Punto VI

Escribir una función que determine si un Grafo dado es Orientado o no. (Para la implementación requerida un Grafo es No Orientado Si Existe una Arista (V,W) ⇔ (W,V)).

Punto VII

Explicar qué representa la referencia this en un método. Dar ejemplos.

Punto VIII

Explique los conceptos de Redefinición y Polimorfismo. ¿Qué relación tienen entre ellos y con la Herencia?

Punto IX

Implementar las clases que modelen una Línea de Producción en una fábrica, cumpliendo las características enumeradas a continuación.

Una Línea de Producción consta de un conjunto de Procesos ordenados secuencialmente, por los que cada producto debe pasar. Cada Proceso está identificado por un nombre y posee una duración estimada [minutos]. Un Proceso sólo puede ser aplicado a un producto a la vez.

La clase Línea de Producción debe proveer métodos que permitan:

  • conocer el tiempo total del proceso de fabricación para un producto,
  • agregar y retirar Procesos,
  • obtener el nombre del Proceso en el que se encuentra un producto, dado el tiempo transcurrido desde que ingresó a la Línea de Producción.

Resolución

Punto VI

bool noOrientado(Grafo *unGrafo)
{
        Vertice *verticeAProcesar;
        Arista *arista;
        Arista *aristaDelHijo;
        bool noOrientado;
        IteradorConjunto *itVertGraf = nuevoIterador(getConjuntoDeVertices(unGrafo));
        verticeAProcesar = obtenerElemento(itVertGraf);
 
        while (!fin(itVertGraf) && noOrientado))
        {
                IteradorConjunto *iteradorAristas = nuevoIterador(getAristasSalientes(vericeAProcesar));
 
                while (!fin(iteradorAristas && noOrientaado))
                {
                        arista = obtenerElemento(iteradorAristas);
                        IteradorConjunto *iteradorAristasDelHijo = nuevoIterador(getAristasSalientes(arista->verticeDestino));
                        noOrientado = false;
 
                        while (!fin(iteradorAristasDelHijo) && !noOrientado)
                        {
                                aristaDelHijo = obtenerElemento(iteradorAristasDelHijo);
 
                                if (aristaDelHijo->verticeDestino == verticeAProcesar && aristaDelHijo->info == arista->info)
                                        noOrientado = true;
                                else
                                        irAlSiguiente(iteradorAristasDelHijo);
                        }
 
                        eliminarIterador(iteradorAristasDelHijo);
                        irAlSiguiente(iteradorAristas);
                }
 
                eliminarIterador(iteradorAristas);
                irAlSiguiente(itVertGraf);
        }
 
        eliminarIterador(itVertGraf);
        return noOrientado;
}

Discusión

Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá.
materias/75/41/final_mandrafina_20050224_1.txt · Última modificación: 2009/03/02 19:24 por pab4321
 
Excepto donde se indique lo contrario, el contenido de esta wiki se autoriza bajo la siguiente licencia: CC Attribution-Noncommercial-Share Alike 3.0 Unported


Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki