Está en la página 1de 5

Facultad de Ingeniera Escuela de Ingeniera de Sistemas y Computacin Algoritmia y Programacin NORMAS PARA LA ENTREGA DE LOS LABORATORIOS 1.

Coloque el nombre de los integrantes del grupo (tres estudiantes), nombre del profesor, nmero del grupo de Algoritmia y nmero de laboratorio presentado en el encabezado de todos sus programas. No se aceptan informes sin esta informacin. En caso de no completar la informacin solicitada se aplicar una penalizacin de 0.5 a la nota obtenida en el laboratorio. 2. Lugar y Medio de Entrega: Todos los archivos que se soliciten en el informe (.java y .pdf) deben ser adicionados en un archivo comprimido, cuyo nombre est asociado con el laboratorio que se est resolviendo. Por ejemplo, para el caso del laboratorio 4 se debe crear el archivo Lab4.zip lab3.tar.gz y ser enviado a travs del campus virtual dentro de las horas y fechas acordadas para tal fin con el profesor del curso; despus de dicho plazo no se recibirn ms informes. 3. Durante el curso no se recibirn informes de laboratorio enviados por correo electrnico.

Laboratorio No. 4 Tema: Arreglos y Matrices Fecha: de 2012 Objetivos


1. 2. 3. 4. Aplicar la metodologa para la solucin de problemas vista en clase. Familiarizar al estudiante con el uso de arreglos. Familiarizar al estudiante con el uso de matrices. Familiarizar al estudiante con uso de ciclos para procesar arreglos y matrices.

Metodologa:
Siga paso a paso la metodologa planteada en el curso y resuelva los siguientes ejercicios. Para cada ejercicio los entregables son: 4. 5. 6. 7. 8. Anlisis del problema Algoritmo en pseudocdigo Prueba de escritorio. Algoritmo en Java Imgenes donde se muestra las pruebas del Algoritmo implementado.

Se debe entregar un informe PDF con los puntos 1, 2, 3, 5 de la metodologa y los archivos .java.

1. Producto punto entre vectores. [20 puntos] El producto punto o producto escalar entre dos vectores es una operacin definida sobre dos vectores cuyo resultado es un nmero o escalar. Por ejemplo si, A= [a1, a2, a3] y B= [b1, b2, b3] entonces:

A . B = (a1 * b1) + (a2 * b2) + (a3 * b3) Suponga que cada vector se almacena en un arreglo de enteros en Java. Desarrollar un algoritmo que automticamente genere los elementos de dos arreglos A y B , cada uno de 5 elementos y luego calcule el producto punto de estos. El algoritmo debe seguir el siguiente proceso: Por medio de la funcin random, generar los valores y guardarlos en cada vector. Estos valores deben estar entre 1 y 10. Calcular el producto punto Mostrar todos los elementos de cada vector en un JtextArea Luego mostrar el producto punto en el JtextArea. Puede usar mtodos y funciones para facilitar la implementacin de este punto.

Producto punto entre los vectores A y B 2. Operaciones con Matrices. [25 puntos.] Definiciones: Sea una matriz con dada por filas y columnas. La matriz transpuesta, denotada con est

Una matriz diagonal es una matriz cuadrada en que las entradas son todas nulas salvo en la diagonal principal, y stas pueden ser nulas o no

Una matriz es simtrica cuando es una matriz cuadrada, y es igual a su traspuesta. Elabore un programa en java que lea una matriz A y determine si es una matriz diagonal una matriz simtrica. El programa debe mostrar en un rea de texto como salida lo siguiente: La matriz A La matriz transpuesta de A Un mensaje que indique tipo de matriz es (diagonal, simtrica o ambas). Por ejemplo: si se ingresa la matriz: El resultado ser:

A=

A=

3. Arreglos y matrices [25 puntos] Suponga que se ha registrado la siguiente informacin sobre la situacin de los damnificados por el invierno en algunos departamentos del pas: Departamentos

Bolvar

Magdalena Atlntico Guajira Crdoba Sucre

Matriz de damnificados por ao: Asuma que cada fila de la matriz contiene la cantidad de personas damnificadas por departamento en cada ao.
2005 2006 2007 2008

0 1 2 3 4 5

110.698 98.742 187.524 108.111 65.541 105.230

