elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Los 10 CVE más críticos (peligrosos) de 2020


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  [Ayuda] Problema con Array Bidimensional
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: [Ayuda] Problema con Array Bidimensional  (Leído 7,039 veces)
heidozanzo

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: [Ayuda] Problema con Array Bidimensional
« Respuesta #10 en: 9 Noviembre 2015, 01:41 am »

Al momento de crear los dos arreglos para guardar las notas mayores y menores ,me crea problemas aca
Código
  1. int[] mayor = new int[nombres.length];
  2. int[] menor = new int[ nombres.length];
  3.  
  4. for (f = 0; f < nombres.length; f++) {  //
  5.           for (a = 0; a < not1[f].length; a++) {
  6.               if (not1[f][a] > mayor) {       <------
  7.                   mayor[f] = not1[f][a];              <------
  8.                   nombreMayor = nombres[f];        
  9.               } else if (not1[f][a] < menor) {          <------
  10.                   menor[f] = not1[f][a];                <------
  11.                   nombreMenor = nombres[f];
  12.               }
  13.           }          
  14.       }
  15.  


En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: [Ayuda] Problema con Array Bidimensional
« Respuesta #11 en: 9 Noviembre 2015, 01:44 am »

Como ahora es un arreglo sería mayor[f] y menor[f], pero recuerda iniciar todos los elementos del arreglo.


En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
heidozanzo

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: [Ayuda] Problema con Array Bidimensional
« Respuesta #12 en: 9 Noviembre 2015, 02:01 am »

