Instituto de Computación - Facultad de Ingeniería - Universidad de la República
|
|
- Santiago Ayala Rubio
- hace 8 años
- Vistas:
Transcripción
1 Parcial de Programación 2 Julio de 2011 Generalidades: La prueba es individual y sin material. Duración: 3hs. Sólo se contestan dudas acerca de la letra de los ejercicios. Escriba las hojas de un sólo lado y con letra clara. Resuelva ejercicios diferentes en hojas diferentes. Numere cada hoja, indicando en la primera el total. Coloque su nro. de cédula y nombre en cada hoja. Se permite usar funciones y procedimientos auxiliares en todos los ejercicios, excepto en aquellos en los que se indique lo contrario. Ejercicio 1 (30 puntos) Considere una agenda de teléfonos implementada como un árbol general de caracteres (de '0' a '9'), donde la raíz no tiene información y cada nodo representa a un dígito de números telefónicos. Las listas de hermanos están ordenadas de forma lexicográfica. El camino de la raíz a una hoja determina un número telefónico de la agenda, guardándose en cada hoja el nombre del contacto asociado a ese número. Por ejemplo, el siguiente árbol contiene los contactos: 104 bombero, 105 ambulancia, 109 patrullero, 16 hora y 911 emergencia. Se pide: a) Definir la representación en Modula-2 del tipo Agenda, árbol general de caracteres implementado como un árbol primer hijo- siguiente hermano con la información del contacto en las hojas. Considere que el tipo de la información del contacto es: TYPE InfoContacto = ARRAY [ ] OF CHAR; b) Implementar, accediendo directamente a la representación, una función ObtenerContacto que, dados un número de teléfono y una Agenda, retorne la información del contacto asociado a ese número. La función tiene como precondiciones que el número de teléfono no es vacío y que debe tener exactamente un contacto asociado (esto es, que indica un camino de la raíz a una hoja). PROCEDURE ObtenerContacto (tel: Telefono; agenda: Agenda): InfoContacto; El tipo Telefono, de los números de teléfono, es una lista de caracteres. Utilice las operaciones Primero y Resto del TAD Lista para operar sobre el parámetro tel; considere que estas operaciones ya están implementadas. La operación Resto retorna un alias al resto de la lista parámetro (sin su primer elemento). c) Implementar, accediendo directamente a la representación, una función ImprimirAgenda que imprima en pantalla la información guardada en la Agenda que se pasa como parámetro. PROCEDURE ImprimirAgenda (agenda: Agenda); El formato de impresión, que muestra la estructura de árbol finitario que representa la agenda, se especifica con 1
2 el siguiente ejemplo: Si tenemos una variable miagenda con el árbol de ejemplo (ilustrado previamente), entonces ImprimirAgenda(miagenda) imprime: =bombero --5=ambulancia --9=patrullero -6=hora =emergencia SOLUCIÓN PARTE A) TYPE InfoContacto = ARRAY [0.. MAX] OF CHAR; Agenda = POINTER TO NodoAgenda; NodoAgenda = RECORD digito: CHAR; sighermano: Agenda; CASE eshoja: BOOLEAN OF TRUE: contacto: InfoContacto FALSE: primerhijo: Agenda PARTE B) PROCEDURE ObtenerContactoRec(tel: Telefono; agenda: Agenda): InfoContacto; VAR result: InfoContacto; IF Primero (tel) > agenda^.digito THEN result := ObtenerContactoRec(tel, agenda^.sighermano) (* Primero(tel) = agenda^.digito, debido al orden lexicográfico de los hermanos y a que por precondición tel es un camino válido dentro del árbol *) IF agenda^.eshoja THEN result := agenda^.contacto result := ObtenerContactoRec (Resto (tel), agenda^.primerhijo) END RETURN result END ObtenerContactoRec; PROCEDURE ObtenerContacto (tel: Telefono; agenda: Agenda): InfoContacto; (* PRE: tel es un teléfono de agenda *) RETURN ObtenerContactoRec (tel, agenda^.primerhijo) END ObtenerContacto; PARTE C) 2
3 PROCEDURE ImprimirRec(nivel: CARDINAL; agenda: Agenda); VAR i : CARDINAL; IF (agenda <> NIL) THEN FOR i := 1 TO nivel DO WriteString("-") WriteChar(agenda^.digito); IF (agenda^.eshoja) THEN WriteString("="); WriteString(agenda^.contacto); WriteLn WriteLn; ImprimirRec(nivel + 1,agenda^.primerHijo) ImprimirRec(nivel,agenda^.sigHermano); END END ImprimirRec; PROCEDURE ImprimirAgenda(agenda: Agenda); VAR IF agenda <> NIL THEN ImprimirRec (0, agenda^.primerhijo); END ImprimirAgenda; Ejercicio 2 (30 puntos) Considere el TAD ListaEsperaAviones de aviones identificados por su número de vuelo, de tipo CARDINAL, y que deben ser seleccionados en orden de llegada (orden FIFO) para aterrizar en un aeropuerto. A su vez, mientras los aviones esperan para aterrizar pude suceder que se vean apurados por algún motivo, como la falta de combustible o enfermedad de un pasajero, en cuyo caso estos aviones Urgentes deben ser considerados para aterrizaje antes que los Normales, y también deben ser seleccionados en orden de llegada (orden FIFO) para aterrizar en un aeropuerto. El TAD ListaEsperaAviones, no acotado, tiene las siguientes operaciones constructoras, selectoras/ destructoras y predicados: VaciaListaEsperaAviones, crea una ListaEsperaAviones vacía. InsertarAvion, permite insertar un avión en una ListaEsperaAviones. Es una precondición que el avión a insertar no esté ya en ListaEsperaAviones. Nota: los aviones insertados son considerados Normales. ObtenerSigAvion, retorna el siguiente avión que puede aterrizar de una ListaEsperaAviones siempre y cuando no esté vacía; si hay aviones Urgentes se selecciona el siguiente de ellos en orden de llegada (orden FIFO), sino se selecciona de los aviones Normales, también en orden de llegada. PromoverAvion, permite promover un avión de Normales a Urgentes, si el avión no está presente o ya está entre los Urgentes, entonces la ListaEsperaAviones no se ve modificada. Al promover un avión de Normales a Urgentes, dicho avión será considerado último en el orden FIFO entre los Urgentes. Esto es, será el último de los Urgentes en el orden de selección para aterrizar. BorrarSigAvion, permite borrar el avión que fue seleccionado para aterrizar, con el mismo criterio que ObtenerSigAvion, siempre y cuando no esté vacía la ListaEsperaAviones. EsVaciaListaEsperaAviones, retorna TRUE si y sólo si la ListaEsperaAviones está vacía. EstaEnListaEsperaAviones, retorna TRUE si y sólo si un avión dado está en una ListaEsperaAviones. 3
4 Se pide: DestruirListaEspera, que destruye la ListaEsperaAviones, liberando toda la memoria reservada. a) Especifique, en MODULA-2, un TAD ListaEsperaAviones no acotado con operaciones constructoras, selectoras/destructoras y predicados, usando pre y postcondiciones. b) Implemente el TAD ListaEsperaAviones, donde todas las operaciones tengan O(1) de tiempo de ejecución en el peor caso, excepto PromoverAvion y DestruirListaEspera. Escriba la representación del TAD y el código de las operaciones VaciaListaEsperaAviones, InsertarAvion, ObtenerSigAvion y PromoverAvion. No utilice TADs auxiliares. c) Cuál es el orden de tiempo de ejecución en el peor caso de la operación PromoverAvion?. Explique brevemente, sin realizar cálculos. SOLUCIÓN PARTE A) DEFINITION MODULE ListaEsperaAviones; TYPE ListaEsperaAviones; (* Opaco *) Avion = CARDINAL; (************ Constructoras *************) PROCEDURE VaciaListaEsperaAviones(): ListaEsperaAviones; (*POST: Crea una ListaEsperaAviones vacía *) (*PRE: NOT EstaEnListaEsperaAviones(a, l) *) PROCEDURE InsertarAvion(a : Avion; VAR l : ListaEsperaAviones); (*POST: Inserta el Avión 'a', como avión Normal, en la lista 'l' con criterio FIFO *) (************ Predicados ****************) PROCEDURE EsVaciaListaEsperaAviones(l : ListaEsperaAviones) : BOOLEAN; (*POST: Devuelve TRUE si y sólo si la lista 'l' está vacía *) PROCEDURE EstaEnListaEsperaAviones(a : Avion; l : ListaEsperaAviones) : BOOLEAN; (*POST: Devuelve TRUE si y sólo si 'a' está en la lista 'l' *) (************ Selectoras/Destructoras ****************) (*PRE: NOT EsVaciaListaEsperaAviones(l) *) PROCEDURE ObtenerSigAvion(l : ListaEsperaAviones) : Avion; (*POST: retorna el sig. avion que puede aterrizar de la lista 'l'. Si hay aviones "Urgentes" se selecciona el siguiente de ellos con criterio FIFO, sino, se selecciona un avion "Normal" con criterio FIFO. *) PROCEDURE PromoverAvion(nroVuelo : Avion; VAR l : ListaEsperaAviones); (*POST: Si está el avión con número de vuelo 'nrovuelo' como "Normal", éste será promovido a "Urgente". Esto es, será removido de los "Normales" y agregado con criterio FIFO en los "Urgentes" *) (*PRE: NOT EsVaciaListaEsperaAviones(l) *) PROCEDURE BorrarSigAvion(VAR l : ListaEsperaAviones); (*POST: Borra el avión de la lista 'l' que seria seleccionado para aterrizar si se usara ObtenerSigAvion, liberando la memoria reservada. *) PROCEDURE DestruirListaEspera(VAR l : ListaEsperaAviones); (* Destruye la lista 'l', liberando toda la memoria reservada. *) END ListaEsperaAviones. 4
5 PARTE B) IMPLEMENTATION MODULE ListaEsperaAviones; FROM Storage IMPORT ALLOCATE, DEALLOCATE; TYPE NodoAvion = POINTER TO RECORD avion : Avion; sig : NodoAvion; ColaAviones = RECORD primero : NodoAvion; ultimo : NodoAvion; ListaEsperaAviones = POINTER TO RECORD urgentes : ColaAviones; (* estructura FIFO para aviones urgentes *) normales : ColaAviones; (* estructura FIFO para aviones normales, que permite supresión de elementos arbitrarios *) (************ Operaciones Solicitadas *************) PROCEDURE VaciaListaEsperaAviones(): ListaEsperaAviones; VAR l : ListaEsperaAviones; NEW(l); l^.urgentes.primero := NIL; l^.urgentes.ultimo := NIL; l^.normales.primero := NIL; l^.normales.ultimo := NIL; RETURN l; END VaciaListaEsperaAviones; PROCEDURE InsertarAvion(a : Avion; VAR l : ListaEsperaAviones); VAR nuevonodo : NodoAvion; NEW(nuevoNodo); nuevonodo^.avion := a; nuevonodo^.sig := NIL; IF l^.normales.primero = NIL THEN l^.normales.primero := nuevonodo; l^.normales.ultimo := nuevonodo; l^.normales.ultimo^.sig := nuevonodo; l^.normales.ultimo := nuevonodo; END InsertarAvion; PROCEDURE ObtenerSigAvion(l : ListaEsperaAviones) : Avion; IF (l^.urgentes.primero <> NIL) THEN RETURN l^.urgentes.primero^.avion; RETURN l^.normales.primero^.avion; END ObtenerSigAvion; PROCEDURE PromoverAvion(nroVuelo : Avion; VAR l : ListaEsperaAviones); VAR mover, iter : NodoAvion; insertarenurgentes : BOOLEAN; insertarenurgentes := FALSE; 5
6 IF NOT EsVaciaListaEsperaAviones(l) THEN IF (l^.normales.primero^.avion = nrovuelo) THEN (* Es el primero *) mover := l^.normales.primero; l^.normales.primero := mover^.sig; IF (mover = l^.normales.ultimo) THEN l^.normales.ultimo := NIL; insertarenurgentes := TRUE; iter := l^.normales.primero; WHILE (iter^.sig <> NIL) AND (iter^.sig^.avion <> nrovuelo) DO iter := iter^.sig; IF (iter^.sig <> NIL) THEN (* encontre el avión a mover *) mover := iter^.sig; iter^.sig := mover^.sig; IF (l^.normales.ultimo = mover) THEN l^.normales.ultimo := iter; insertarenurgentes := TRUE; IF insertarenurgentes THEN IF (l^.urgentes.ultimo = NIL) THEN l^.urgentes.ultimo := mover; l^.urgentes.primero := mover; l^.urgentes.ultimo^.sig := mover; l^.urgentes.ultimo := mover; (* EsVacia*) END PromoverAvion; PARTE C) El orden de tiempo de ejecución en el peor caso es O(n), con n la cantidad de aviones "Normales". Esto surge de considerar que el peor caso se produce cuando al buscar el avión a promover en la estructura de aviones "Normales", o bien el avión está en el último lugar de la lista ó bien no está. En ambos casos el algoritmo recorre toda la estructura de aviones "Normales". Observar que la inserción en la estructura FIFO "Urgentes" es O(1). 6
7 ALTERNATIVA 1. Se consideran las mismas estructuras de datos que en la solución de la página pero se da una solución alternativa al procedimiento PromoverAvión. PROCEDURE PromoverAvion(nroVuelo : Avion; VAR l : ListaEsperaAviones); PROCEDURE EliminarNormal(nroVuelo:Avion; VAR l:listaesperaaviones): NodoAvion; VAR mover : NodoAvion; mover := NIL; IF (l^.normales.primero^.avion = nrovuelo) THEN (* Es el primero *) mover := l^.normales.primero; l^.normales.primero := mover^.sig; IF (mover = l^.normales.ultimo) THEN l^.normales.ultimo := NIL; iter := l^.normales.primero; WHILE (iter^.sig <> NIL) AND (iter^.sig^.avion <> nrovuelo) DO iter := iter^.sig; IF (iter^.sig <> NIL) THEN (* encontré el avión a mover *) mover := iter^.sig; iter^.sig := mover^.sig; IF (l^.normales.ultimo = mover) THEN l^.normales.ultimo := iter; RETURN mover; END EliminarNormal; PROCEDURE AgregarUrgente(avion : NodoAvion; VAR l : ListaEsperaAviones); IF (l^.urgentes.ultimo = NIL) THEN l^.urgentes.ultimo := avion; l^.urgentes.primero := avion; l^.urgentes.ultimo^.sig := avion; l^.urgentes.ultimo := avion; END AgregarUrgente; VAR mover : NodoAvion; IF NOT EsVaciaListaEsperaAviones(l) THEN (* Elimino nodo de normales *) mover := EliminarNormal(nroVuelo, l); IF mover <> NIL THEN (* Inserto nodo en urgentes *) AgregarUrgente(mover, l); END END PromoverAvion; 7
8 ALTERNATIVA 2 Se propone una solución completa con una estructura de datos diferente a la de la planteada en la página 4. ListaEsperaAviones = POINTER TO RECORD dummy, ultimourgente, ultimo: NodoAvion; PROCEDURE VaciaListaEsperaAviones(): ListaEsperaAviones; VAR result: ListaEsperaAviones; NEW (result); NEW (result^.dummy); result^.ultimo := result^.dummy; result^.ultimourgente := result^.dummy; RETURN result; END VaciaListaEsperaAviones; PROCEDURE PromoverAvion(nroVuelo : Avion; VAR l : ListaEsperaAviones); VAR mover, iter : NodoAvion; iter := l^.ultimourgente; (* iter^.sig es el primero de los "Normales" o NIL *) WHILE (iter^.sig <> NIL) AND (iter^.sig^.avion <> nrovuelo ) DO iter := iter^.sig IF iter^.sig <> NIL THEN IF (l^.ultimo = iter^.sig) AND (l^.dummy^.sig <> l^.ultimo) THEN (* cambia el ultimo si el que se mueve es el ultimo y no es el unico *) l^.ultimo := iter mover := iter^.sig; iter^.sig := mover^.sig; mover^.sig := l^.ultimourgente^.sig; l^.ultimourgente^.sig := mover; l^.ultimourgente := mover END END PromoverAvion; PROCEDURE EsVaciaListaEsperaAviones(l : ListaEsperaAviones) : BOOLEAN; RETURN (l^.ultimo = l^.dummy) END EsVaciaListaEsperaAviones; PROCEDURE ObtenerSigAvion(l : ListaEsperaAviones) : Avion; RETURN l^.dummy^.sig^.avion; END ObtenerSigAvion; Insertar es más sencillo por la celda dummy: PROCEDURE InsertarAvion(a : Avion; VAR l : ListaEsperaAviones); VAR nuevonodo : NodoAvion; NEW(nuevoNodo); nuevonodo^.avion := a; nuevonodo^.sig := NIL; l^.ultimo^.sig := nuevonodo; l^.ultimo := nuevonodo; END InsertarAvion; 8
Tecnólogo Informático- Estructuras de Datos y Algoritmos- 2009
Árboles Ejemplos de estructuras arborescentes: con forma de árbol Regla de Alcance: los objetos visibles en un procedimiento son aquellos declarados en él mismo o en cualquier ancestro de él (cualquier
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Características ARBOLES - CONCEPTOS Cada elemento del árbol se relaciona con cero o más elementos a quienes llama hijos. Si el árbol no
Más detallesEn cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.
Arboles-B Características Los árboles-b son árboles de búsqueda. La "B" probablemente se debe a que el algoritmo fue desarrollado por "Rudolf Bayer" y "Eduard M. McCreight", que trabajan para la empresa
Más detallesARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES
ARBOLES ARBOLES BINARIOS ORDENADOS. REPRESENTACIÓN Y OPERACIONES Introducción al tema a. Formar grupos de 4 personas b. Tomar una hoja en blanco y una lapicera o lápiz c. En la hoja en blanco diseña un
Más detallesProgramación 2 Práctico 9 - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario
Práctico - TADs Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario Objetivos Trabajar con los tipos abstractos de datos Árbol Binario de Búsqueda, Árbol Finitario y Árbol n-ario. Desarrollar y analizar
Más detallesDEFINICION. Ing. M.Sc. Fulbia Torres Asignatura: Estructuras de Datos Barquisimeto 2006
ARBOLES ESTRUCTURAS DE DATOS 2006 DEFINICION Un árbol (tree) es un conjunto finito de nodos. Es una estructura jerárquica aplicable sobre una colección de elementos u objetos llamados nodos; uno de los
Más detallesExamen de Programación 2 Diciembre de 2012
Ejercicio 1 ( puntos) Examen de Programación 2 Diciembre de 2012 La Administración Nacional de Puertos (ANP) quiere sistematizar la inspección de contenedores en tránsito en el puerto de Montevideo. El
Más detallesModulo 1 El lenguaje Java
Modulo 1 El lenguaje Java 13 - Codificación en Java Una de las grandes diferencias entre Java y Pascal en cuando a la codificación es que Java se trata de un lenguaje de los llamados case sensitive Esto
Más detallesPrimer Parcial de Programación 3 (1/10/2009)
Primer Parcial de Programación (/0/009) Instituto de Computación, Facultad de Ingeniería Este parcial dura horas y contiene carillas. El total de puntos es 0. En los enunciados llamamos C* a la extensión
Más detallesAmpliación de Estructuras de Datos
Ampliación de Estructuras de Datos Amalia Duch Barcelona, marzo de 2007 Índice 1. Diccionarios implementados con árboles binarios de búsqueda 1 2. TAD Cola de Prioridad 4 3. Heapsort 8 1. Diccionarios
Más detallesÁrboles. Cursos Propedéuticos 2015. Dr. René Cumplido M. en C. Luis Rodríguez Flores
Árboles Cursos Propedéuticos 2015 Dr. René Cumplido M. en C. Luis Rodríguez Flores Contenido de la sección Introducción Árbol genérico Definición y representación Árboles binarios Definición, implementación,
Más detallesSolución al Examen de Prácticas de Programación (Ingeniería Informática)
Solución al Examen de Prácticas de Programación (Ingeniería Informática) Junio 2006 Parte I. Cuestiones (3 puntos=50% nota del examen) 1) Se desea crear un conjunto de clases para representar en un programa
Más detallesTema 4.- Pilas y Colas
Apuntes elaborados por: Eduardo Quevedo, Raquel López y Aaron Asencio Revisado por: Javier Miranda el???? Tema 4.- Pilas y Colas Las pilas y colas son estructuras de datos que se utilizan generalmente
Más detallesExamen Principios de Programación Febrero 2012
Por favor siga las siguientes indicaciones: Escriba con lápiz. Escriba su nombre y número de documento en todas las hojas que entregue. Numere las hojas e indique el total de hojas en la primera de ellas.
Más detallesEstructuras de Datos. Montículos. Montículos. Montículos. Tema 3. Montículos. Definiciones básicas: Definiciones básicas:
Estructuras de Datos Tema. 1. Definiciones básicas 2. Implementación. Operaciones con montículos 4. Definiciones básicas: En un árbol binario completo todos los niveles del árbol (excepto tal vez el último)
Más detallesÁrboles AVL. Laboratorio de Programación II
Árboles AVL Laboratorio de Programación II Definición Un árbol AVL es un árbol binario de búsqueda que cumple con la condición de que la diferencia entre las alturas de los subárboles de cada uno de sus
Más detallesEl programa que permite el manejo de la base de datos tiene la siguiente funcionalidad:
El TAD Diccionario Cuando se usa un conjunto en el diseño de un algoritmo podría no ser necesario contar con operaciones de unión o intersección. A menudo lo que se necesita es simplemente manipular un
Más detallesCOLAS. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny
COLAS 2002 GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURA DE DATOS TEMA 4 Estructura de datos Cola ÍNDICE 4.1. Definición y ejemplos...3 4.2. El TAD
Más detallesSOLUCION PARCIAL TASK SCHEDULER. Task Scheduler
Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,
Más detallesESTRUCTURA DE DATOS: ARREGLOS
ESTRUCTURA DE DATOS: ARREGLOS 1. Introduccion 2. Arreglos - Concepto - Caracteristicas 3. Arreglos Unidimensionales 4. Arreglos Bidimensionales 5. Ventajas del uso de arreglos 6. Ejemplo 1. Introducción
Más detallesEstructura de datos Tema 3: El TAD Lista lineal. Universidad de Valladolid. Departamento de informática. Campus de Segovia
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 3: El TAD Lista lineal Prof. Montserrat Serrano Montero ÍNDICE El TAD lista lineal Implementación con estructuras
Más detallesExamen escrito de Programación 1
Examen escrito de Programación 1 Escuela de Ingeniería y Arquitectura Departamento de Informática e Ingeniería de Sistemas 2 de septiembre de 2015 Se debe disponer sobre la mesa en lugar visible un documento
Más detallesEjemplos de conversión de reales a enteros
Ejemplos de conversión de reales a enteros Con el siguiente programa se pueden apreciar las diferencias entre las cuatro funciones para convertir de reales a enteros: program convertir_real_a_entero print
Más detallesEstructuras de datos: Árboles binarios de
Estructuras de datos: Árboles binarios de búsqueda, Dep. de Computación - Fac. de Informática Universidad de A Coruña Santiago Jorge santiago.jorge@udc.es Árboles binarios de búsqueda, Table of Contents
Más detallesNIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS
1 NIVEL 15: ESTRUCTURAS RECURSIVAS BINARIAS Árboles Binarios y Árboles Binarios Ordenados 2 Contenido Árboles binarios Iteradores Árboles binarios ordenados 3 Árboles binarios Algunas definiciones para
Más detallesInstituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades:
Instituto de Computación. Facultad de Ingeniería. Universidad de la República Examen de Programación 2 03 de Agosto de 2006 Generalidades: La prueba es individual y sin material. La duración es 3 horas.
Más detallesEstructura de datos Tema 6: Tablas de dispersión (hashing)
Universidad de Valladolid Departamento de informática Campus de Segovia Estructura de datos Tema 6: Tablas de dispersión (hashing) Prof. Montserrat Serrano Montero ÍNDICE Conceptos básicos Funciones hash
Más detallesNota 2. Luis Sierra. Marzo del 2010
Nota 2 Luis Sierra Marzo del 2010 Cada mecanismo de definición de conjuntos que hemos comentado sugiere mecanismos para definir funciones y probar propiedades. Recordemos brevemente qué son las funciones
Más detallesPROGRAMACIÓN CONCURRENTE. Tema 5 Monitores
PROGRAMACIÓN CONCURRENTE Tema 5 Monitores 1 Indice Definición de los monitores Sincronización condicional usando monitores Algunos problemas con monitores 2 Problemas de las regiones críticas condicionales
Más detallesEstructura de datos (arreglos) Vectores y Matrices
Apunte del curso PROGRAMACIÓN (FI-UBA,, J. T. P. Ing. Z. CATALDI; A.T.P. Srta. A Pauluzzi, Sr. C Corradino, Sr. F Gómez Estructura de datos (arreglos) Hasta aquí se han visto distintos tipos de estructuras
Más detallesPráctica 7. TAD aplicación
bjetivos. Práctica 7. TAD aplicación Se trata de construir el TAD APLICACIN con una implementación acotada. Se introducen la dispersión (hashing) y las cachés como técnicas de implementación para mejorar
Más detallesIntroducción a la programación orientada a objetos
Introducción a la programación orientada a objetos 1. Introducción a la programación orientada a objetos 2. Las clases 3. El tipo Struct 4. Diferencias entre Class y Struct 5. Pilares de la Programación
Más detallesProgramación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011
Programación Avanzada SOLUCIÓN EXAMEN FEBRERO 2011 Por favor siga las siguientes indicaciones: Escriba con lápiz y de forma prolija. Escriba las hojas de un solo lado Escriba su nombre y número de documento
Más detallesLaboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO
Laboratorio 7 Motor de búsqueda web basado en el TAD Árbol Binario de Búsqueda GUIÓN DEL LABORATORIO 1.- Objetivos del laboratorio Diseño de clases en C++ Comprensión y uso del TAD Árbol Binario de Búsqueda
Más detallesSegundo parcial de Programación 2
Generalidades: Segundo parcial de Programación 2 a. La prueba es individual y sin material. b. La duración es 3hs. c. Sólo se contestan dudas acerca de la letra. 8 de Julio de 2016 d. Escriba las hojas
Más detallesCapítulo 6. ÁRBOLES.
67 Capítulo 6. ÁRBOLES. 6.1 Árboles binarios. Un árbol binario es un conjunto finito de elementos, el cual está vacío o dividido en tres subconjuntos separados: El primer subconjunto contiene un elemento
Más detallesaxtpv - Manual del usuario axtpv Profesional
axtpv Profesional 1 1. Introducción. axtpv POS Profesional es un producto para dispositivos Android creado para comercios de todo tipo, tanto de Restauración como de Retail. La funcionalidad puede cambiar
Más detallesEnunciado de la tercera práctica de programación I
UNIVERSIDAD NACIONAL DE EDUCACIÓN A DISTANCIA Enunciado de la tercera práctica de programación I Departamento de Lenguajes y Sistemas Informáticos Curso 2002-03 Se trata de realizar un programa en Modula-2
Más detallesEjemplo de Diseño. Algoritmos y Estructuras de Datos II. Departamento de Computación FCEyN UBA
Ejemplo de Diseño Algoritmos y Estructuras de Datos II Departamento de Computación FCEyN UBA Qué significa elegir estructuras de datos? En la etapa de especificación nos ocupamos de describir 'qué' queremos
Más detallesAlgoritmos y Estructuras de Datos II
8 de abril de 2015 Clase de hoy 1 Repaso Tipos concretos versus abstractos Tipos abstractos de datos 2 3 4 TAD Pila Especificación del TAD Pila Repaso Tipos concretos versus abstractos Tipos abstractos
Más detallesAcronis License Server. Guía del usuario
Acronis License Server Guía del usuario TABLA DE CONTENIDO 1. INTRODUCCIÓN... 3 1.1 Generalidades... 3 1.2 Política de licencias... 3 2. SISTEMAS OPERATIVOS COMPATIBLES... 4 3. INSTALACIÓN DE ACRONIS LICENSE
Más detallesIndice. .01 Introducci n. .02 Perfiles de usuario. .03 Ingreso al portal Mi Entel PCS Empresas. .04 Activación de los teléfonos móviles de la empresa
Manual SMS Empresas Indice MANUAL SMS EMPRESAS.01 Introducci n.02 Perfiles de usuario.03 Ingreso al portal Mi Entel PCS Empresas.04 Activación de los teléfonos móviles de la empresa.05 Funciones del SMS
Más detallesGuía Práctica para el Uso del Servicio de Software Zoho CRM
Guía Práctica para el Uso del Servicio de Software Zoho CRM Parte 4 Modificación de las Listas Estándar del Sistema Modificación del Menú Principal del Sistema Importación de información al Sistema Adición
Más detallesSolución Examen Febrero 2006
Solución Examen Febrero 2006 Lea detenidamente las siguientes instrucciones. No cumplir los requerimientos puede implicar la pérdida del examen. Formato Indique su nombre completo y número de cédula en
Más detallesEjercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1.
Ejercicios Resueltos del Práctico 4 Ejercicio 2 Considere la representación para Lista de Naturales y Árbol Binario de Naturales de la Figura 1. 1 2 struct NodoLista { 3 int elem ; 4 NodoLista * sig ;
Más detallesTAD Lineales: Pila, Cola y Lista
TAD Lineales: Pila, Cola y Lista Objetivos! Dar a conocer los TAD lineales pila, cola y lista! Presentar la especificación de cada uno de los TAD! Discutir implementaciones alternativas para cada uno de
Más detallesServicios Educativos Del Estado De Chihuahua Sistema Integral de Presupuestos y Materiales. Indice. Introducción... 2. Barra de Herramientas...
Indice Página Introducción... 2 Acceso al Sistema... 3 Barra de Herramientas... 4 Menú Principal... 5 Operación Catálogos Reportes Consultas Entradas Por Orden de Compra... 6 Entradas Directas... 8 Salidas
Más detalles2_trabajar con calc I
Al igual que en las Tablas vistas en el procesador de texto, la interseccción de una columna y una fila se denomina Celda. Dentro de una celda, podemos encontrar diferentes tipos de datos: textos, números,
Más detallesMANUAL DE CONTACTOS. Importar Enviar un comunicado Formatos de archivos soportados Crear una lista nueva
1 MANUAL DE CONTACTOS Importar Enviar un comunicado Formatos de archivos soportados Crear una lista nueva Los puntos más importantes a considerar son los siguientes: Un solo correo por celda, de otra forma
Más detallesObjetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero.
Objetivos de la práctica: - Practicar uso de ficheros: abrir, cerrar y tratamiento de información contenida en el fichero. Uso de Ficheros Todas las estructuras de datos vistas hasta ahora utilizan la
Más detallesLABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL
OBJETIVO Mejorar el nivel de comprensión y el manejo de las destrezas del estudiante para utilizar formulas en Microsoft Excel 2010. 1) DEFINICIÓN Una fórmula de Excel es un código especial que introducimos
Más detallesRESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA
UNED Centro Asociado de Cádiz RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA 1. OBJETOS Cualquier elemento del programa es un objeto. Un programa es un conjunto de objetos que se comunican entre sí
Más detallesPreliminares. Tipos de variables y Expresiones
Preliminares. Tipos de variables y Expresiones Felipe Osorio Instituto de Estadística Pontificia Universidad Católica de Valparaíso Marzo 5, 2015 1 / 20 Preliminares Computadoras desarrollan tareas a un
Más detallesGuía paso a paso para la cumplimentación del formulario de candidatura
Guía paso a paso para la cumplimentación del formulario de candidatura INDICE 1. INSTRUCCIONES GENERALES... 2 2. PARTENARIADO... 4 3. GRUPOS DE TAREAS... 8 4. INDICADORES... 14 5. CUMPLIMENTACIÓN DEL RESTO
Más detalles3. COLA DE PRIORIDAD DEFINICION (I)
3. COLA DE PRIORIDAD DEFINICION (I) Conjunto de elementos ordenados con las operaciones: Crear ( ) > ColaPrioridad EsVacio () > Boolean Insertar (ColaPrioridad, Item) > ColaPrioridad BorrarMínimo (ColaPrioridad)
Más detallesEstructuras de Datos y Algoritmos. Árboles de Expresión
Estructuras de Datos y Algoritmos Árboles de Expresión Año 2014 Introducción Los avances tecnológicos producen día a día una gran cantidad de información que debe ser almacenada y procesada en forma eficiente.
Más detallesárbol como un conjunto de nodos y líneas
ÁRBOLES CAPÍTULO 6 ÁRBOLES Desde el punto de vista conceptual, un árbol es un objeto que comienza con una raíz (root) y se extiende en varias ramificaciones o líneas (edges), cada una de las cuales puede
Más detallesSensor de Imagen ivu Series TG
Sensor de Imagen ivu Series TG Ayudas Operativas Cómo entrar y salir de depuración usando el Emulador El Emulador ivu es una aplicación de Windows que le permite operar en un entorno Windows exactamente
Más detallesPara crear una lista como la anterior, primero escribe la información, y después selecciona el texto y aplícale el formato de viñetas.
Módulo 3 Herramientas de Cómputo Listas, tabulaciones, columnas y cuadros de texto Listas En muchas ocasiones es necesario que enumeres diferentes elementos en tus documentos. Word no sólo reconoce números
Más detallesPráctico de Procesos, Hilos y Deadlock
Sistemas Operativos Práctico de Procesos, Hilos y Deadlock Universidad Nacional de Córdoba FaMAF Ejercicio 1.. Indique cuantas letras a imprime este programa, describiendo su funcionamiento. printf("a\n");
Más detallesINSTRUCTIVO PARA REGISTRO ELECTRÓNICO DE DEJA SIN EFECTO PERMISOS Y FERIADOS. Enero 2013. www.contraloria.cl
INSTRUCTIVO PARA REGISTRO ELECTRÓNICO DE DEJA SIN EFECTO PERMISOS Y FERIADOS Enero 2013 www.contraloria.cl Santiago, 14 de diciembre de 2012 Estimados/as Usuarios/as: Se les informa que a contar de hoy,
Más detallesCreación de Funciones de Conducción
Creación de Funciones de Conducción Requerimientos Para el desarrollo de esta actividad se requiere que: Contemos con un robot BoeBot armado con placa Arduino. Repetición En estos momentos habremos notado
Más detallesALGORITMICA Y PROGRAMACION POR OBJETOS I
ALGORITMICA Y PROGRAMACION POR OBJETOS I Nivel 2 Definiendo situaciones y manejando casos Marcela Hernández Hoyos Qué vamos a aprender en este nivel: Diferencia entre clase y objeto Modelar características
Más detallesUTILIZACIÓN DE RELOJES
UTILIZACIÓN DE RELOJES Para la utilización de Relojes en el Módulo Control de Personal, deberá definir lo que se indica seguidamente: 1- DEFINICION DEL MODELO DE RELOJ Los modelos son utilizados para identificar
Más detallesEsta extensión está obsoleta a partir de PHP 5.5.0, y será eliminada en el futuro
USAR MYSQL EN PHP PHP tiene una librería de funciones nativas para conectarse a las base de datos MySQL. Por un lado reconoce la librería mysql y por otro mysqli. Se recomienda el uso de mysqli dado que
Más detallesCAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP
CAPÍTULO 4. EL EXPLORADOR DE WINDOWS XP Características del Explorador de Windows El Explorador de Windows es una de las aplicaciones más importantes con las que cuenta Windows. Es una herramienta indispensable
Más detallesIntroducción a la calidad de código
Universidad de Buenos Aires Facultad De Ingeniería Introducción a la calidad de código [75.40] Algoritmos y Programación I 2do Cuatrimestre 2010 Cátedra: Ing. Pablo Guarna Autor: Bernardo Ortega Moncada
Más detallesIntroducción a la Computación TFA
Introducción a la Computación TFA Departamento de Informática Facultad de Ciencias Físico, Matemáticas y Naturales- UNSL Lenguaje de Diseño de Algoritmos Estructura de Control Condicional Simple y Múltiple
Más detallesÁRBOLES BINARIOS 2002. GRUPO # 22 Alumnos: Aguilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny
ÁRBOLES BINRIOS 2002 GRUPO # 22 lumnos: guilar Elba Barrios Miguel Camacho Yaquelin Ponce Rodríguez Jhonny ESTRUCTURS DE DTOS TEM 6 Estructuras de datos no lineales. Árboles binarios ÍNDICE 6.1. Introducción.
Más detallesOperación de Microsoft Word
Generalidades y conceptos Combinar correspondencia Word, a través de la herramienta combinar correspondencia, permite combinar un documento el que puede ser una carta con el texto que se pretende hacer
Más detallesCapítulo 12: Indexación y asociación
Capítulo 12: Indexación y asociación Conceptos básicos Índices ordenados Archivos de índice de árbol B+ Archivos de índice de árbol B Asociación estática Asociación dinámica Comparación entre indexación
Más detallesFigura 4.1 Clasificación de los lenguajes de bases de datos
1 Colección de Tesis Digitales Universidad de las Américas Puebla Romero Martínez, Modesto Este capítulo describen los distintos lenguajes para bases de datos, la forma en que se puede escribir un lenguaje
Más detallesINSTRUCTIVO PARA RESPONSABLES Y OPERADORES DE CAJA CHICA SIGA SISTEMA INTEGRADO DE GESTIÓN ADMINISTRATIVA
OPERADORES DE CAJA CHICA SIGA SISTEMA INTEGRADO DE GESTIÓN ADMINISTRATIVA Normativa Aplicable: Acuerdo 18/2005 Anexo Acuerdo 07/2005 Anexo Pto. 16 Tratamiento de Caja Chica Permite administrar todo el
Más detallesTEMA 5. CONTROL DE FLUJO DEL PROGRAMA. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ;
TEMA 5. CONTROL DE FLUJO DEL PROGRAMA 5.1 Sentencias Una sentencia es una expresión seguida de un punto y coma. Sentencia Instrucción Expresión Operadores + Operandos Sintaxis: Sentencia ; El ; es obligatorio
Más detallesI. Seguridad y Privilegios de los usuarios del Sistema emaksimus.
I. Seguridad y Privilegios de los usuarios del Sistema emaksimus. Este manual tiene como objetivo dar a conocer al encargado del sistema cómo están estructurados los permisos y privilegios de los usuarios
Más detallesCurso 2006/2007 Estructura de Datos y de la Información I. Informática, I. T. Informática de Gestión y de Sistemas PRÁCTICA 2
Curso 2006/2007 Estructura de Datos y de la Información I. Informática, I. T. Informática de Gestión y de Sistemas PRÁCTICA 2 1 El problema Desserts es un local de hostelería que sirve toda clase de postres.
Más detallesÁrboles Binarios Ordenados Árboles AVL
Árboles Binarios Ordenados Árboles AVL Estructuras de Datos Andrea Rueda Pontificia Universidad Javeriana Departamento de Ingeniería de Sistemas Recordatorio... Se acerca la fecha de la primera entrega
Más detallesA continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla.
4. TABLAS A continuación se describen cuáles son los elementos principales de las tablas, cómo crear una y cómo modificarla. 4.1. Principales Elementos Al momento de generar y diseñar una tabla es importante
Más detallesProf. Dr. Paul Bustamante
Carnet Nombre: Examen C++ Grupo A Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Pág.1 Índice 1. INTRODUCCIÓN... 1 2. EJERCICIO 1: AGENDA TELEFÓNICA (4.0 PTOS.)...1 3. EJERCICIO 2:
Más detallesGuías _SGO. Gestione administradores, usuarios y grupos de su empresa. Sistema de Gestión Online
Guías _SGO Gestione administradores, usuarios y grupos de su empresa Sistema de Gestión Online Índice General 1. Parámetros Generales... 4 1.1 Qué es?... 4 1.2 Consumo por Cuentas... 6 1.3 Días Feriados...
Más detallesEjercicio 1 (3 puntos).-
URJC Ingeniería Técnica de Gestión Abril 2011 Asignatura: SOFTWARE AVANZADO Normas: La prueba consta de 2 ejercicios. La máxima nota del examen es un 8. Siendo la práctica la que añade los 2 puntos que
Más detallesManual de Usuario Software Restaurante
Manual de Usuario Software Restaurante Ingresando al sistema (Manual) Se ingresa el usuario Se ingresa la clave Presiona Aceptar para ingresar el sistema Ingresando al Sistema (Táctil) Lista de Usuarios
Más detallesPROCEDIMIENTO DE ENLACE TCPIP
DISPOSITIVOS TCP/IP. Los dispositivos TCP/IP son equipos autónomos que funcionan de forma independiente a la PC y que tiene incorporado el procesamiento de identificación por medio de la huella digital,
Más detallesEstructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos
Estructuras de Datos. Estructuras de Datos para Conjuntos Disjuntos Santiago Zanella 2008 1 Introducción Para ciertas aplicaciones se requiere mantener n elementos distintos agrupándolos en una colección
Más detallesHerencia. 3.- Herencia. Declaración de una clase derivada en Delphi. Jerarquía de clases
Herencia 3.- Herencia La herencia nos permite definir datos y métodos que son generales (comunes a distintas clases) por separado de las que son particulares a cada clase. Esto se logra definiendo lo que
Más detallesLEY CONTRA EL DELITO DE LAVADO DE DINERO O ACTIVOS. CIRCULAR CNBS No. XXXX. CAPTURADOR Lavado de Activos v5.0
LEY CONTRA EL DELITO DE LAVADO DE DINERO O ACTIVOS CIRCULAR CNBS No. XXXX CAPTURADOR Lavado de Activos v5.0 COMISION NACIONAL DE BANCOS Y SEGUROS HONDURAS C. A. ( WWW.CNBS.GOV.HN ) #$#%&& &&'#& '# El Sistema
Más detallesEstructura de datos y de la información Boletín de problemas - Tema 7
Estructura de datos y de la información Boletín de problemas - Tema 7 1. Un concesionario de coches tiene un número limitado de M modelos, todos en un número limitado de C colores distintos. Cuando un
Más detallesESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas.
ESTÁNDAR DESEMPEÑO BÁSICO Recopila información, la organiza y la procesa de forma adecuada, utilizando herramientas tecnológicas. Sala de sistemas, Video proyector, Guías RECURSOS ACTIVIDADES PEDAGÓGICAS
Más detallesEstructuras de datos: Proyecto 2
Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe
Más detallesElección de estructuras
Elección de estructuras Algoritmos y Estructuras de Datos 2 Departamento de Computación, Facultad de Ciencias Exactas y Naturales, Universidad de Buenos Aires 2 de mayo de 2016 Repaso: Qué significa elegir
Más detallesCapítulo V Operaciones Booleanas
85 Capítulo V Operaciones Booleanas 5.1 Introducción Es muy posible que en muchos casos sea necesario comparar dos objetos y determinar cuál es su parte común. Esto implica intersectar los dos objetos
Más detallesPHP y MySQL. Indice: Switch Bucles For While do...while
PHP y MySQL Indice: Switch Bucles For While do...while Switch switch...case es otra opción para trabajar con condiciones. Y suplanta al if, cuando lo único que se quiere hacer es comparar si son iguales
Más detallesMANUAL DE USUARIO. Sistema Administrativo XENX ERP. Modulo Suministros Almacén Requisición Compras Proveedores
Pag. 1 MODULO SUMINISTROS ALMACEN (requisiciones de compras) Ruta: Suministros Almacén Requisiciones de Compras Descripción Del Modulo. Este modulo permite emitir requisiciones de compras por almacén de
Más detallesMANUAL DE USUARIO DEL MODULO DE CONTABILIDAD DEL SAFT
MANUAL DE USUARIO DEL MODULO DE CONTABILIDAD DEL SAFT MODULO DE CONTABILIDAD CONTENIDO 1. DEFINIR PARAMETROS------------------------------------------------------------3 2. CATALOGO DE CUENTAS CONTABLES-----------------------------------------5
Más detallesLa pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.
Microsoft Word Microsoft Word es actualmente (2009) el procesador de textos líder en el mundo gracias a sus 500 millones de usuarios y sus 25 años de edad. Pero hoy en día, otras soluciones basadas en
Más detallesGuías. _Mi Entel. SMS Empresas
Guías _Mi Entel SMS Empresas SMS Empresas SMS empresas es un servicio que le permitirá a su empresa enviar mensajes de texto de forma masiva desde una web de gestión del servicio en Mi Entel Empresas o
Más detallesIntegración contable del software Nómina con otros sistemas de Gálac Software (Contabilidad, IVA y SAW)
Integración contable del software Nómina con otros sistemas de Gálac Software (Contabilidad, IVA y SAW) El proceso de contabilización en el sistema de Nómina es a través de la generación de comprobantes
Más detallesGENERACIÓN DE TRANSFERENCIAS
GENERACIÓN DE TRANSFERENCIAS 1 INFORMACIÓN BÁSICA La aplicación de generación de ficheros de transferencias permite generar fácilmente órdenes para que la Caja efectúe transferencias, creando una base
Más detallesTema 1. Introducción a las estructuras y tipos de datos
Tema 1. Introducción a las estructuras y tipos de datos http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia,bmartine,morales,sanchiz}@icc.uji.es Estructuras
Más detallesComponente del sistema operativo que maneja el acceso a los archivos.
HFS (MAC) Hierachical File System File Manager Componente del sistema operativo que maneja el acceso a los archivos. Finder Parte del sistema operativo que maneja la búsqueda de archivos a ser presentados.
Más detalles