Universidad Autónoma Metropolitana

División de Ciencias Básicas e Ingeniería

Departamento de Sistemas

Josué Figueroa González

Tareas de Algoritmos y Estructuras de Datos

Inicio > Algoritmos y Estructuras de Datos > Tareas y Proyectos
Programas de Apoyo

Funciones

Programas Realizados en Clase

Apoyo uso de estructuras (struct)

Avance Tipo de Dato Abstracto (estructura estática)

Avance Listas Ligadas

Un apoyo para copiar arreglos

Estructuras y Apuntadores

Proyecto en CodeBlocks

Avance Árbol Binario de Búsqueda

Programas de Apoyo a los Temas del Curso

Unidad 1

Unidad 2

Unidad 3

Unidad 4

Unidad 5

Tareas

Tarea No. 1

Ejercicio con estructuras (struct)


Realizar un programa que utilice funciones para sumar, restar, multiplicar y dividir dos fracciones que tienen un numerador y un denominador. La función deberá representarse a través de una estructura que tendrá dos atributos, el numerador y el denominador. Cada función deberá recibir dos fracciones y regresar el resultado (otra fracción) de la operación que implemente.


Fecha de Entrega:
  • Enviar por correo el archivo .C a más tardar el martes de la 2da semana

Tarea No. 2

TDA


Realizar un programa que declare un arreglo de enteros de máximo 100 elementos y un entero que represente la cantidad de elementos que se han insertado. El programa contará con 3 funciones, una para insertar siempre en el primer elemento, otra para borrar siempre el último elemento insertado y otro que permitirá saber si un determinado valor existe o no. (2 puntos)


Fecha de Entrega:
  • Enviar por correo el archivo .C a más tardar el lunes de la 3ra semana

Tarea No. 3

Recursividad


Considerando que una multiplicación es una suma abreviada y que una potencia es un conjunto de multiplicaciones abreviadas, realizar un programa que a partir de los conceptos de recursividad permitan multiplicar dos números y elevar una base a un determinado exponente. (3 puntos)


Fecha de Entrega:
  • Enviar por correo el archivo .C a más tardar el miércoles de la 3ra semana

Tarea No. 4

Árboles Binarios de Búsqueda


Dibujar cómo quedaría el ABB tras insertar (en el orden dado) los siguientes elementos: 18, 16, 30, 19, 25, 14, 12, 26, 29, 11, 22, 9, 27, 3, 1, 33, 20


Fecha de Entrega:
  • Enviar por correo a más tardar el martes de la 7ma semana
Programas de Evaluación

Programa No. 1

Arreglos, estructuras y recursividad


Realizar un programa en C que defina una estructura para almacenar un número complejo (parte real y parte imaginaria). El programa deberá llenar un arreglo de máximo 10 elementos de este tipo de estructura. El llenado se realizará a través de la generación de números aleatorios tanto para la parte real como para la parte imaginaria.

Adicionalmente se contará con tres funciones, una que imprima el contenido del arreglo de manera recursiva, otra que obtenga la sumatoria de las partes reales de los elementos del arreglo y una que obtenga la sumatoria de las partes imaginarias de los elementos del arreglo, las sumatorias se deberán obtener también de forma recursiva.


Fecha de Entrega:
  • Para una calificación de 10, del lunes de la 4ta al jueves de la 5ta (10 de octubre)
  • Para una calificación de 8, del viernes de la 5ta al viernes de la 6ta
  • Para una calificación de 5, del viernes de la 6ta al viernes de la 7ma

Programa No. 2

Arreglos, estructuras y recursividad


A partir del archivo de entrada proporcionado más abajo, escribir un programa que vaya leyendo las instrucciones (Push y Pop) y vaya insertando o sacando elementos tanto en una Pila como en una Cola. Al finalizar el procesamiento del archivo, se deberá imprimir por completo tanto la Pila como la Cola.


Fecha de Entrega:
  • Para una calificación de 10, del jueves de la 6ta al jueves de la 7ma (24 de octubre)
  • Para una calificación de 8, durante la 8va semana
  • Para una calificación de 5, durante la 9na semana

Programa No. 3

Árbol Binario de Búsqueda


Realizar un programa en C o C++ que llene un ABB con elementos de tipo Complejo, en donde cada uno de estos elementos tendrá una parte real (int) y una parte imaginaria (int). El programa deberá llenar 15 elementos Complejos cuya parte real e imaginaria serán generadas de manera aleatoria.

Para la comparación, se tomará como base la parte REAL del Complejo.

Una vez lleno el ABB, se deberán imprimir los elementos de tipo Complejo ordenados de menor a mayor utilizando como criterio para el ordenamiento la parte REAL.


Fecha de Entrega:
  • Para una calificación de 10, del miercolesde la 8va al martes de la 9na
  • Para una calificación de 8, el resto de la 9na semana
  • Para una calificación de 5, durante la 10ma semana

Programa No. 4

Búsqueda por Llaves


Realizar un programa en C o C++ a partir del archivo de entrada presentado más abajo, implemente el almacenamiento y búsqueda utilizando una tabla de dispersión utilizando el algoritmo de generación proporcionado también en la lista de apoyos. El programa deberá cargar el archivo en una tabla de dispersión, posteriormente deberá solicitar una matrícula e imprimir los datos del alumno o un mensaje indicando que el alumno no se existe.

* Considerar que el alumno se debe representar utilizando una estructura (struct) formada por matrícula, primer apellido, segundo apellido y nombre, la cuál es la organización de los datos en el archivo.


Fecha de Entrega:
  • Para una calificación de 10, día del examen global (si se implementa la tabla de dispersión)
  • Para una calificación de 7, día del examen global (si se implementa con una matriz)

Programa No. 5

Ordenamiento Interno


Realizar un programa en C que a partir de los archivos de entrada proporcionados: cargue los archivos en dos arreglos diferentes (uno por archivo) que estarán llenos de una estructura Complejo formado por parte real (int) y parte imaginaria (int).

El programa deberá ordenar cada arreglo con el algoritmo de quicksort y posteriormente deberá mezclar ambos arreglos y dejarlos ordenados de menor a mayor considerando la parte REAL para la comparación. Como salida se mostrará en pantalla los elementos ya mezclados y ordenados.


Fecha de Entrega:
  • Para una calificación de 10, día del examen global



Programas Especiales

Programa No. 1

Montículo Binario


Realizar un programa en C o C++ que dados los siguientes elementos: 20 25 30 18 27 12 16 22 10 12 14 29 13 8 21 33

A) Los inserte en un montículo binario representado por un arreglo de enteros

B) Los imprima por niveles


Fecha de Entrega:
  • Enviar por correo a más tardar el jueves de la 8va semana

  • En asunto, escribir: Programa Especial 1 ED Nombre Completo del Alumno y adjuntar el archivo .C o .CPP