Ejemplo de uso de un ArrayList: Calcular la altura media de los alumnos de una clase
Programa Java que pida por teclado las alturas de N alumnos de
una clase y las guarde en un ArrayList de tipo Double. A continuación el
programa calculará la altura media de todos los alumnos, cuantos alumnos hay más altos que la media y cuantos más
bajos.
Para resolverlo vamos a utilizar 4 métodos además del
método main:
Método numeroAlumnos(): este método pide por teclado el
número de alumnos de la clase y devuelve dicho número al programa principal.
Método leerAlturas(): pide por teclado las alturas de los
N alumnos y las almacena en el ArrayList. Este método recibe como parámetros el
ArrayList inicialmente vacío y el número de alumnos a leer.
Método calcularMedias(): calcula y devuelve la media de
los alumnos de la clase. Este método recibe como parámetro el ArrayList con las
alturas de todos los alumnos.
Método mostrarResultados(): muestra por pantalla todas las
alturas y calcula y muestra el número de alumnos con altura superior e inferior
a la media. Recibe como parámetros el ArrayList con las alturas de todos los
alumnos y la media calculada anteriormente.
Solución:
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
//creamos el ArrayList que contendrá la altura de los alumnos
ArrayList<Double> altura = new ArrayList<>();
int N;
double media;
//obtenemos el número de alumnos de la clase
N = numeroAlumnos();
//leemos la altura de los N alumnos
leerAlturas(altura, N);
//calculamos la media
media = calcularMedia(altura);
//mostramos los resultados
mostrarResultados(altura, media);
}
//Método para pedir por teclado el número de alumnos de la clase
public static int numeroAlumnos() {
Scanner sc = new Scanner(System.in);
int n;
do {
System.out.print("Introduce número de alumnos: ");
n = sc.nextInt();
} while (n < 1);
return n;
}
//Este método recibe el ArrayList y el número de alumnos de la clase
//Pide por teclado la altura de todos los alumnos y las guarda en el ArrayList
public static void leerAlturas(ArrayList<Double> a, int n) {
Scanner sc = new Scanner(System.in);
int i;
double alto;
for (i = 1; i <= n; i++) {
do {
System.out.print("Alumno " + i + " altura: ");
alto = sc.nextDouble();
} while (alto <= 0);
a.add(alto); //añade la altura al final del ArrayList
}
}
//Este método recibe el ArrayList con todas las alturas
//calcula y devuelve la media
public static double calcularMedia(ArrayList<Double> a) {
double media = 0;
for (Double d : a) {
media = media + d;
}
return media / a.size();
}
//Muestra la altura de todos los alumnos, la media y calcula y muestra
//cuantos alumnos hay con altura superior a la media
//y cuántos con altura inferior
public static void mostrarResultados(ArrayList<Double> a, double media) {
int superior = 0, inferior = 0;
System.out.println("alturas introducidas: ");
System.out.println(a);
for (Double d : a) {
if (d > media)
superior++;
else if (d < media)
inferior++;
}
System.out.printf("Media: %.2f %n", media);
System.out.println("Hay " + superior + " alumnos más altos que la media");
System.out.println("Hay " + inferior + " alumnos más bajos que la media");
}
}
public static void main(String[] args) {
ResponderEliminar// TODO Auto-generated method stub
int N =numeroAlumnos();
System.out.println("Se ingresaron "+N+" Alumnos");
ArrayList altAlum = new ArrayList(N);
leerAlturas(altAlum, N);
System.out.println(calcularMedias(altAlum));
}
private static double calcularMedias(ArrayList altAlum) {
// TODO Auto-generated method stub
double media = 0;
for (Double d : altAlum) {
media = media + d;
}
return media / altAlum.size();
}
private static void leerAlturas(ArrayList altAlum, int n) {
// TODO Auto-generated method stub
for (int i = 0; i < n; i++) {
double alto = Double.parseDouble(JOptionPane.showInputDialog("Introduzca la altura del alumno"));
altAlum.add(alto);
}
}
private static int numeroAlumnos() {
// TODO Auto-generated method stub
int numAlum=Integer.parseInt(JOptionPane.showInputDialog("Ingrese numero de alumnos a medir"));
return numAlum;
}
Este comentario ha sido eliminado por el autor.
ResponderEliminarPorqué los metodos son STATIC?
ResponderEliminarLos métodos pueden ser static o final, los static se dan cuando otro método que los va a instanciar (utilizar) son tambien de tipo static, por ejemplo el método main. El método main no puede ser instanciado.
Eliminarno entiendo lo de while(n < 1) y while(alto<=0) no entiendo porque los pones alguien podria responder porfa
ResponderEliminarA lo que yo entendí el primer while es para validar de que el usuario ingrese una cantidad de alumnos valida (que no sea 0 o menor que 0). Y el segundo while es para lo mismo, son simples validaciones.
EliminarImplementar un programa Java para una entidad o empresa dedicada al rubro de la nutrición. La
ResponderEliminarempresa maneja la información de las personas de acuerdo a los siguientes datos: nombre,
edad, CI, sexo (H hombre, M mujer), peso y altura. Sin embargo, hace una diferencia entre sus
pacientes y los médicos. De los pacientes administra la siguiente información: fecha de la
primera consulta, su médico de tratamiento, especialidad del médico que lo trata. De los
médicos además de la información pertinente registra la especialidad, así como el precio de la
consulta. Resuelva este problema con las siguientes consideraciones:
Desarrollar el diagrama de clases correspondiente, tomando en cuenta miembros
atributo, así como métodos(incluidos métodos constructores).
Ingresar por teclado el nombre, CI, edad, sexo, peso, estatura, fecha de primera
consulta,
medico, precio de consulta y especialidad.
Calcular el ICM de un paciente para saber si se encuentra en su peso ideal
ICM ൌ ௦
ா௦௧௧௨మ
peso en kg y estatura en metros
Indicar si es mayor de edad.
Reportar información del sujeto.
Indicar las tres personas con mayor de edad.
package ArraysList;
ResponderEliminarimport java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Scanner;
public class Calcula_Estatura {
private static BigDecimal decimal;
private static int numAlumnos;
private static double altura;
private static double valor;
private static double resultadoSumas;
private static int tamaño;
private static double media;
private static BigDecimal resultado;
private static ArrayList AlturaAlumnos = new ArrayList ();
private static int superior, inferior;
public static void main(String[] args) {
numeroAlumnos();
leerAlturas();
CalcularMedias();
mostrarResultados();
}
public static int numeroAlumnos() {
System.out.println("Por favor introduce el rango de alumnos");
Scanner entrada = new Scanner(System.in);
numAlumnos = entrada.nextInt();
return numAlumnos;
}
public static void leerAlturas() {
for(int i = 0; i{
System.out.println(elemento);
if(resultado.doubleValue()>elemento) {
inferior ++;
}else {
superior++;
}
});
System.out.println("-----------------------");
System.out.println("Hay : " + inferior + " Inferiores a la media ");
System.out.println("Hay : " + superior + " Superior a la media ");
}
}