|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Member
Iscritto dal: Apr 2007
Città: Torino
Messaggi: 95
|
[Java] problema
Ciao. Devo implementare i metodi trasformaInTripla della classe che metto qui sotto
Codice:
import java.util.Scanner; import static java.lang.System.*; public class CoppiaTripla{ static Scanner input = new Scanner(System.in); public static void main(String[] args) { Coppia [] array = creaArrayCoppia(); stampaArrayCoppia(array); // trasformaInTripla(array); stampaArrayTripla(trasformaInTripla(array)); } /** Metodo che crea e restituisce un array di Coppie. Gli interi che compongono le singole Coppie sono richiesti all'utente. */ public static Coppia [] creaArrayCoppia() { out.println("Di che lunghezza vuoi l'array?"); while(!input.hasNextInt()) { input.next(); out.print("Immetti un intero: "); } int n = input.nextInt(); Coppia [] array = new Coppia[n]; for(int i = 0; i < n; i++){ array[i] = new Coppia(); out.println("Inserisci il primo elemento della coppia numero " + i); array[i].setI(input.nextInt()); out.println("Inserisci il secondo elemento della coppia numero " + i); array[i].setJ(input.nextInt()); } return array; } /** Metodo che stampa un array di Coppie. */ public static void stampaArrayCoppia(Coppia [] a){ int n = a.length; for (int i = 0; i < n; i++) out.println(a[i]); } /** Metodo da completare che dato un array di Coppie costruisce e restituisce un array di Triple.*/ public static Tripla [] trasformaInTripla(Coppia [] a){ int dimensione=a.length; Tripla arr [] = new Tripla[dimensione]; for(int i=0; i<dimensione; i++){ //i<a.length arr[i].setI(a[i].getI()); //= a[i].getI(); arr[i].setJ(a[i].getJ()); if(arr[i].getI()<arr[i].getJ()){ arr[i].setK(arr[i].getI()); } else arr[i].setK(arr[i].getJ()); } return arr; } /** Metodo che stampa un array di Triple. */ public static void stampaArrayTripla(Tripla [] a){ int n = a.length; for (int i = 0; i < n; i++) out.println(a[i]); } } Codice:
class Tripla { private int i; private int j;; private int k; // NON INTRODURRE NESSUN COSTRUTTORE! // Si usa il costuttore di default. /** Restituisce il valore del campo i*/ public int getI() { return i; } /** Restituisce il valore del campo j*/ public int getJ() { return j; } /** Restituisce il valore del campo k*/ public int getK() { return k; } /** Modifica il campo i*/ public void setI(int i) { this.i = i; } /** Modifica il campo j*/ public void setJ(int j) { this.j = j; } /** Modifica il campo k*/ public void setK(int k) { this.k = k; } /** Restituisce una stringa che contiene tutti i valori dei campi dell'oggetto*/ public String toString(){ return "i: " + i + " j: " + j + " k: " + k; } } Codice:
class Coppia { private int i; private int j; // NON INTRODURRE NESSUN COSTRUTTORE! // Si usa il costuttore di default. /** Restituisce il valore del campo i*/ public int getI() { return i; } /** Restituisce il valore del campo j*/ public int getJ() { return j; } /**Modifica il campo i*/ public void setI(int i) { this.i = i; } /** Modifica il campo j*/ public void setJ(int j) { this.j = j; } /** Restituisce una stringa che contiene tutti i valori dei campi dell'oggetto*/ public String toString(){ return "i: " + i + " j: " + j; } } |
![]() |
![]() |
![]() |
#2 | |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Quote:
In arr hai inizialmente tutti i reference a null. Pertanto devi anche istanziare gli oggetti Tripla e assegnare i reference agli elementi dell'array.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
|
![]() |
![]() |
![]() |
#3 | |
Member
Iscritto dal: Apr 2007
Città: Torino
Messaggi: 95
|
Quote:
|
|
![]() |
![]() |
![]() |
#4 |
Member
Iscritto dal: Apr 2007
Città: Torino
Messaggi: 95
|
Grazie. Ho risolto cosi
Codice:
public static Tripla [] trasformaInTripla(Coppia [] a){ int dimensione=a.length; Tripla arr [] = new Tripla[dimensione]; for(int i=0; i<dimensione; i++){ arr[i]=new Tripla(); arr[i].setI(a[i].getI()); //= a[i].getI(); arr[i].setJ(a[i].getJ()); if(arr[i].getI()<arr[i].getJ()){ arr[i].setK(arr[i].getI()); } else arr[i].setK(arr[i].getJ()); } return arr; } |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 09:21.