125.147 123.654 204.287 198.365 54.211 98.745

257.321 325.698 149.528 206.879 100.365 203.698

389.010 282.965 228.914 216.758 169.446 119.575

Tomando los datos anteriores, desarrolle un programa en Java que calcule lo siguiente: a) El total de damnificados que hubo en el pas por ao (esta informacin debe ser almacenada en un arreglo unidimensional). b) Cul de los departamentos fue el menos afectado por el invierno en el pas en todos los aos c) El departamento que tuvo mayor incremento de damnificados entre los aos 2006 y 2008 Nota: Para resolver este ejercicio puede usar mtodos. Se debe mostrar en un rea de texto los datos del arreglo de departamentos y la matriz de damnificados junto con los datos calculados. Como se muestra en la figura 1.

Figura 1

4.

[30 puntos]

Hola estudiante de algoritmia, quiero jugar un juego. Talvez t a mi no me conoces, pero yo a ti s. En este semestre has estado descuidando tus talleres de algoritmia y has tenido un mal desempeo en el primer parcial... shhhgwggw (ruido extrao) fin de la comunicacin.

Los detectives de la ciudad han encontrado una vctima ms de Jigsaw, y junto a esta, una grabadora con la comunicacin escrita arriba. Los detectives quieren ir tras la pista de Jigsaw, y saben que actualmente est buscando comprar un lote baldo para crear ms de sus escenarios de tortura. Tambin saben que Jigsaw tiene uno de los mapas de la ciudad que describe los precios de los terrenos por metro cuadrado. El mapa se puede ver como una matriz numrica donde cada posicin describe el precio de 1 metro cuadrado. En las partes donde ya hay una construccin, la matriz contiene un valor de -1. En la figura 1 se puede ver un ejemplo de una matriz que describe un rea de la ciudad.

4 9 39 24 41 21

12 6 -1 8 64 73

5 -1 14 -1 -1 -1 36 2 14 1 16 3 Figura 1

3 20 28 4 2 4

4 41 58 49 61 87

Los detectives infieren que Jigsaw comprar el lote rectangular ms barato posible. Tambin tienen informacin de cuantos estudiantes de algoritmia quiere castigar, por lo tanto sospechan sobre las dimensiones del lote que Jigsaw quiere comprar. Ahora te han pedido ayuda: desean un programa que, dado el mapa de la ciudad y las dimensiones del lote, retorne la posicin y el precio del lote ms barato que se puede conseguir de ese tamao. Por ejemplo, en el mapa de arriba, el lote de 2x3 ms barato que se puede comprar est localizado en la fila 3, columna 3 y se extiende hasta la fila 5, columna 4 con un precio de $16. Ntese que el terreno podra estar ubicado tanto horizontal (3x2) como verticalmente (2x3). Escriba un programa en Java que pida al usuario las dimensiones del terreno y retorne la posicin (fila,columna) y el precio del terreno ms barato con esas dimensiones. Recuerde que no puede usar las posiciones construidas (marcadas con -1 en la matriz). En caso de que no se pueda conseguir un terreno con esas dimensiones, el programa debe mostrar el mensaje Game Over. Por ejemplo, en la matriz de arriba, no se puede conseguir un terreno de dimensiones 5x4. El mapa de la ciudad le es provedo como una matriz de enteros en el archivo MapaJigsaw.txt para que lo incorpore a su cdigo fuente. Sugerencias: - Implemente una funcin int[] buscar(int F, int C) que realice la bsqueda dentro de la matriz, del terreno de menor precio que tiene F filas y C columnas. - La funcin deber retornar un arreglo de 3 posiciones. La posicin 0 indicar el nmero de la fila, la posicin 1 indicar el nmero de la columna y la posicin 2 indicar el precio del terreno ms barato. - En caso de que la no sea posible encontrar un terreno del tamao especificado, la funcin puede retornar null, o un arreglo de 0 posiciones. As al usarse, se puede detectar el caso especial. - Cuando el usuario ingresa las medidas (A y B) haga dos llamados a la funcin: buscar(A,B) y buscar(B,A), para realizar la bsqueda de las dos posibles maneras. De los dos resultados, seleccione el ms barato como respuesta.

Algunas personas lo llaman Karma, yo lo llamo justicia.


Jigsaw