Task 1Ich habe mich mal an Task 1 versucht. Anbei mein Java-Code. Allerdings funktioniert es nicht. In Zeile 40 wird der Index von p[j] zu groß, das heißt j = 7. Ich habe als Vorlage den Code von Folie 26 genommen. Hat irgendjemand eine Ahnung wieso es zu diesem Fehler kommt?
Ich habe den Code jedenfalls 3x geprüft und keinen Unterschied zu dem Code aus der Vorlesung gefunden..
private int min(int[] z){ int smallest = z[0]; for(int i = 0; i <= z.length - 1; i++){if(z[i] < smallest) smallest = z[i]; }
return smallest; }public String[][] dynMatChain(int[] p){
int n = p.length; String[][] m = new String[n+1][n+1]; int[][] s = new int[n+1][n+1]; for(int i = 1; i <= n; i++) m[i][i] = "0"; for(int l = 2; l <= n; l++){ for(int i = 1; i <= n - l + 1; i++){ int j = i + l - 1; m[i][j] = "99999"; int[] a = new int[20]; a[0] = Integer.parseInt(m[i][j]);int z = 1; for(int k = i; k <= j - 1; k++){ int q = Integer.parseInt(m[i][j]); a[z] = p[i-1]*p[k]*p[j] + Integer.parseInt(m[i][k]) + Integer.parseInt(m[k + 1][j]);
z++; m[i][j] = String.valueOf(min(a)); if(Integer.parseInt(m[i][j]) < q) s[i][j] = k;} }
} return m;}
und zum Testen public class MethodTest { public static void main(String[] args) { Method a = new Method(); int[] p = {6,10,4,13,5,25,8}; String[][] result = a.dynMatChain(p); for(int i = 0; i < 6; i++){ for(int j= 0; j < 6; j++){ System.out.print(result[j][i] + "\t");}
System.out.println("\n"); } } } --- Sent through the Infostudents Mailinglist List Archive: //www.freelists.org/archives/infostudents/ Subscribe / Unsubscribe: //www.freelists.org/list/infostudents