0
import java.util.Random;
import java.util.Scanner;


public class Version2 {

    static double procesos[][];
    static int n;
    static double tiempo=0;
    static double transito[];
    static double diferencia=0;

    public static void main(String[] args) {



        generarDatos();
        System.out.println("\nDatos aleatorios");     
        imprimirDatos();
        ordernar_Tprocesamiento();
        System.out.println("\nDatos ordenados");        
        imprimirDatos();
        Ttransito();




    }

    private static void generarDatos() {
        Random valores = new Random();
        Scanner entrada = new Scanner(System.in);
        System.out.print("Entre el numero de tareas: ");
        n = entrada.nextInt();

        // Crea el vector nombre y la matriz examen
        procesos = new double[n][2];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 2; j++) {
                procesos[i][j] = valores.nextGaussian()*10 +100;
            }
        }
    }


        //En la posición 0,0 de la matriz se define el tiempo de procesamiento
        //En la posición 1,0 de la matriz se define el plazo faltante

    private static void imprimirDatos() {

        for (int i = 0; i < n ; i++) {
            System.out.print("\n");
            for (int j = 0; j < 2; j++) {

                    System.out.printf(String.format("%.2f", procesos[i][j]) + "   ");                 
            }
        }
    }
    //Ordena por tiempo de procesamiento

    private static void ordernar_Tprocesamiento() {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (procesos[j][0] > procesos[j + 1][0]) {
                    // Intercambia dos filas de la matriz
                    double[] filaTemp = procesos[j];
                    procesos[j] = procesos[j + 1];
                    procesos[j + 1] = filaTemp;

                }
            }

        }


    }  

    // aqui se me presenta el error, al tratar de sumar las posiciones de la primera columna del array posicion 
   private static void Ttransito(){
        for (int i = 0; i < n; i++){

                tiempo = tiempo + procesos[i][0];
                    transito[i]=tiempo;

    }

  }
}

Al final arroja este error

Entre el numero de tareas: 5

Datos aleatorios

102,38 84,59
101,22 87,27
117,50 102,96
110,34 103,68
102,50 99,03
Datos ordenados

101,22 87,27
102,38 84,59
102,50 99,03
110,34 103,68
117,50 102,96 102.37715253750525

Exception in thread "main" java.lang.NullPointerException at Version2.Ttransito(Version2.java:84) at Version2.main(Version2.java:23)

Esteban
  • 1
  • 1

1 Answers1

0

Como bien te dice el error, el problema está en que estás intentando meter un array en una variable que ni siquiera es un array y por esoes nulo.

Lo primero es declarar bien el array transito:

double[] transito; //Ahora si que es un array de dobles

En segundo lugar hace falta declarar el tamaño de este array. Por lo que al calcular el int n, que es el tamaño que le quieres dar, se lo pasamos al array:

transito = new double[n]; //Ajusta tamaño del array

Y todo el código se vería así:

import java.util.Random;
import java.util.Scanner;


public class Version2 {

    static double procesos[][];
    static int n;
    static double tiempo=0;
    static double[] transito;
    static double diferencia=0;

    public static void main(String[] args) {



        generarDatos();
        System.out.println("\nDatos aleatorios");     
        imprimirDatos();
        ordernar_Tprocesamiento();
        System.out.println("\nDatos ordenados");        
        imprimirDatos();
        Ttransito();




    }

    private static void generarDatos() {
        Random valores = new Random();
        Scanner entrada = new Scanner(System.in);
        System.out.print("Entre el numero de tareas: ");
        n = entrada.nextInt();
        transito = new double[n];
        // Crea el vector nombre y la matriz examen
        procesos = new double[n][2];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < 2; j++) {
                procesos[i][j] = valores.nextGaussian()*10 +100;
            }
        }
    }


        //En la posición 0,0 de la matriz se define el tiempo de procesamiento
        //En la posición 1,0 de la matriz se define el plazo faltante

    private static void imprimirDatos() {

        for (int i = 0; i < n ; i++) {
            System.out.print("\n");
            for (int j = 0; j < 2; j++) {

                    System.out.printf(String.format("%.2f", procesos[i][j]) + "   ");                 
            }
        }
    }
    //Ordena por tiempo de procesamiento

    private static void ordernar_Tprocesamiento() {
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n - i - 1; j++) {
                if (procesos[j][0] > procesos[j + 1][0]) {
                    // Intercambia dos filas de la matriz
                    double[] filaTemp = procesos[j];
                    procesos[j] = procesos[j + 1];
                    procesos[j + 1] = filaTemp;

                }
            }

        }


    }  

    // aqui se me presenta el error, al tratar de sumar las posiciones de la primera columna del array posicion 
   private static void Ttransito(){
        for (int i = 0; i < n; i++){

                tiempo = tiempo + procesos[i][0];
                    transito[i]=tiempo;

    }

  }
}