Mostrando entradas con la etiqueta Array bidimensional. Mostrar todas las entradas
Mostrando entradas con la etiqueta Array bidimensional. Mostrar todas las entradas

jueves, 16 de junio de 2011

Ejercicio trocear tabla

Dada una tabla de números float, realizar una función que la trocee, es decir,  que cree una tabla de dos dimensiones que tenga en cada fila 3 datos de la primera tabla. En la última fila tendrá los datos que sobren.
Se añade el programa principal con el que se probó la función.

public class Trocear {
    public static void main(String[] args) {
        float[] numeros = {12.23F, 53.23F, 1.423F, 54.22F, 75.72F, 0.125F, 5.34F, 6.33F};
        float[][] resultado;
        int a, b;
        resultado = trocea(numeros);
        for (a=0; a<resultado.length; a++){
            for (b=0; b<resultado[a].length; b++)
                System.out.print(resultado[a][b]+"  ");
            System.out.println();
        }
    }
    public static float[][] trocea(float[] t) {
        float[][] tabla = new float[(t.length+2)/3][];
        int i, j, k=0, c = t.length;
        for (i=0; i<tabla.length; i++){
            tabla[i] = new float[(c>=3)?3:c];
            c = c-3;
            for (j=0; j<tabla[i].length; j++){
                tabla[i][j] = t[k];
                k++;
            }
        }
        return tabla;
    }
}

Ejercicio "mensaje oculto"

Inicializar una tabla bidimensional (4x4) de tipo char en la que se esconderá un mensaje que tiene que mostrar el programa.
Declarar otra tabla de 2 columnas de tipo int, que indicará:
  • 1ª columna -> filas de la tabla 1
  • 2ª columna -> columnas de la tabla 1
En la primera tabla buscará todas las letras que se encuentran en las direcciones de la segunda tabla.

public class MensajeOculto {
    public static void main(String[] args) {
        char[][] mensaje = {{'a', 'b', 'c', 'd'},
                            {'e', 'f', 'g', 'h'},
                            {'i', 'j', 'k', 'l'},
                            {'m', 'n', 'o', 'p'}};
        int[][] clave = {{0, 2},
                         {0, 0},
                         {3, 0},
                         {1, 0},
                         {2, 3},
                         {2, 3},
                         {3, 2}};
        int i;
        for (i=0; i<clave.length; i++){
            System.out.print(mensaje[clave[i][0]][clave[i][1]]);
        }
        System.out.println();
    }
}

Ejercicio calcular media (tabla bidimensional)

Una tabla bidimensional contiene las notas de un alumno en cada fila. Calculas para cada alumno su nota media y mostrar el alumno, sus notas y la nota media previamente calculada.

public class CalcularMedia {
    public static void main(String[] args) {
        int alum, asig;
        float suma;
        float[][] notas = {{3.5F, 6.7F, 5.25F, 8.0F, 4.8F},
                           {6.5F, 8.0F, 7.5F, 4.75F, 2.0F},
                           {5.5F, 3.7F, 6.25F, 7.0F, 8.7F},
                           {5.9F, 0.5F, 6.75F, 5.0F, 5.7F}};
        float[] notasMedias;
        notasMedias = new float[notas.length];
        //Calcula la nota media para cada alumno (fila)
        for (alum=0; alum<notas.length; alum++){
            suma = 0;
            for (asig=0; asig<notas[alum].length; asig++){
                suma = suma + notas[alum][asig];
            }
            notasMedias[alum] = suma / (notas[alum].length);
        }
        //Muestra el alumno, todas sus notas y la media.
        for (alum=0; alum<notas.length; alum++){
            System.out.print("Alumno " + alum + ": ");
            for (asig=0; asig<notas[alum].length; asig++)
                System.out.print(notas[alum][asig] + "  ");
            System.out.println("Nota media: " + notasMedias[alum]);
        }
    }
}