Ejemplos

Pedir un tamaño y pedir el número de notras


	public static void main(String[] args) {
		
		Scanner in = new Scanner(System.in);
		System.out.println("Introduce el tamaño");
		int tam=in.nextInt();
		int[] notas=new int[tam];
		for(int i=0;i<tam;i++) {
			System.out.println("Introduce la nota "+(i+1));
			notas[i]=in.nextInt();
		}
		mostrar(notas);
	}
	static void mostrar(int[] tabla) {
		for(int el:tabla) {
			System.out.print(el+" | ");
		}
		System.out.println();
	}

Nos piden refactorizarlo para que sean alumnos y notas:


package com.trifulcas.saludo;

import java.util.Scanner;

public class EjemploMulti {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		// Pido el número de alumnos (alto de mi tabla multidimensional)
		System.out.println("Introduce el número de alumnos");
		int alumnos = in.nextInt();
		// Pido el número de notas (ancho de mi tabla multidimensional)
		System.out.println("Introduce el número de notas por alumno");
		int numero = in.nextInt();
		// Creo un array multidimensional con los datos que me han dado
		int[][] notas = new int[alumnos][numero];
		
		// Para pedir los datos tengo que usar un bucle anidado
		// El primero (i) es de los alumnos
		// El segundo (j) es de las notas
		// La combinación (i,j) son las coordenadas de mi array bidimensional
		for (int i = 0; i < alumnos; i++) {
			System.out.println("Introduce las notas del alumno " + (i + 1));
			for (int j = 0; j < numero; j++) {
				System.out.println("Introduce las nota " + (j + 1));
				// Guardo la nota en la coordenada adecuada
				notas[i][j] = in.nextInt();

			}
		}
		mostrar(notas);
	}

	static void mostrar(int[][] tabla) {
		// Es otro bucle anidado porque tengo dos dimensiones
		for (int i = 0; i < tabla.length; i++) {
			for (int j = 0; j < tabla[i].length; j++) {
				System.out.print(tabla[i][j] + " | ");
			}
			System.out.println();
		}
	}

}


package com.trifulcas.saludo;

import java.util.Scanner;

public class EjemploMulti {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		// Pido el número de alumnos (alto de mi tabla multidimensional)
		System.out.println("Introduce el número de alumnos");
		int alumnos = in.nextInt();
		// Pido el número de notas (ancho de mi tabla multidimensional)
		System.out.println("Introduce el número de notas por alumno");
		int numero = in.nextInt();
		// Creo un array multidimensional con los datos que me han dado
		int[][] notas = new int[alumnos][numero];

		// Para pedir los datos tengo que usar un bucle anidado
		// El primero (i) es de los alumnos
		// El segundo (j) es de las notas
		// La combinación (i,j) son las coordenadas de mi array bidimensional
		for (int i = 0; i < alumnos; i++) {
			System.out.println("Introduce las notas del alumno " + (i + 1));
			for (int j = 0; j < numero; j++) {
				System.out.println("Introduce las nota " + (j + 1));
				// Guardo la nota en la coordenada adecuada
				notas[i][j] = in.nextInt();

			}
		}
		mostrar(notas);

		// Para cada alumno la nota más alta
		for (int i = 0; i < alumnos; i++) {
			System.out.print("La nota más alta del alumno " + (i + 1) + " es: ");
			int alta = 0;
			for (int j = 0; j < numero; j++) {
				if (alta < notas[i][j]) {
					alta = notas[i][j];
				}
				// alta=Math.max(alta,notas[i][j])
			}
			System.out.println(alta);
		}

		// Para cada alumno la media
		for (int i = 0; i < alumnos; i++) {
			System.out.print("La media de notas del alumno " + (i + 1) + " es: ");
			int suma = 0;
			for (int j = 0; j < numero; j++) {
				suma+=notas[i][j];
			}
			System.out.println(suma/numero);
		}
	}

	static void mostrar(int[][] tabla) {
		// Es otro bucle anidado porque tengo dos dimensiones
		for (int i = 0; i < tabla.length; i++) {
			for (int j = 0; j < tabla[i].length; j++) {
				System.out.print(tabla[i][j] + " | ");
			}
			System.out.println();
		}
	}

}

Utilizando funciones:


package com.trifulcas.saludo;

import java.util.Scanner;

public class EjemploMulti {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);
		// Pido el número de alumnos (alto de mi tabla multidimensional)
		System.out.println("Introduce el número de alumnos");
		int alumnos = in.nextInt();
		// Pido el número de notas (ancho de mi tabla multidimensional)
		System.out.println("Introduce el número de notas por alumno");
		int numero = in.nextInt();
		// Creo un array multidimensional con los datos que me han dado
		int[][] notas = new int[alumnos][numero];

		// Para pedir los datos tengo que usar un bucle anidado
		// El primero (i) es de los alumnos
		// El segundo (j) es de las notas
		// La combinación (i,j) son las coordenadas de mi array bidimensional
		for (int i = 0; i < alumnos; i++) {
			System.out.println("Introduce las notas del alumno " + (i + 1));
			for (int j = 0; j < numero; j++) {
				System.out.println("Introduce las nota " + (j + 1));
				// Guardo la nota en la coordenada adecuada
				notas[i][j] = in.nextInt();

			}
		}
		mostrar(notas);

		// Para cada alumno la nota más alta
		for (int i = 0; i < alumnos; i++) {
			System.out.print("La nota más alta del alumno " + (i + 1) + " es: ");
			System.out.println(mayor(notas[i]));
		}

		// Para cada alumno la media
		for (int i = 0; i < alumnos; i++) {
			System.out.print("La media de notas del alumno " + (i + 1) + " es: ");
			
			System.out.println(media(notas[i]));
		}
	}

	static void mostrar(int[][] tabla) {
		// Es otro bucle anidado porque tengo dos dimensiones
		for (int i = 0; i < tabla.length; i++) {
			for (int j = 0; j < tabla[i].length; j++) {
				System.out.print(tabla[i][j] + " | ");
			}
			System.out.println();
		}
	}
	static int mayor(int[] numeros) {
		int mayor=numeros[0];
		for(int n:numeros) {
			if (n>mayor) {
				mayor=n;
			}
		}
		return mayor;
	}
	static int media(int[] numeros) {
		int suma=0;
		for(int n:numeros) {
			suma+=n;
		}
		return suma/numeros.length;
	}

	/*
	 * notas[2][3] (2x3)
	 * 
	 * |3 | 4 | 5 | 
	 * |2 | 6 | 10 |
	 * 
	 * notas[0]=|3 | 4 | 5 | 
	 * notas[1]=|2 | 6 | 10 |
	 * 
	 * notas[0] es un array normal de una dimensión
	 * notas[1] es otro array de una dimensión
	 * int[] foo=notas[0]
	 */
	
}


Publicado por

Juan Pablo Fuentes

Formador de programación y bases de datos