Buongiorno.
Ho scritto un codice il java, che non posto per intero perchè estremamente lungo.
Scrivo solo qualche frammeto problematico. Gli errori sono scritti nei commenti.
Ho dei Warning strani e quando eseguo va in errore proprio a quelle righe, esclusa la prima in ordine di post.
Non fate caso ai nomi dei metodi/funzioni, tutti nello stesso foglio, perchè li ho dati abbastanza casualmente pensando di sbrigarmela velocemente e non immaginando questi problemi data la banalità dell'esercizio.
Detto ciò posto anche un breve spiegazione di quello che volevo fare consapevole del fatto che c'erano anche molti altri modi per arrivare alla soluzione, forse più semplici, ma che non avrebbero rispettato (forse) i vincoli richiesti. La posto anche se gli erorri che mi da penso siano più sintattici / logici e entrino poco con il testo dell'esercizio.
Qualcuno sa perchè e come risolvere? E' da ieri chi ci sto sbattendo la testa senza risultati!
Grazie!
Ho scritto un codice il java, che non posto per intero perchè estremamente lungo.
Scrivo solo qualche frammeto problematico. Gli errori sono scritti nei commenti.
Ho dei Warning strani e quando eseguo va in errore proprio a quelle righe, esclusa la prima in ordine di post.
Non fate caso ai nomi dei metodi/funzioni, tutti nello stesso foglio, perchè li ho dati abbastanza casualmente pensando di sbrigarmela velocemente e non immaginando questi problemi data la banalità dell'esercizio.
Detto ciò posto anche un breve spiegazione di quello che volevo fare consapevole del fatto che c'erano anche molti altri modi per arrivare alla soluzione, forse più semplici, ma che non avrebbero rispettato (forse) i vincoli richiesti. La posto anche se gli erorri che mi da penso siano più sintattici / logici e entrino poco con il testo dell'esercizio.
Ho un array di Elementi composti da un valore colorato in ordine crescente di valore. Devo crearne uno che sia uguale ma abbia per i numeri colorati B (blu) il valore modificato con se stesso più il numero rosso alla sua sinistra più vicino. Poi devo cercare sul primo array un numero a caso passato in input, se c'è devo verificare se è rosso e nel caso non lo sia vedere se nel secondo array è diventaro pari in seguito alla somma.
Java:
Elemento[] A = new Elemento[6];
A[0] = new Elemento(1, Colore.B);
A[1] = new Elemento(2, Colore.B);
A[2] = new Elemento(4, Colore.R);
A[3] = new Elemento(6, Colore.R);
A[4] = new Elemento(6, Colore.B);
A[5] = new Elemento(7, Colore.R);
Elemento[] C = A //C viene sottolineato di giallo, so che è inutile ma era per capire
Elemento[] B = Modifica(A); //Exception in thread "main" java.lang.NullPointerException
boolean flag = CercaConfronta(x, A, B);
Java:
public class Elemento {
private int valore;
private Colore col;
public Elemento(int valore, Colore col) {
this.valore = valore;
this.col = col;
}
public int getValore() {
return valore;
}
public void setValore(int valore) {
this.valore = valore;
}
public Colore getCol() {
return col;
}
public void setCol(Colore col) {
this.col = col;
}
}
Java:
public static Elemento[] Modifica(Elemento[] X) {
Elemento[] Y = new Elemento[X.length];
int u = 0;
int j = 0;
for (int i = 0; i < X.length - 1; i++) {
if (X[i].getCol() == Colore.R)
j = i;
u = X[i].getValore();
break;
}
for (int i = 0; i < X.length - 1; i++) {
if (i < j + 1) {
Y[i] = X[i];
} else {
if (X[i].getCol() == Colore.R) {
u = X[i].getValore();
} else {
Y[i].setValore(X[i].getValore() + u); //Exception in thread "main" java.lang.NullPointerException
}
}
}
return Y;
}
Java:
public static boolean CercaConfronta(int z, Elemento[] X, Elemento[] Y) {
int i = BinarySearch(X, 0, X.length - 1, z);
if (i == -1) {
return false;
} else {
if (X[i].getCol() == Colore.R || Y[i].getValore() % 2 == 0) { //The if statement is redundant
return true;
}
return false;
}
}
Grazie!
Ultima modifica: