Home UC3M Universidad Carlos III de Madrid - Departamento de Ingeniería Telemática Home IT
Localización | Personal | Docencia | Investigación | Novedades | Intranet  

Práctica 5.- Diseño de algoritmos

Datos de la práctica

Fecha 27 de marzo de 2008
Conceptos Diseño de algoritmos, diagramas de flujo, pseudocódigo

Contenidos

Ejercicio 1.- Búsqueda en array

El primer ejercicio consiste en diseñar e implementar un algoritmo que dada una serie (array) de números enteros, devuelva la longitud de la secuencia más larga de números iguales consecutivos.

Para ello:

  1. Primero piensa el diagrama de flujo dibujándolo con lápiz en un papel.
  2. Luego escribe el pseudocódigo del algoritmo, incluso en el propio papel.
  3. Ahora ya puedes empezar a codificar: programa una clase con un método que implemente dicho algoritmo.
  4. Y por último, haz todas las pruebas necesarias para comprobar que el código funciona correctamente. Para ello incluye un método para leer un array desde la entrada estándar (teclado) con el que poder realizar las pruebas.

Ejercicio 2.- Producto de matrices

Diseña y escribe el método:

  public double [][]producto(double [][]a, double [][]b)

que calcula el producto de dos matrices.

Si no recuerdas cómo se multiplican dos matrices, echa un vistazo al artículo sobre producto de matrices de la Wikipedia. Por ejemplo, para matrices de 2x2, el producto sería:

En el caso general, cada celda de la matriz producto sería:

Para hacerlo bien, antes de empezar a escribir el código, ¡piensa un poco!

  1. Analiza las condiciones de ejecución: ¿es siempre posible multiplicar dos matrices?
  2. Reescribe (con papel y lápiz) el ejemplo anterior, usando la terminología de arrays.
  3. Ahora piensa en la secuencia de ejecución de las operaciones: ¿cuáles son las operaciones básicas? ¿cuáles se repiten? ¿cuántas veces? ... en definitiva, diseña el algoritmo que solucione el problema, en pseudocódigo, con lápiz y papel.
  4. Una vez que lo tengas, escribe el código en Java del algoritmo que has diseñado. Además, es conveniente que incluyas comentarios en el código, para entenderlo mejor.
  5. Y, por último, prueba tu algoritmo, escribiendo código de prueba.

Soluciones