Java - Calcular Promedio y Determinar la Mayor Nota

 
Vista:
Imágen de perfil de Geraldine
Val: 53
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Calcular Promedio y Determinar la Mayor Nota

Publicado por Geraldine (25 intervenciones) el 06/05/2018 01:04:43
Me piden calcular el promedio de 3 alumnos, dichos promedios dependen de 2 notas sacadas al azar a partir de Math.random()

Mi inconveniente es que no se por qué en la Clase Principal, en la parte de "Apoyo.mostrarCalculos(nom, prom)" me dice que no puedo convertirlo en Double. Se que me esta faltando un paso, mas no lo recuerdo.

Lo otro es que pide determinar el Mayor Promedio. Se que puedo usar el ciclo if para comparar, pero como las notas se sacan de forma random no se como estructurarlo.

Clase Apoyo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package Apoyo;
import java.util.*;
import java.util.Scanner;
 
public class Apoyo {
 
    public static String [] leoNomb(){
    //Variables: 
    Scanner scanner = new Scanner(System.in);
    String n[] = new String[3];
 
    //Creamos un ciclo:
        for (int x = 0; x < n.length; x++) {
            System.out.print("Ingrese el nombre del alumno "+(x+1)+": ");
            n[x] = scanner.next();
        }
        return n;
    }
 
    public static int [][] leoNotas(){
    //Variables:    
    int notas[][]= new int [3][2];
 
 
    //Creamosun ciclo:
        for (int i = 0; i < notas.length; i++){
 
            for (int j = 0; j < notas[0].length; j++){
 
                notas[i][j]=(int)(20 * Math.random() + 1);
            }
        }
        return notas;
}
 
    public static void mostrar(String nomb[],int notas [][]){
        //Creamos la estructura de la Matriz:              
        System.out.println("\nListado general");
 
        //Creamosun ciclo:
        for (int i = 0; i < notas.length; i++){
            System.out.printf("%-12s",nomb[i]);
 
        //Este for organiza las notas en Columna segun la Fila    
            for (int j = 0; j < notas[0].length; j++){
                System.out.printf("%3d",notas[i][j]);
 
            }
            System.out.println("");
        }
    }
 
    public static double[] calculos(int notas [][]){
        double prom[] = new double[notas.length];
 
    // Ciclo que recorre las filas de la matriz
        for (int i = 0; i < notas.length; i++) {
            double acumulador = 0;
            // Ciclo que recorre las columnas de la matriz
            for (int j = 0; j < notas[i].length; j++) {
                acumulador += notas[i][j];
            }
            prom[i] = acumulador / 3;
        }
        return prom;
    }
 
    public static void mostrarCalculos(String nomb[],double prom[][]){
        //Creamos la estructura de la Matriz:              
        System.out.println("\nResultado Fin de Curso");
 
        //Creamosun ciclo: Este for organiza los nombres en Fila
        for (int i = 0; i < prom.length; i++){
            System.out.printf("%-12s",nomb[i]);
 
        //Este for organiza las notas en Columna segun la Fila    
            for (int j = 0; j < prom[0].length; j++){
                System.out.printf("%3f",prom[i][j]);
            }
            System.out.println("");
        }
    }
}

Clase Principal:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
package Principal;
import Apoyo.*;
 
public class Principal {
 
    public static void main(String[] args) {
        //Variables:
        String nom[];
        int notas[][];
        double prom [][];
 
        //Defino los arreglos donde seran almacenados los nombres y las notas:
        nom = Apoyo.leoNomb();
        notas = Apoyo.leoNotas();
        prom = Apoyo.mostrarCalculos(nom, prom);
 
        //Muestro el resultado de las variables:
        Apoyo.mostrar(nom, notas);
        Apoyo.mostrarCalculos(nom, prom);
        System.out.println("Fin del programa");
    }
}
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 Pedro
Val: 305
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Calcular Promedio y Determinar la Mayor Nota

Publicado por Pedro (102 intervenciones) el 06/05/2018 02:00:57
Creo que es porque has creado mal el array bidimensional así:

double prom [][]; //En java debes indicar la cantidad de vectores que vas a ocupar double[][] prom = new double[3][2];

//En php y javascript no hay que indicar los vectores a usar pero en java sí.

Y luego cuando estás llamando al método estático no recibes nada porque es un void mira:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//Aquí llamas al método estático  pero no recibes nada luego ese es el error creo yo
 
prom = Apoyo.mostrarCalculos(nom, prom);
 
/*Aquí te muestro el método al que llamas como puedes apreciar es void y no retorna ningún dato tendrás que 
  modificar  para que retorne un array bidimensional que es lo que espera  la matriz prom*/
 
public static void mostrarCalculos(String nomb[],double prom[][]){
        //Creamos la estructura de la Matriz:
        System.out.println("\nResultado Fin de Curso");
 
        //Creamosun ciclo: Este for organiza los nombres en Fila
        for (int i = 0; i < prom.length; i++){
            System.out.printf("%-12s",nomb[i]);
 
        //Este for organiza las notas en Columna segun la Fila
            for (int j = 0; j < prom[0].length; j++){
                System.out.printf("%3f",prom[i][j]);
            }
            System.out.println("");
        }
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