PDA

View Full Version : Questo programma non viene eseguito, PERCHE'????


Puzzuramurri
01-07-2007, 17:41
SONO ALLE PRIME ARMI CON JAVA, HO SCRITTO QUESTO PROGRAMMINO CHE MI VIENE COMPILATO MA NON ESEGUITO, O MEGLIO NON RESTITUISCE NIENTE. FORSE IL PROBLEMA STA NELLA MATRICE, SE COSI' FOSSE AVRESTE DEL MATERIALE PER IMPARARE AD USARE LE MATRICI???

GRAZIE

import java.lang.*;

public class Wagnerwhitin {
public static void main(String[] args) {
int t = 4;
int[] d = new int[t];
d[0] = 20;
d[1] = 30;
d[2] = 40;
d[3] = 30;


int[] c = new int[t];
c[0] = 3;
c[1] = 3;
c[2] = 4;
c[3] = 4;

int[] h = new int [t];
h[0] = 2;
h[1] = 2;
h[2] = 1;
h[3] = 1;

int[] a = new int [t];
a[0] = 30;
a[1] = 40;
a[2] = 30;
a[3] = 50;


System.out.println(trovaIstantiProduttivi(4,d, c, a, h));
}

public static int[] trovaIstantiProduttivi (int t, int[] d, int[] c, int[] a,int[] h){
int[][] m;
m = new int[0][0];
int[] l;
l = new int[0];
int[] p;
for(int j=0; j<t; j++){
for(int k=j; k<=t; k++){
int da=0;
while(j<=k){
da += d[j];
}
int ho = 0;
while(j<k){
ho += h[j];
}
int de = 0;
while(j+1<=k){
de += d[j+1];
}
m[j][k] = a[j]+c[j]*da+ho*de;
}
}
for(int k=0; k<=t; k++){
for(int j=0; j<=0; j++){
int[] f;
f = new int[0];
int min;
min = t+1;
f[min] = 1000;
f[0] = 0;
f[k] = f[j-1] + m[j][k];
if(f[k]<f[min]){
min = k;

l[k]=j;
}
}
}
p = new int[0];
p[0] = l[t];
int last = l[t];

while(last!=1){
last = l[last-1];
int[] nuovo;
nuovo = new int[p.length+1];
int i;
for(i=0; i<p.length;i++)
nuovo[i] = p[i];
nuovo[nuovo.length-1] = last;
p =nuovo;




}
return p;

}
}

squall15
01-07-2007, 17:52
Non ho visto tutto il programma ma hai creato un ciclo infinito qui
while(j<=k)
{
System.out.println ("CIAO");
da += d[j];
}

se non modifichi mai il valore di j resterà sempre a 0, quindi lì il programma cicla all'infinito

Puzzuramurri
01-07-2007, 18:30
Grazie del consiglio, ho corretto quell'errore. Quando va in esecuzione mi da un errore alla riga con la matrice m[j][k] = a[j]+c[j]*da+ho*de perchè molto probabilmente ho sbagliato il modo di inserimento dei dati nella matrice. Se qualcuno sa darmi qualche consiglio...

cionci
02-07-2007, 08:24
Magari riporta l'errore...mi viene il sospetto che sia un "index out bound"...