Hay algo aca que estoy pasando por alto porque me tira esto
Mayor nota ingresada de la clase del alumno 4orotro [I@68f7aae2
Menor nota ingresada de la clase del alumno null [I@4f47d241


Tengo esto aca

Código
  1.     int mayor[] = new int[nombres.length];
  2.     int menor[] = new int[ nombres.length];
  3.  
  4.  
  5.        for (f = 0; f < nombres.length; f++) {  //
  6.            for (a = 0; a < not1[f].length; a++) {
  7.                if (not1[f][a] > mayor[f]) {
  8.                    mayor[f] = not1[f][a];
  9.                    nombreMayor = nombres[f];
  10.                } else if (not1[f][a] < menor[f]) {
  11.                    menor[f] = not1[f][a];
  12.                    nombreMenor = nombres[f];
  13.                }
  14.            }          
  15.        }
  16.  

y esto

Código
  1. int mayor=-1,menor=101
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: [Ayuda] Problema con Array Bidimensional
« Respuesta #13 en: 9 Noviembre 2015, 03:16 am »

No puedes tener dos variables con el mismo nombre, ¿Cuál estás utilizando? para saber, por ejemplo, la nota más alta de los n alumnos entonces debes recorrer los arreglos donde se guardan las notas mayores de cada alumno:

Código
  1. int notaMayorEntreNAlumnos = 0;
  2. for(int i = 0; i < nombres.length;i++){
  3.    if( notaMayorEntreNAlumnos < mayor[i] )
  4.        notaMayorEntreNAlumnos = mayor[i];
  5. }
  6.  

Creo que así puedes conocer la nota mayor de cada alumno y la nota mayor de entre todas las notas obtenidas por los alumnos. sería lo mismo para conocer la nota menor.

Edito: Te salen estos resultados(4orotro [I@68f7aae2 y null [I@4f47d241) creo que porque no has iniciado los valores de los 2 arreglos que te creaste, o sea todos los mayores deben ir a -1 y los menores 101. Disculpa mi lentitud, la verdad no me siento bien en estos momentos.
« Última modificación: 9 Noviembre 2015, 03:24 am por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
heidozanzo

Desconectado Desconectado

Mensajes: 8


Ver Perfil
Re: [Ayuda] Problema con Array Bidimensional
« Respuesta #14 en: 9 Noviembre 2015, 06:32 am »

Aun inicianizandolos me tira lo mismo,no te preocupes solo lo pedi como ayuda no es urgente ni nada,creo que aun me estoy perdiendo de algo
Código
  1. import java.util.*;
  2.  
  3. import org.jfree.chart.ChartFactory;
  4. import org.jfree.chart.ChartFrame;
  5. import org.jfree.chart.JFreeChart;
  6. import org.jfree.data.general.DefaultPieDataset;
  7.  
  8. public class Finalv1 {
  9.  
  10.  
  11.    public static void main(String[] args) throws InterruptedException
  12.    {
  13.        int intentos = 0,op = 0;
  14.        Scanner teclado = new Scanner(System.in);
  15.        String usuarioCorrecto = "admin";
  16.        String usuarioIngresado = "";
  17.        String contraseñaCorrecta = "123";
  18.        String contraseñaIngresada = "";
  19.  
  20.        System.out.println("Bienvenido a Gestion de Alumnos 1.0 ");
  21.        do
  22.        {
  23.  
  24.         System.out.println("Ingrese Usuario: ");
  25.            usuarioIngresado = input.next();
  26.            System.out.println("Ingrese Contraseña: ");
  27.            contraseñaIngresada = input.next();
  28.            if (usuarioIngresado.equals(usuarioCorrecto) == false || contraseñaIngresada.equals(contraseñaCorrecta) == false || ((intentos <= 3)))
  29.            {
  30.             intentos++; // contador para los intentos
  31.             if (usuarioIngresado.equals(usuarioCorrecto)  || contraseñaIngresada.equals(contraseñaCorrecta))
  32.                {
  33.             System.out.println("Datos ingresados correctos");
  34.  
  35.                }
  36.             else if (intentos < 3)/* Aca que se repitiera siempre y cuando los intentos sean menores  a 3*/
  37.             {
  38.             System.out  .println("Error! usuario o contraseña incorrecta");
  39.             }
  40.             else
  41.             {
  42.            // Y aca te manda el ultimatum si te equivocas 3 veces
  43.             System.out.println("Contacte con el soporte tecnico.");
  44.             Thread.sleep(200000000);
  45.             }
  46.             }  
  47.            }
  48.        while (usuarioIngresado.equals(usuarioCorrecto) == false || contraseñaIngresada.equals(contraseñaCorrecta) == false);
  49.        do{  
  50.  
  51.         try{
  52.         System.out.print("\n\nMenú principal \n\n1: Ingresar información  \n\n2: Datos de los Alumnos \n\n3: Grafica   \n\n4: Finalizar programa");
  53.         System.out.println("\nSeleccione una opción del menú");
  54.         op=input.nextInt();
  55.         }catch(Exception e){
  56.         System.out.println("Error! ingrese una opción válida del menú");
  57.         input.nextLine();
  58.         }
  59.  
  60.         switch (op){
  61.         case 1: ingreseDatos();
  62.         break;
  63.         case 2:
  64.         try{
  65.         mostrarDatos();
  66.         }catch(NullPointerException e){
  67.         System.out.println("Error todavia no se ha ingresado ningun dato Presione Cualquier tecla para volver");
  68. input.nextLine();
  69. }finally{
  70. break;}
  71. case 3:
  72. try{
  73. grafica()
  74. ;
  75. System.out.println("Error todavia no se ha ingresado ningun dato Presione Cualquier tecla para volver");
  76. input.nextLine();
  77. }finally{
  78. break;}
  79. case 4:
  80. System.out.println("Fin del programa");
  81. break;
  82. default:
  83. System.out.println("Error! ingrese una opción válida del menú");
  84. }
  85.         }while (op!=4 );
  86.        }
  87.  
  88.    public static Scanner input = new Scanner(System.in);
  89.    public static String[] nombres;
  90.    public static String nombreMayor;
  91.    public static String nombreMenor;
  92.    public static int[][] not1;
  93.    public static int a = 0, f = 0, pos = 0, sumaPos = 0, r = 0, suma = 0, PromedioTMP = 0,nualumn = 0,promedioAlumn,promedioGral,sumaProm,promFin,cont1=0,cont2=0,cont3=0,cont4=0;
  94.  
  95.    public static void ingreseDatos()
  96.    {
  97.     try{
  98.     System.out.println("Cantidad de alumnos en el grupo: ");
  99.     nualumn = input.nextInt();    
  100.     }catch(Exception e){
  101.     input.nextLine();
  102.     System.out.println("Error Numero invalido regresando al menu");    
  103.     }
  104.     nombres = new String[nualumn];
  105.     not1 = new int[nualumn][5];
  106.     for (f = 0; f < nombres.length; f++)
  107.     {
  108.     System.out.println("Ingrese nombre del alumno ");
  109.     nombres[f] = input.next();
  110.  
  111.     for (a = 0; a < 5; a++)
  112.     {
  113.     while ( not1[f][a]   < 1 ||  not1[f][a]   > 12)
  114.     {
  115.     try{
  116.     System.out.println("Ingrese nota "+(a+1));
  117.     not1[f][a]   = input.nextInt();
  118.     }catch(InputMismatchException e){
  119.                        input.nextLine();
  120.                        System.out.println("Error ingrese un numero valido");
  121.                        }
  122.     }
  123.     }
  124.     } System.out.println("Datos Ingresados Correctamente volviendo al Menu");
  125.     }
  126.  
  127.  
  128.  
  129.    private static void grafica() {
  130.     DefaultPieDataset dataset = new DefaultPieDataset();
  131.     dataset.setValue("Aprobados", cont1);
  132.     dataset.setValue("Desaprobados", cont2);
  133.     JFreeChart grafica = ChartFactory.createPieChart3D(
  134.     "Grafica de Aprobados y Desaprobados", // El nombre de la gráfica
  135.     dataset, // El arreglo de datos
  136.     false, // Indica si lleva leyenda
  137.     true, // Indica si lleva tooltips
  138.     false); // Indica si son URls
  139.       // Mostramos la grafica en pantalla
  140.     ChartFrame frame = new ChartFrame("Graficador", grafica);
  141.        frame.pack();
  142.     frame.setVisible(true);
  143.    }
  144.  
  145.  
  146.  
  147.  
  148.    // Opcion 3 de la lista
  149.  
  150.    private static void mostrarDatos(){
  151.  
  152.  
  153.     for (f = 0; f < nombres.length; f++)
  154.     {
  155.     System.out.println("Alumno: " + nombres[f]);
  156.     for (a = 0; a < 5; a++)
  157.     {
  158.     System.out.println("Notas " + not1[f][a]);
  159.     }  
  160.     }
  161.     for (f = 0; f < nombres.length; f++)
  162.     {    
  163.     PromedioTMP = 0;
  164.     // Ciclo para recorrer las columnas
  165.     for (a = 0; a < 5; a++)
  166.     {    
  167.     PromedioTMP = PromedioTMP + not1[f][a];
  168.     }
  169.     promedioAlumn=PromedioTMP/5;
  170.     for( int i=0; i<nualumn; i++ ){
  171.     sumaProm+= promedioAlumn;
  172.     }
  173.     promFin=((sumaProm/nualumn)/nualumn);
  174.  
  175.     System.out.println("Promedio del alumno " + nombres[f] + ": "+ promedioAlumn);
  176.  
  177.     if(promedioAlumn>=7){
  178.     cont1 = cont1 + 1;
  179.     System.out.println("Aprobado");
  180.     }
  181.     else{
  182.     System.out.println("Reprobado");
  183.             cont2=cont2+1;
  184.             }
  185.  
  186.     }
  187.  
  188.  
  189.     int mayor[] = new int[nombres.length];
  190.     int menor[] = new int[ nombres.length];
  191.  
  192.  
  193.        for (f = 0; f < nombres.length; f++) {  //
  194.            for (a = 0; a < not1[f].length; a++) {
  195.                if (not1[f][a] > mayor[f]) {
  196.                    mayor[f] = not1[f][a];
  197.                    nombreMayor = nombres[f];
  198.                } else if (not1[f][a] < menor[f]) {
  199.                    menor[f] = not1[f][a];
  200.                    nombreMenor = nombres[f];
  201.                }
  202.            }          
  203.        }
  204.  
  205.     System.out.println("Mayor nota ingresada de la clase del alumno "+ nombreMayor + " " + mayor[f]);
  206.     System.out.println("Menor nota ingresada de la clase del alumno "+ nombreMenor + " " + menor[f]);
  207.     System.out.println("Promedio General de la Clase :  "+promFin);
  208.     }
  209.    }
  210.  
  211.  
En línea

0xFer


Desconectado Desconectado

Mensajes: 400



Ver Perfil
Re: [Ayuda] Problema con Array Bidimensional
« Respuesta #15 en: 9 Noviembre 2015, 15:46 pm »

Para iniciar todos los valores tendrías que hacerlo así:

Código
  1. for(int i = 0; i < nombres.length;i++)
  2.    mayor[i] = -1;

Haces lo mismo con menor[]. por cierto en las últimas lineas de tu código:

Código
  1. System.out.println("Mayor nota ingresada de la clase del alumno "+ nombreMayor + " " + mayor[f]);
  2. System.out.println("Menor nota ingresada de la clase del alumno "+ nombreMenor + " " + menor[f])

Lo que haces es imprimir la nota más alta pero del último alumno. Antes de eso tendrías que ver cuál nota( de entre las mejores notas obtenidas por los alumnos) es la mayor así;

Código
  1. int notaMayorEntreNAlumnos = 0;
  2. for(int i = 0; i < nombres.length;i++){
  3.   if( notaMayorEntreNAlumnos < mayor[i] )
  4.       notaMayorEntreNAlumnos = mayor[i];
  5. }

Si sólo te interesa saber cúal es la nota más alta de entre todas las calificaciones obtenidas(y la más baja) pues no es neccesario utilizar arreglos, sólo basta con declarar una variable que guarde la nota mayor y menor, eso es lo que estás intentando hacer no? Conocer sólo la nota más alta( y más baja) y saber el alumno que la obtuvo
« Última modificación: 9 Noviembre 2015, 15:48 pm por 0xFer » En línea

Código
  1. int getRandomNumber(){
  2.    return 4; //chosen by fair dice roll
  3.              //guaranteed to be random
  4. }
Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Array bidimensional en pascal.
Ejercicios
sv51 4 14,058 Último mensaje 21 Junio 2008, 22:30 pm
por sv51
Ordenar array bidimensional
Java
KaRaLLo 5 18,696 Último mensaje 1 Abril 2013, 02:36 am
por seraff
[c++][Ayuda] Constructor y destructor con array bidimensional.
Programación C/C++
anonimo12121 2 2,968 Último mensaje 28 Marzo 2012, 22:02 pm
por anonimo12121
Ayuda con Array bidimensional
Programación General
Javaniano 0 2,005 Último mensaje 8 Diciembre 2012, 13:38 pm
por Javaniano
Ayuda error en array bidimensional
Programación C/C++
kerkox 1 1,720 Último mensaje 21 Abril 2014, 08:48 am
por eferion
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines