Hallo Leute,
mein Programm liest aus einer Datei die Entfernungsmatrix ein.
Dann sollen nach einer Formel die Werte aus dieser Matrix einer Variable(bla9) zugewiesen werden und ausgegeben.
Aber mittendrin bricht das Programm ab...
Und ich weiss nicht warum.
Hat jemand eine Idee?
Und hier ist die einzulesene Textdatei:
mein Programm liest aus einer Datei die Entfernungsmatrix ein.
Dann sollen nach einer Formel die Werte aus dieser Matrix einer Variable(bla9) zugewiesen werden und ausgegeben.
Aber mittendrin bricht das Programm ab...
Und ich weiss nicht warum.
Hat jemand eine Idee?
Code:
import java.util.Scanner;
import java.io.*;
import java.util.*;
class Savings {
public static void main(String [] args)throws IOException {
int tourlength = 0;
int loadingcapacity=0;
int j=0;
String line;
//count number of places in list
Scanner readplaces = new Scanner(new File("Eingabe2.txt"));
int nplaces=-2;
while (readplaces.hasNextLine()){
line=readplaces.nextLine(); nplaces++;
}
String [] [] tours = new String [nplaces][(nplaces+1)];
//Entfernungsmatrix, ausgehend aus der String Matrix
int [][] array = new int[nplaces][nplaces+1];
readplaces.close();
//read max tourlength and max loadingcapacity from txt file
Scanner read = new Scanner(new File("Eingabe2.txt"));
tourlength = Integer.parseInt(read.nextLine());
loadingcapacity = Integer.parseInt(read.nextLine());
System.out.println("max tourlength: "+tourlength);
System.out.println("max loadingcapacity: "+loadingcapacity+"\n");
//read tourinformation from next lines
while (read.hasNextLine()){
line = read.nextLine();
String [] sline = line.split(",");
for(int i=1; i<sline.length;i++) {
if (i==1) { tours[j][(i-1)] = sline[i];array[j][(i-1)]=Integer.valueOf(sline[i]);}
else {tours[j][(i-1+j)] = sline[i];array[j][(i-1+j)]=Integer.valueOf(sline[i]);}
}
j++;
}
//print out matrix
System.out.print("Ort\tMenge");
for(int i=2;i<=nplaces;i++){
System.out.print("\tDist"+i);
}
// Ausgabe der Entfertungsmatrix ( als Integer), die wir eingelesen haben.
System.out.print("\tDepot\n\n");
for (int i=0; i < array.length; i++){
System.out.print("Ort"+(i+1)+"\t");
for (int k=0; k < array[0].length; k++){
if (array[i][k]==0) {System.out.print("-\t");}
else {System.out.print(array[i][k]+"\t");}
}
System.out.println(""); }
ArrayList <Integer> liste = new ArrayList<Integer>();
//Berechung des Savings
int l=0;
int v=1;
for(int k=0;k<(array.length-1);k++){
for(int d=0;d<(array.length-2);d++){
int bla9= array[l][array.length]+array[v][array.length]-array[l][v];
v++;
System.out.print(bla9+"\t");}
System.out.println();
l++;v=l+1;
}
}
}
Code:
200
10
a,3,60,48,32,25,15,10,40
b,4,48,35,25,26,16,35
c,2,30,32,31,23,28
d,5,26,38,29,25
e,4,32,26,10
f,4,34,10
g,5,25