Pages: [1] 2 3 4   Go Down
Print
Author Topic: Problema esercizio per seconda prova  (Read 7240 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Shin
Forumista
***
Offline Offline

Gender: Male
Posts: 822

Io sono ciò che sono per ciò che siamo tutti


WWW
« on: 10-02-2011, 13:06:24 »

Ho un problema con questo esercizio:

http://filebeam.com/8b0b721c055e97522b8bc456f09c4cde

Per quanto riguarda il seguente risultato:

vett = {  A : [ 2, 3, 9 ]  XXXX,   … ,  A : [ 6, 9, 9 ]  XXXXXXXX },     Max m()=9,

ci sono riuscito però:

1) Non riesco a capire cosa vuol dire "a.  i primi due oggetti sono dati, rispettivamente, dall’ultimo e dal primo elemento di vett (gli oggetti non devono essere clonati),"

2) L'output del vett2 dovrebbe essere: vett2 = { □, □,  B : [ 6, 6, 6 ]  XXXXXX,  … ,  B : [ -18, -18, -18 ] }.
invece il mio è diverso....

Ecco la mia soluzione:

- Classi: http://paste.ubuntu.com/565338/
- main: http://paste.ubuntu.com/565339/

Qualcuno è in grado di aiutarmi?
Logged

"Il peggiore analfabeta è l’analfabeta politico. Egli non sente, non parla, nè s’importa degli avvenimenti politici. Egli non sa che il costo della vita, il prezzo dei fagioli, del pesce, della farina, dell’affitto, delle scarpe e delle medicine dipendono dalle decisioni politiche.

L’analfabeta politico è così somaro che si vanta e si gonfia il petto dicendo che odia la politica.

Non sa, l’imbecille, che dalla sua ignoranza politica nasce la prostituta, il bambino abbandonato, l’assaltante, il peggiore di tutti i banditi,
che è il politico imbroglione, il mafioso corrotto, il lacchè delle imprese nazionali e multinazionali."

(Bertolt Brecht)

Collettivo SDAI: collettivosdai.altervista.org, facebook.
Movimento Studentesco Catanese: www.movimentostudentesco.org

https://github.com/ShinDarth
http://shinworld.altervista.org
http://www.openprogrammers.it

LinuxMint user.
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #1 on: 10-02-2011, 13:18:02 »

         Random r = new Random (2999888);
         for (int i=0; i<vett.length; i++) {
           for (int j=0; j<x.length; j++)
                 x[j] = r.nextInt(10);
           if (r.nextInt(2)==1) vett = new A(x);
                           else vett = new B(x);
      }      


DA DOVE PRENDE X??  è lo stesso esercizio nel main che propone
Logged

Aliens Exist
markus182
Matricola
*
Offline Offline

Gender: Male
Posts: 28



« Reply #2 on: 10-02-2011, 13:19:11 »

si è vero... non c'è x -.-''
la devi creare tu... dovrebbe essere di dimensione 3
Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #3 on: 10-02-2011, 13:20:01 »

si è vero... non c'è x -.-''
la devi creare tu... dovrebbe essere di dimensione 3

ah ecco non c'ero arrivato ahhah graize Cheesy
Logged

Aliens Exist
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #4 on: 10-02-2011, 13:20:29 »

ma è un vettore no=?
Logged

Aliens Exist
markus182
Matricola
*
Offline Offline

Gender: Male
Posts: 28



« Reply #5 on: 10-02-2011, 13:22:52 »

sisi.. devi fare int[] x= new int[3];   
Logged
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #6 on: 10-02-2011, 13:30:18 »

cmq per quanto riguarda shin.. lo stavo facendo pure io... vediamo un po..
Logged

Aliens Exist
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #7 on: 10-02-2011, 13:31:46 »

   terna [] vett2=new terna[25];
        
        vett2[0]=vett[49];
        vett2[1]=vett[0];


forse per clonare intendeva questo?
« Last Edit: 10-02-2011, 13:39:19 by Chuck_son » Logged

Aliens Exist
markus182
Matricola
*
Offline Offline

Gender: Male
Posts: 28



« Reply #8 on: 10-02-2011, 13:34:33 »

ah vero xD
dunque... per quanto riguarda il punto 1... io ho creato così i primi due vett
Quote
vett2[0]=vett[vett.length-1];
vett2[1]=vett[0];
non lo so se ho fatto clonaggio secondo il prof..  [Emoticon] Asd
Logged
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #9 on: 10-02-2011, 13:39:23 »

shin intanto c'è un errore proprio nel seguire la richiesta: i costruttori di Terna devono richiamare il primo...così:
Code:
public Terna(int x, int y, int z)
{
xyz=new int[3];
xyz[0]=x;
xyz[1]=y;
xyz[2]=z;
}
public Terna(int[] a)
{
this(a[0],a[1],a[2]);
}
public Terna(int x)
{
this(x,x,x);
}

poi il toString della classe Terna nn deve fare la concatenazione di X, ma lo deve fare quello della classe A "figlia" di Terna. poi devi seguire le indicazioni, i due metodi di Terna abstract devono essere anche public.
il metodo nuovo() di A scrivilo così senza dover creare un nuovo oggetto da referenziare:

Code:
public Terna nuovo(Terna t)
{
return new B(m()+xyz[0]);
}

anche il nuovo() della classe B fallo così:
Code:
public Terna nuovo(Terna t)
{
return new A(m()-xyz[1]-t.xyz[2]);
}

qui dice che devono essere 3 componenti uguali quindi basta che gliene mandi una che fa il terzo costruttore della classe Terna, che a sua volta richiama il primo.

questi sn tutti i problemi nelle classi....poi nel main l'unica cosa che devi aggiungere è
vett2[0]=vett[vett.length-1];
vett2[1]=vett[0];
subito dopo la dichiarazione del vettore vett2. questo serve a soddisfare la richiesta 2a) che dicevi te. il resto nel main è perfetto.
Logged

"Che la Forza sia con Te"
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #10 on: 10-02-2011, 13:47:38 »

per quanto riguarda il punto 2 B

Code:
terna [] vett2=new terna[25];
        
        vett2[0]=vett[vett.length-1];
        vett2[1]=vett[0];
        
        for (int i=2;i<vett2.length;i++){
        
         vett2[i]=vett[i-1].nuovo(vett[i-2]);
    
        
        
        }
dove sbaglio?
« Last Edit: 10-02-2011, 13:51:59 by Chuck_son » Logged

Aliens Exist
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #11 on: 10-02-2011, 13:58:53 »

nn è:
Code:
vett2[i]=vett[i-1].nuovo(vett[i-2]);

ma:
Code:
vett2[i]=vett2[i-1].nuovo(vett2[i-2]);

cioè ttti gli elementi si basano sui precedenti dello stesso vettore
Logged

"Che la Forza sia con Te"
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #12 on: 10-02-2011, 14:50:11 »

nn è:
Code:
vett2[i]=vett[i-1].nuovo(vett[i-2]);

ma:
Code:
vett2[i]=vett2[i-1].nuovo(vett2[i-2]);

cioè ttti gli elementi si basano sui precedenti dello stesso vettore


ho provato .. il risultato è lo stesso! O.o cioe sbagliato sia come l'ho fatto io.. che come l'hai fatto tu.. sono uguali.. pero non risultano come dovrebbero
Logged

Aliens Exist
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #13 on: 10-02-2011, 15:08:25 »

io ho scritto così come ti ho postato e mi funziona. forse hai costruito male i metodi nuovo oppure tutta la parte precedente del main...
Logged

"Che la Forza sia con Te"
Chuck_son
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 1.583



WWW
« Reply #14 on: 10-02-2011, 15:41:54 »

io ho scritto così come ti ho postato e mi funziona. forse hai costruito male i metodi nuovo oppure tutta la parte precedente del main...


mistero ahahaha il resto stampa tutto giusto mah
Logged

Aliens Exist
Pages: [1] 2 3 4   Go Up
Print
Jump to: