Entradas

AEDII

Algoritmo de Ackermann: Funcionamiento y Código en C

Imagen
Función de Ackermann En teoría de la computación, la función de Ackermann es una función recursiva que toma dos números naturales y devuelve un único número natural. En 1928, Wilhelm Ackermann observó que A(x,y,z), la z-ésima exponenciación iterada de x con y como exponente, es una función recursiva que no es recursiva primitiva. En 1935, Rózsa Péter simplificó A(x,y,z) a una función de dos variables. En 1948, Raphael M. Robinson simplificó la condición inicial, quedando una función doblemente recursiva de  N 2   en N, definida recursivamente por las tres condiciones siguientes: A[0, n_] := n + 1; A[m_, 0] := A[m - 1, 1]; A[m_, n_] := A[m - 1, A[m, n - 1]]; Esta última versión es conocida hoy día como la función de Ackermann, el ejemplo más simple de una función total que es computable. O sea, que se puede implementar con ciclos de tipo "While". Pero que no es primitiva recursiva. Por tanto no se puede implementar sólo con ciclos de tipo "For". Esto...

Segundo Taller de Investigación

Imagen
Presentaremos el segundo taller de investigación de Algoritmos y Estructuras de Datos II. Nuestro tema elegido es Aplicación de estrategias de recorrido de grafos en la vida real (kruskal, prim, floyd-warshall y dijkstra). Un Grafo es un  tipo abstracto de datos  (TAD), que consiste en un conjunto de  nodos  (también llamados  vértices ) y un conjunto de  arcos  ( aristas ) que establecen relaciones entre los nodos .  Se puede decir entonces que un grafo es la representación gráfica de los datos de una situación particular. Recorrido de un Grafo Recorrer un grafo significa tratar de alcanzar todos los nodos que estén relacionados con uno que llamaremos nodo de salida. Existen básicamente dos técnicas para recorrer un grafo: recorrido por amplitud y recorrido por profundidad. Teoría de Grafos Es una rama de las  matemáticas  y las  ciencias de la computación  que estudia las propiedades de los  grafos. F...

Primer Taller de Investigación

Imagen
Presentamos nuestro taller de investigación de Algoritmos y Estructuras de Datos II. Desarrollaremos el tema de comparación de métodos de ordenación directa y logarítmica. Para esto utilizaremos algoritmos de ordenamiento, los cuales insertan elementos de una lista o un vector en una secuencia dada por una relación de orden, es decir, el resultado de salida debe ser una permutación o reordenamiento  de los datos de entrada.   Funcionamiento del algoritmo para el taller El algoritmo al ejecutarse le solicita al usuario que ingrese la cantidad de elementos que desea que tenga el arreglo. Luego muestra al usuario 2 opciones para elegir si desea ingresar manualmente los elementos o generarlos aleatoriamente y luego otro menú para elegir con que método ordenarlo. Posterior a esto, imprime por pantalla el arreglo original, el arreglo ordenado y la cantidad de pasadas, intercambios, comparaciones que realizó el método que elegimos previamente, así como también ...

Práctico nro 6: "Tipo Abstracto de Datos"

Abstracción :   Significa organizar la realidad para hacerla mas aprehensible. Centrar la atención en las características relevantes al problema a resolver, y disponerlas del modo mas conveniente para su mejor comprensión. La abstracción de datos nos permite reconocer objetos del mundo real y abstraer sus aspectos fundamentales y su comportamiento de modo de poder representarlos en otros programas. Ventajas del Tipo de Dato Abstracto: Facilita la reusabilidad del código Las modificaciones internas de los TAD no afectan a quienes los utilizan Permite mejor conceptualización y modelarización. Mejora a robustez del sistema. Mejora el Rendimiento. Permite extensibilidad del sistema. Los componentes del software son mas fáciles de crear. Ejercicios : 1) Definir un tipo abstracto de dato que permita, a partir de un numero entero positivo recibido como parámetro, mostrar por pantalla el número invertido. Enlace al Código en C. Enlace al Código TAD. 2) Codi...

Práctico nro 5: "Corte de control".

Corte de Control La idea de implementar  cortes de control es analizar la información almacenada en registros. Para ello la información debe estar ordenada según requiera el tipo de criterio. De modo que si varios registros tienen el mismo valor en su campo clave,  se encuentren juntos, formando un grupo. Esta metodología se utiliza principalmente para realizar reportes que requieren subtotales, cantidades o promedios parciales u otros valores similares. El método consiste en ir recorriendo la información, de modo que cada vez que se produzca un cambio en el criterio, se ejecuten los pasos de finalización de un criterio y el comienzo del siguiente. Ejercicios resuelto: 1- Movimientos de cuentas de un banco. Ejercicio adicional petición de los profesores Burghardt y Zacarias: - Libretas universitarias.

Práctico nro 4: "Listas enlazadas, Pilas y Colas con punteros."

Imagen
Listas enlazadas: Una lista enlazada es un conjunto de elementos  llamados nodos en los que cada uno de ellos contiene un dato y también la dirección del siguiente nodo,donde el orden de los mismos se establece mediante punteros. La idea básica es que cada componente de la lista incluya un puntero que indique donde puede encontrarse el siguiente componente por lo que el orden relativo de estos puede ser fácilmente alterado modificando los punteros lo que permite, a su vez, añadir o suprimir elementos de la lista. Sus funciones básicas son crear lista vacía, preguntar si está vacía, insertar nodo(dividida en insertar primero y adelante), eliminar nodo y visualizar nodos. También se utilizan insertar k y eliminar k, donde se puede realizar con un nodo en cualquier posición. Ejercicios resueltos en C: 1- Dpto. de Alumnado. 2- Lista de Pacientes. Pilas implementadas con punteros: Una pila es una lista de elementos del cual solo se puede insertar y eliminar...