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

Gender: Male
Posts: 417



« Reply #15 on: 10-02-2011, 15:42:54 »

posta tutto il codice che lo guardo
Logged

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

Gender: Male
Posts: 1.583



WWW
« Reply #16 on: 10-02-2011, 15:45:04 »

posta tutto il codice che lo guardo

nuovo l'ho implemetato cosi  in B

public terna nuovo(terna t){
      
      t=new A(m()+a[1]-z);
      
      return t;



in A

public terna nuovo(terna t){
      
      t=new B(m()+a[0]);
      return t;
   }



e un altra cosa
2.   si calcoli la somma per tutti gli elementi  di classe C di calcola(p), dove p è il valore restituito da calcola() senza parametri per lo stesso oggetto.
??

ste cavolo di cose arabe
« Last Edit: 10-02-2011, 16:25:02 by Chuck_son » Logged

Aliens Exist
Shin
Forumista
***
Offline Offline

Gender: Male
Posts: 822

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


WWW
« Reply #17 on: 10-02-2011, 15:51:52 »

Quote
il toString della classe Terna nn deve fare la concatenazione di X, ma lo deve fare quello della classe A "figlia" di Terna.

ma perchè? non è un metodo che hanno in comune entrambi?
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.
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #18 on: 10-02-2011, 16:24:32 »

xkè ti dice che il numero di X è dato dal risultato del metodo m(). m() è un metodo presente nelle due figlie mentre la super classe lo dichiara ancora astratto. e poi xkè lacollezione nel main è di terna ma in realtà puntano a oggetti di tipo A e B
per chuck:
questo è quello di B
Code:
public Terna nuovo(Terna t)
{
return new A(m()-xyz[1]-t.xyz[2]);
}
questo quello di A
Code:
public Terna nuovo(Terna t)
{
return new B(m()+xyz[0]);
}

hai proprio sbagliato a intenderli...la z è in B è l'attributo dell'oggetto t di tipo Terna in input nel metodo poi devi richiamare i costruttori così...
Logged

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

Gender: Male
Posts: 1.583



WWW
« Reply #19 on: 10-02-2011, 16:27:11 »

xkè ti dice che il numero di X è dato dal risultato del metodo m(). m() è un metodo presente nelle due figlie mentre la super classe lo dichiara ancora astratto. e poi xkè lacollezione nel main è di terna ma in realtà puntano a oggetti di tipo A e B
per chuck:
questo è quello di B
Code:
public Terna nuovo(Terna t)
{
return new A(m()-xyz[1]-t.xyz[2]);
}
questo quello di A
Code:
public Terna nuovo(Terna t)
{
return new B(m()+xyz[0]);
}

hai proprio sbagliato a intenderli...la z è in B è l'attributo dell'oggetto t di tipo Terna in input nel metodo poi devi richiamare i costruttori così...

no va be io li ho chiamate in modo diverso le variabili.. quello che ho sbagliato è la classe B!! xD
Logged

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

Gender: Male
Posts: 1.583



WWW
« Reply #20 on: 10-02-2011, 16:31:55 »

haha assurdo non funziona lo stesso haha
Logged

Aliens Exist
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #21 on: 10-02-2011, 16:32:09 »

che errore ti da?
Logged

"Che la Forza sia con Te"
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #22 on: 10-02-2011, 16:32:56 »

Code:
import java.util.*;
abstract class Terna
{
protected int[] xyz;
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);
}
public String toString()
{
return getClass()+" :[ "+xyz[0]+", "+xyz[1]+", "+xyz[2]+" ]";
}
abstract public int m();
abstract public Terna nuovo(Terna t);
}

class A extends Terna
{
public A(int x)
{
super(x);
}
public A(int[] x)
{
super(x);
}
public Terna nuovo(Terna t)
{
return new B(m()+xyz[0]);
}
public int m()
{
return (xyz[0]+xyz[1]+xyz[2])/3;
}
public String toString()
{
String tmp="";
for(int i=0;i<m();i++)
tmp+='X';
return super.toString()+", "+tmp;
}
}

class B extends Terna
{
public B(int x)
{
super(x);
}
public B(int[] x)
{
super(x);
}
public Terna nuovo(Terna t)
{
return new A(m()-xyz[1]-t.xyz[2]);
}
public int m()
{
int max=0;
if(xyz[0]>xyz[1] && xyz[0]>xyz[2])
max=xyz[0];
else if(xyz[1]>xyz[2])
max=xyz[1];
else
max=xyz[2];
return max;
}
public String toString()
{
String tmp="";
for(int i=0;i<m();i++)
tmp+='X';
return super.toString()+", "+tmp;
}
}

