Patricio Aros

xd

miércoles, 7 de diciembre de 2011

Programacion II - Arreglos Uni-Bidimensionales

Autor: Patricio Aros Erices
Competencia: Trabajo en equipo

EJERCICIO 1: Generar una matriz de 12 x 31 donde las filas representen los meses del año y las columnas la temperatura media de cada día. Llene con valores aleatorios.
Calcular:
a) La temperatura media de cada mes.
b) El día más caluroso y el más frío de cada mes
C) El día más caluroso del año.

En este ejercicio, al momento de plantearnoslo fue se encontró un poco difícil, pero luego de un análisis mas extenso y un poco de repaso y busqueda de material, realmente no representaba uno tan dificil, cabe destacar que para 4 personas, el nivel de dificultad ubiese sido mucho mayor de no ser así. Luego como nos indicaba la pauta fuimos realizando los pasos, primero que nada ejemplos , para esto utilizamos excel ya que debiamos generar una gran tabla la cual no pondre para no ajetrear con tanto texto, así fuimos haciendo los cálculos para luego ver como usar codigo en java para que realizara las operaciones para todo lo indicado en el problema.
Para cada media que debiamos calcular, necesitavamos saber como era el cálculo y es exactamente igual a como sacamos el promedio en el liceo o colegio, se suman todos y luego se divide por la cantidad total de datos que sumaste.
Para revisar los dias más calurosos y más frios se debia revisar el arreglo pero solo en la fila , ya que era del mes.
Para el dia más caluroso del año sólo era revisar completamente el arreglo y ver cual era la t° max.

Luego nos planteamos cuales iban a ser las entradas y salidas de datos

Imagen extraida del informe: Nos muestra la entrada de datos que tendra el programa.
Salida:
Los datos de salida otorgan información variada, las cuales constan de:
*Muestra vector compuesto de 12 filas y 31 columnas (llenados con random)
 *Temperaturas media de cada mes (12 en total, del tipo double)
 *Temperaturas máximas y mínimas de cada mes (12 máx y 12 min, del tipo
double)
* Temperatura máxima del año (1 dato, del tipo double)
* Las temperaturas que se generan a partir del random se encuentran en un
rango entre -20 y 36.

Seguidamente realizmaos lo que era el diagrama de flujo, el cual no pondre por espacio, ya que si lo miramos de cerca(analizando) son varios ciclos for aninados y los cuales no tienen demasiada dificultad describirlos en el diagrama. Son ciclos anidados por que debemos recorrer filsa y columas. ya que es un arreglo bidimencional

Para finalizar el codigo usado en el programa, ahi daran cuenta de lo que mencione anteriormente.
Codigo:

import javax.swing.*;

public class Ejercicio1 {

    public static void main(String[] args) {
//Se declaran las variables
        double matriz[][] = new double[12][31];
        int f = 12; //filas
        int c = 31; //columnas
        int i = 0; //recorre la matriz
        int j = 0; //recorre la matriz
        System.out.println("[[[[[[[[[[[[[[[[[[MATRIZ]]]]]]]]]]]]]]]]]]]]]]]");
        System.out.println("");
//for anidados que llenan la matriz[][] con numeros aleatorios
        for (i = 0; i < f; i++) {
            for (j = 0; j < c; j++) {
//Math.round: se utilizo para trabajar con 2 decimales.
                matriz[i][j] = (double) Math.round(Math.random() * (3600
                        - (-2000)) + (-2000)) / 100;
            }//fin for1
        }//fin for2
//for anidados para imprimir la matriz[][]
        for (i = 0; i < f; i++) {
            for (j = 0; j < c; j++) {
                System.out.print(matriz[i][j] + " ");
            }
            System.out.println(" ");
            System.out.println(" ");
        }
        System.out.println("[[[[[[[[[[[[[[[[[[TEMPERATURAS MEDIAS DE C/MES

        ]]]]]]]]]]]]]]]]]]]]]]]]]]]]");
System.out.println("");
        double suma = 0; //guarda la suma de las temperaturas diarias
//for anidados para obtener la media de la temperatura de cada mes
        for (i = 0; i < f; i++) {
            suma = 0;
            for (j = 0; j < c; j++) {
                suma = matriz[i][j] + suma;
            }
            double media = suma / 31;
            System.out.println((i + 1) + " : " + media + "");
        }
        double maxanio = 0;
        double maxmes = 0;
        double minmes;
        System.out.println("[[[[[[[[[[[[[[[[[[TEMPERATURAS MAXIMAS Y MINIMAS

        DE C
        /MES 
        ]]]]]]]]]]]]]]]]]]]]]]]]]]]]");
System.out.println("");
//for anidados para determinar temperaturas maximas y minimas de cada mes
        for (i = 0; i < f; i++) {
            maxmes = 0;
            minmes = 0;
            for (j = 0; j < c; j++) {
//determina la temperatura maxima del mes
                if (matriz[i][j] > maxmes) {
                    maxmes = matriz[i][j];
                }
//determina la temperatura minima del mes
                if (matriz[i][j] < minmes) {
                    minmes = matriz[i][j];
                }
//determina la temperatura maxima del año
                if (matriz[i][j] > maxanio) {
                    maxanio = matriz[i][j];
                }
            }
            System.out.println("Maxima mes : " + (i + 1) + " : " + maxmes
                    + " °C");
            System.out.println("Mímina mes : " + (i + 1) + " : " + minmes
                    + " °C");
        }
        System.out.println("[[[[[[[[[[[[[[[[[[TEMPERATURAS MAXIMA DEL AÑO

        ]]]]]]]]]]]]]]]]]]]]]]]]]]]]");
System.out.println("");
        System.out.println(maxanio + "");
    }//fin clase
}//fin main
 
 
 
 
Reflexion 
A pesar de ser un trabajo ajetreado se logro lo que queriamos, y aprendiendo bastante, y nuevamente aplicando 
tambien un poco de matematicas, si bien fue dificil uniendo un poco de c/u de los integrantes llegamos a un resultado
mucho mejor del que esperabamos. Desarrollamos bastante el trabajo en equipo y tambien nos dimos de las
cuantas debilidades que poseiamos.

0 comentarios:

Publicar un comentario