|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 3
|
Questo programma non viene eseguito, PERCHE'????
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; } } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2006
Messaggi: 876
|
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 |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 3
|
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...
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Magari riporta l'errore...mi viene il sospetto che sia un "index out bound"...
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:40.