class Prova6
{
public static void main(String[] args)
{
Random r=new Random(2999888);
Terna[] vett=new Terna[50];
for(int i=0;i<vett.length;i++)
{
int[] x = new int[3];
for(int j=0;j<x.length;j++)
x[j]=r.nextInt(10);
if(r.nextInt(2)==1)
vett[i]=new A(x);
else
vett[i]= new B(x);
}
int max=0;
for(int i=0;i<vett.length;i++)
if(vett[i].m()>max)
max=vett[i].m();
System.out.println(max);

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]=vett2[i-1].nuovo(vett2[i-2]);
for(int i=0;i<vett.length;i++)
System.out.println(vett[i].toString());
System.out.println();
for(int i=0;i<vett2.length;i++)
System.out.println(vett2[i].toString());
}
}

questo è tutto il programma e funziona perfettamente, confrontatelo cn questo
Logged

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

Gender: Male
Posts: 1.583



WWW
« Reply #23 on: 10-02-2011, 16:33:23 »

che errore ti da?

no non da errore mi stampa valori errati! ahah bo va be tranquillo.. sarà stata qualche vista nell'intero codice..

per quanto riguarda

2.   si calcoli la somma per tutti gli elementi  di classe C di calcola(p), dove p è il valore restituito da calcola() senza parametri per lo stesso oggetto.
??

ste cavolo di cose arabe

l'hai fatto questo esericizo?? perche scrivono ricorsivamente?? aja mah
Logged

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

Gender: Male
Posts: 1.583



WWW
« Reply #24 on: 10-02-2011, 16:41:20 »

ahahhahahahaahahahahahahhahaahahahahahahahahahahahahahahahahahahahaahahhahahahaahhahahahahahahahahahahahahahahahhahaha


sono un #@!!01Z#@!!@$^aaaaaaaaaaaaaaaaaaaaaa ahahahahahahahahhaahahhaah

sai cos'era il problema?? ahhaahhahahhaahahaha

siccome ad un certo punto la prima stampa andava a capo... io non vedevo il risultato giusto perche era dopo aahahahahhahahaha
Logged

Aliens Exist
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #25 on: 10-02-2011, 16:43:24 »

x quell'esercizio, nn è una cosa ricorsiva, semplicemente in quel diagramma la classe B, che è Astratta, ha il metodo calcola normale, quindi funzionante già li, mentre la sua classe figlia ne ha ancora un altro. quindi devi prendere il risultato del calcola() della figlia e mandarlo come parametro in input nel metodo calcola() della classe B che come vedi ha bisogno di un parametro in entrata.
Logged

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

Gender: Male
Posts: 1.583



WWW
« Reply #26 on: 10-02-2011, 16:44:35 »

x quell'esercizio, nn è una cosa ricorsiva, semplicemente in quel diagramma la classe B, che è Astratta, ha il metodo calcola normale, quindi funzionante già li, mentre la sua classe figlia ne ha ancora un altro. quindi devi prendere il risultato del calcola() della figlia e mandarlo come parametro in input nel metodo calcola() della classe B che come vedi ha bisogno di un parametro in entrata.

ah ecco grazie Cheesy in gamba
Logged

Aliens Exist
Aerith
Matricola
*
Offline Offline

Posts: 69



« Reply #27 on: 10-02-2011, 17:12:09 »

Scusate, ma perchè il vettore deve essere di dimensione 3? In effetti mi risulta tutto mettendo tale lunghezza, ma non ho capito perchè proprio 3
Logged
Aerith
Matricola
*
Offline Offline

Posts: 69



« Reply #28 on: 10-02-2011, 17:13:42 »

mmm...perchè le variabili sono 3!? 
Logged
StephCT
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 417



« Reply #29 on: 10-02-2011, 17:17:35 »

perchè Terna ha come attributo un array, e secondo indicazioni della richiesta, questo è lungo proprio 3, quindi nel main dobbiamo creare un array di 3 celle e passarlo al costruttore...
Logged

"Che la Forza sia con Te"
Pages: 1 [2] 3 4   Go Up
Print
Jump to: