Estructuras de Datos y Algoritmos (EDA)

Un curso sobre Tipos Abstractos de Datos

Archive for the ‘Prácticas’ tag

Algunos errores frecuentes en las prácticas

without comments

En las entrevistas que hemos realizado durante la semana pasada ya los he ido comentando con vosotros individualmente, pero creo que puede ser provechoso para todos poner un pequeño resumen aquí. Se trata de errores que hemos podido ver en vuestro código; en muchos casos no perjudican la funcionalidad del programa, pero sí que afectan a todo lo que tiene que ver con la legibilidad y mantenibilidad del código (lo que pasaría si tenemos que volver a trabajar sobre el código de esta práctica un poco más adelante):

  • Repetición de código:
    • En muchos casos se ha desarrollado código para hacer las mismas cosas en distintos procedimientos y funciones. Por ejemplo, para desarrollar quitar del TAD multiconjunto es necesario buscar el elemento; también es necesario buscarlo para desarrollar pertenece. También puede ser necesario (en algunas implementaciones del tipo, no en todas) para desarrollar poner. Es una mala práctica copiar y pegar el mismo código (o prácticamente el mismo) en cada caso.
    • Ocurre algo parecido cuando se necesita añadir caracteres a una cadena. Por ejemplo en getcad, o en str2cad, donde lo natural sería utilizar aniadeCar.
    • Unos pocos, además, han repetido el código a la hora de hacer putcad y putcad_line, cuando claramente la segunda puede hacerse llamando a la primera.
    • Finalmente, parece que desconocíais la existencia de los descriptores de ficheros asociados a la entrada estándar (Standard_Input) y la salida estándar (Standard_Output) que os hubieran permitido desarrollar las funciones de entrada y salida sin parámetro de fichero a partir de las otras
  • ¡Cuidado con los límites!
    • Sobre todo en implementaciones estáticas (tablas, vectores) hay que comprobar y tener en cuenta que la estructura de datos puede estar vacía (índice 0, ¿es posible?) o completamente llena (¿qué pasa cuándo queremos añadir un dato a una estructura en la que ya no caben más?).
    • En estructuras dinámicas también hay que tener cuidado, en este caso con los punteros (el valor NULL del ‘siguiente’ del último dato indica el final de la lista).
    • Finalmente, algunos getcad de los que habéis desarrollado no contemplaban la posibilidad de que la cadena fuera vacía (el usuario le da al retorno de carro cuando estamos leyendo).
  • Modificación de las especificaciones: Algunos grupos han evitado el problema de la lectura de cadenas del programa principal modificando la entrada esperada por el programa (normalmente, separando la cadena que se leía del carácter en líneas diferentes). Otros han modificado la especificación del programa para que tuviera que leer desde un fichero. Es mala idea hacer ese tipo de modificaciones porque a la hora de usar vuestro programa hay que ‘aprender’ su funcionamiento. Además, evitáis algunos de los problemas interesantes que planteaba la especificación original.

Written by admin

noviembre 17th, 2010 at 5:10 pm

Posted in Prácticas

Tagged with , , ,

Se ha habilitado el sistema de entregas para la práctica 2

with 2 comments

Se ha habilitado el sistema para enviar la práctica 2, con una pequeña variación con respecto al enunciado de la práctica. La forma de hacerlo es mediante la instrucción:


someter eda_10 p2.tar

La lista para apuntarse para la entrevista sobre la práctica estará disponible a lo largo de la mañana del jueves día 4 de noviembre.

Written by admin

noviembre 3rd, 2010 at 7:34 pm

Publicado el enunciado de la primera práctica

without comments

En la página de Prácticas se ha publicado el enunciado de la primera. Se puede descargar directamente en el siguiente enlace:

Se recuerda que durante la primera sesión de cada grupo de prácticas el profesor de prácticas estará en el laboratorio para presentarse etc; la sala de prácticas estará disponible en las horas reservadas y asignadas, pero el tiempo de los profesores  se empleará en reuniones privadas con cada pareja  de prácticas, con el fin de poder comentar y evaluar las prácticas obligatorias.

En el apartado de cosas que suceden, y aunque no afecta para nada a la práctica, nos hemos enterado de que mientras preparábamos la práctica, uno de los creadores del T9, el sistema para simplificar la introducción de palabras en los mensajes de texto falleció durante los días pasados Co-creator of T9, Martin King, passes away.

Written by admin

septiembre 28th, 2010 at 7:12 pm

Posted in Prácticas

Tagged with , , ,