Autor Tema: NetBeans ingresar notas alumno mostrar calcular promedio más alta y más baja  (Leído 6952 veces)

EdwarRestrepo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Hola, agradecería ayuda para completar el código para solucionar este ejercicio.

Crear un programa que solicite al usuario ingresar 5 notas obtenidas por un alumno (comprendidas entre 1.0 y 5.0). A continuación, debe mostrar todas las notas, el promedio de las 5 notas, la nota más alta que ha sacado y la menor.

Ejemplo:

Notas ingresadas: 4.0, 2.8, 4.5, 3.2, 1.7
Promedio de notas: 3.2
Nota más alta: 4.5
Nota más baja: 1.7


Código: [Seleccionar]
import java.util.Scanner;

public class loco {
 
    public static void main(String[] args) {
       
        int notas[] = new int[5];
        double promedio = 0;
        int acumulador = 0;
        Scanner lea = new Scanner(System.in);
       
        for (int i = 0; i < notas.length; i++) {
           
            System.out.print("Ingrese la nota No. " + (i+1) + " : ");
            notas[i] = lea.nextInt();
           
            acumulador = acumulador + notas[i];
           
        }
       
        promedio = acumulador / 5;
        System.out.println("El promedio de las notas es: " + promedio);
       
        for (int i = 0; i < notas.length; i++) {
           
            if(notas[i] >= promedio){
               
            }
           
        }
    }     
       
}   
« Última modificación: 12 de Marzo 2022, 14:18 por Ogramar »

Kabuto

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 988
    • Ver Perfil
Re: NetBeans IDE 8.2
« Respuesta #1 en: 30 de Agosto 2021, 00:00 »
Hola.
Si interpretamos bien el enunciado, las notas a introducir han de ser números naturales con decimales (double o float), no números enteros(int).

Entonces, haciendo este cambio y añadiendo un bucle para mostrar las notas introducidas tal y como pide el enunciado, tendríamos este código:
Código: [Seleccionar]
    public static void main(String[] args) {
       
        double notas[] = new double[5];
        double promedio = 0;
        double acumulador = 0;
        Scanner lea = new Scanner(System.in);
       
        for (int i = 0; i < notas.length; i++) {
            System.out.print("Ingrese la nota No. " + (i+1) + " : ");
            notas[i] = lea.nextDouble();
           
            acumulador = acumulador + notas[i];
        }
       
        //Mostramos notas
        System.out.print("Notas ingresadas: ");
        for (int i = 0; i < notas.length; i++)
            System.out.print(notas[i] + " ");
       
        //Calculamos promedio
        promedio = acumulador / 5;
        System.out.println("\nEl promedio de las notas es: " + promedio);

Pero no está completo, falta encontrar la nota más alta y la más baja.
Es más, incluso habría que asegurarnos de solo aceptar valores entre 1.0 y 5.0.

Para lograr estas cosas, es conveniente usar métodos, o sea, porciones de código que se dediquen a una tarea concreta.

Por ejemplo, podemos hacer un método que se encargue de pedir la nota. Y repita la petición hasta recibir una nota aceptable. Solo entonces, retornará dicha nota y podremos insertarla en el arreglo de notas.

Código: [Seleccionar]
    public static void main(String[] args) {
       
        double notas[] = new double[5];
        double promedio = 0;
        double acumulador = 0;
       
        for (int i = 0; i < notas.length; i++) {
            System.out.print("Ingrese la nota No. " + (i+1) + " : ");
            notas[i] = pedirNota();
           
            acumulador = acumulador + notas[i];
        }
       
        //Mostramos notas
        System.out.print("Notas ingresadas: ");
        for (int i = 0; i < notas.length; i++)
            System.out.print(notas[i] + " ");
       
        //Calculamos promedio
        promedio = acumulador / 5;
        System.out.println("\nEl promedio de las notas es: " + promedio);
   
    }
   
    private static double pedirNota() {
        Scanner leer = new Scanner(System.in);
        double nota;
        do {
            nota = leer.nextDouble();
        } while(nota < 1.0 || nota > 5.0);
        return nota;
    }

Ahora nos faltaría encontrar la nota más alta y la más baja.
Para esto también haremos dos métodos separados, que recibirán el arreglo de notas y buscarán la nota adecuada.
El programa final quedaría así:
Código: [Seleccionar]
    public static void main(String[] args) {
       
        double notas[] = new double[5];
        double promedio = 0;
        double acumulador = 0;
       
        for (int i = 0; i < notas.length; i++) {
            System.out.print("Ingrese la nota No. " + (i+1) + " : ");
            notas[i] = pedirNota();
           
            acumulador = acumulador + notas[i];
        }
       
        //Mostramos notas
        System.out.print("Notas ingresadas: ");
        for (int i = 0; i < notas.length; i++)
            System.out.print(notas[i] + " ");
       
        //Calculamos promedio
        promedio = acumulador / 5;
        System.out.println("\nEl promedio de las notas es: " + promedio);
        //Buscamos nota más alta y más baja
        System.out.println("\nLa nota más alta es: " + buscarNotaAlta(notas));
        System.out.println("La nota más baja es: " + buscarNotaBaja(notas));
    }
   
    private static double pedirNota() {
        Scanner leer = new Scanner(System.in);
        double nota;
        do {
            nota = leer.nextDouble();
        } while(nota < 1.0 || nota > 5.0);
        return nota;
    }
   
    private static double buscarNotaAlta(double[] notas) {
        double alta = notas[0];//Tomamos como referencia la primera nota, para luego ir comparando con las demás
        for (int i = 1; i < notas.length; i++)
            if (notas[i] > alta)
                alta = notas[i];
       
        return alta;
    }
   
    private static double buscarNotaBaja(double[] notas) {
        double baja = notas[0];//Tomamos como referencia la primera nota, para luego ir comparando con las demás
        for (int i = 1; i < notas.length; i++)
            if (notas[i] < baja)
                baja = notas[i];
       
        return baja;
    }

Y al ejecutarlo, en pantalla podremos ver como si se introducen notas fuera de rango se insiste en volver a pedirla de nuevo.
Y veremos que se cumplen el resto de peticiones del enunciado:
Citar
Ingrese la nota No. 1 :
2.5
Ingrese la nota No. 2 :
4.8
Ingrese la nota No. 3 :
3.1
Ingrese la nota No. 4 :
-3
0.2
1.1
Ingrese la nota No. 5 :
9
4.9
Notas ingresadas: 2.5 4.8 3.1 1.1 4.9
El promedio de las notas es: 3.28

La nota más alta es: 4.9
La nota más baja es: 1.1
NO respondo dudas por mensaje privado
Publicando vuestras dudas en el foro público conseguimos:
- Que más gente aporte respuestas mejores o complementarias.
- Que otras personas puedan aprender de vuestras dudas.

Mejor en PÚBLICO que en privado. Gracias

EdwarRestrepo

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Re: NetBeans IDE 8.2
« Respuesta #2 en: 30 de Agosto 2021, 18:40 »
Muchas gracias, ya estoy tomando en cuenta los apuntes y los tic que me da y los pongo en practica.

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".