Java - Ayuda con un ejercicio para clase.

 
Vista:
sin imagen de perfil

Ayuda con un ejercicio para clase.

Publicado por Daniel (3 intervenciones) el 13/11/2021 19:14:43
Buenas, actualmente estoy cursando unos estudios en los que estamos aprendiendo a programar; Nos mandaron varios ejercicios como tarea, pero llevo horas intentando realizar el último y nunca me llega a salir, trabajamos en Eclipse (la IDE para Java) y ahora mismo abordando ejercicios sobre bucles, el ejercicio es el siguiente:

Escribir un programa para introducir notas de alumnos. El usuario dirá primero
cuántas notas va a introducir. Después irá introduciéndolas una a una y, al terminar,
el programa le mostrará la media de las notas introducidas y también le dirá cuántos
suspensos hay y qué porcentaje suponen respecto de toda la clase. Comprobar
también que las notas están entre 0 y 10.
Por ejemplo: el usuario dice que va a introducir 5 notas y a continuación introduce: 3,
5, 8, 2 y 9. El programa le dirá que la media es 5,4 y también que hay 2 suspensos, lo
que representa un 40% de la clase.

Muchas gracias de antemano.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con un ejercicio para clase.

Publicado por Kabuto (1381 intervenciones) el 13/11/2021 20:13:13
Muestra lo que tengas hecho para poder corregirte o indicar donde estás fallando.

O intenta un nuevo código, pero ves haciéndolo paso a paso.

Empieza por pedir un número entero al usuario (la cantidad de notas que quiere introducir). Supongo que esto si sabrás hacerlo.

Teniendo ese número, lo usas como longitud para declarar el array de notas.

Y a continuación, haces un bucle para que vaya introduciendo notas.

De momento, olvídate de validar si son notas entre 0 y 10 o de calcular medias ni porcentajes. Tan solo haz lo de pedir notas.

Compártelo aquí, y si está correcto, ya pasamos a los siguientes puntos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un ejercicio para clase.

Publicado por anonimo (8 intervenciones) el 13/11/2021 20:39:27
Ya ayer Billy Joel resolvió algo similar en este enlace:

https://www.lawebdelprogramador.com/foros/Java/1797884-Ayuda-con-codigos-array.html

Intenta adaptarlo, lo que requieres es simplemente armar un vector o array y luego ir a leerlo con un ciclo e ir sumando para dividir sobre el total y obtener la media, y adicional crearás unas variables de tipo contador para ir contabilizando quienes aprueban o reprueban

Como dice Kabuto, intenta hacer algo y donde te pegues pues nos comentas y entre todos te asesoramos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con un ejercicio para clase.

Publicado por Daniel (3 intervenciones) el 13/11/2021 20:45:19
Buenas, muchas gracias por responderme. Seguí tu consejo y empecé de nuevo, pero sigo quedándome atascado en el mismo punto. Te paso el código de lo que llevo hecho:

package ejercicio9IX;
import java.util.Scanner;
public class ejercicio9IX {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("¿Cuántas notas vas a introducir");
int n1 = sc.nextInt();
for (int notas=0; notas<n1 ; notas++)
{
System.out.println("Introduce una nota");
notas =sc.nextInt();
}


sc.close();
}

}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un ejercicio para clase.

Publicado por anonimo (8 intervenciones) el 13/11/2021 21:04:08
Haber, que te recomendaría yo:

Cuando hagas la pregunta de Cuántas notas vas a introducir, le apliques una validación para que ese dato sea estrictamente numérico.

Lo otro que sería conveniente darle un rango es decir un mínimo de 2 y un máximo n (10) o cualquier número no muy alto

Eso que ingresen lo tienes que almacenar en algún lado, porque sino se pierde, o creas una variable y la vas procesando, o bien vas almacenando todo en un vector y luego lo recorres y lo procesas, ya eso es decisión tuya.

Apóyate en el enlace de Billy Joel, el único pero de ese código es que no está validando que la nota esté entre 1.0 y 10.0, pero ahí está lo que tú necesitas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con un ejercicio para clase.

Publicado por Kabuto (1381 intervenciones) el 13/11/2021 22:32:43
Venga, vas bien. Añade ahora algo más de lo que se pide. Por ejemplo, contar los suspensos.

Antes de comenzar el bucle, declara una variable para contar suspensos que se inicialice a 0.

Cada vez que se introduzca una nota, consulta con un if si la nota es inferior a 5 (o lo que se considere como suspenso), si se cumple esa condiciópn, incrementa el contador en +1.

Y luego al terminar el bucle, informa de los suspensos contados con un mensaje en pantalla.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Ayuda con un ejercicio para clase.

Publicado por Daniel (3 intervenciones) el 14/11/2021 18:39:16
Muchas gracias, conseguí resolver el ejercicio al completo.
aquí les dejo el código:

package ejercicio9IX;
import java.util.Scanner;
public class ejercicio9IX {

public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("¿Cuántas notas va a itntroducir?");
int totalnotas =sc.nextInt();
int suspensos = 0;
double media = 0;
double notaindividual;
for (double i = 0; i < totalnotas; i++) {
System.out.print("Introduzca una nota: ");
notaindividual = sc.nextInt();
if (notaindividual<0 || notaindividual>10)
{
System.out.print("(Las notas son de 0 a 10) Introduzca una nota: ");
notaindividual = sc.nextDouble();
}
if (notaindividual<5){
suspensos++;
}
media += notaindividual;
}
int porcentajesuspensos= suspensos*100/totalnotas;
System.out.println("La media de la clase es de : " + (media / totalnotas));
System.out.println("Han suspendido " + suspensos+" personas, lo que hace un "+porcentajesuspensos+"% de suspensos.");

sc.close();
}
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de Kabuto
Val: 3.428
Oro
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Ayuda con un ejercicio para clase.

Publicado por Kabuto (1381 intervenciones) el 14/11/2021 22:01:02
Muy bien, parece estar todo correcto.

Solo un detalle, al validar la nota, solo compruebas una vez si es válida:
1
2
3
4
5
if (notaindividual<0 || notaindividual>10)
{
System.out.print("(Las notas son de 0 a 10) Introduzca una nota: ");
notaindividual = sc.nextDouble();
}

Tras el aviso de que la nota es equivocada, el usuario si quiere puede volver a introducir una nota no válida y la aplicación se la tragará.

Se puede mejorar usando un ciclo while, de manera que se repetirá hasta que se introduzca una nota correcta

1
2
3
4
5
while (notaindividual<0 || notaindividual>10)
{
System.out.print("(Las notas son de 0 a 10) Introduzca una nota: ");
notaindividual = sc.nextDouble();
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con un ejercicio para clase.

Publicado por Brandon Mart (20 intervenciones) el 16/11/2021 22:05:53
como te quedo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar