Pages: [1]   Go Down
Print
Author Topic: Prova di lab svolta in classe  (Read 1976 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
207
Matricola
*
Offline Offline

Posts: 95


« on: 24-01-2010, 15:16:10 »

Per favore qualcuno potrebbe postare il main corretto della prova di laboratorio svolta in classe dal professore Cincotti? P.S Non dico la soluzione ma solo il testo del main, grazie mille.....
« Last Edit: 24-01-2010, 15:18:23 by 207 » Logged
Antonio
Matricola
*
Offline Offline

Posts: 26


« Reply #1 on: 24-01-2010, 16:51:26 »

Ecco Questo è il mio main...

Code:
import java.util.Random;
public class TernaMain{
public static void main(String []args){
Terna []vett=new Terna[50];
int []x=new int[3];

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[i] = new A(x);
else vett[i] = new B(x);
}
int max=vett[0].m();
for(int i=0;i<vett.length;i++){
if(max<vett[i].m()) max=vett[i].m();
}

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]);
}
System.out.print("vett:\n");
for(int i=0;i<vett.length;i++) System.out.println(vett[i]);

System.out.println("\tmax="+max+"\n\n");
System.out.print("vett2:\n");

for(int i=0;i<vett2.length;i++) System.out.println(vett2[i]);

}
}
Logged
207
Matricola
*
Offline Offline

Posts: 95


« Reply #2 on: 24-01-2010, 17:22:30 »

Grazie...
Logged
207
Matricola
*
Offline Offline

Posts: 95


« Reply #3 on: 24-01-2010, 18:46:00 »

Potreste aiutarmi a implementare i vari metodi toString delle classi? grazie mille..... P.S E' urgente...
Logged
Luckino
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 107


Io nn sono il migliore ma nessuno è migliore di me


« Reply #4 on: 25-01-2010, 12:48:33 »

Code:
[code][quote author=207 link=topic=6330.msg40155#msg40155 date=1264355160]
Potreste aiutarmi a implementare i vari metodi toString delle classi? grazie mille..... P.S E' urgente...
[/quote]
posto la soluzione


import java.util.*;

abstract class Terna
{
protected int[] xyz;
public Terna(int a,int b,int c)
{
xyz=new int[3];
xyz[0]=a;
xyz[1]=b;
xyz[2]=c;
}
public Terna(int [] a)
{
this(a[0],a[1],a[2]);
}
public Terna(int c)
{
this(c,c,c);
}
public String toString()
{
String x= "Terna:["+xyz[0]+","+xyz[1]+","+xyz[2]+"],"; *\terna è il nome della classe,xyz[0,1,2] sono le
                                                                                                            tre componenti dell'array xyz,infine le
                                                                                                           "X" da concatenare sono dati dal valore di m()\*
for(int i=0;i<m();i++)
x+="X";
return x;
}
abstract public int m();
abstract public Terna nuovo(Terna a);
}
class A extends Terna
{
public A(int c)
{
super(c);
}
public A(int[]a)
{
super(a);
}
public Terna nuovo(Terna a)
{
return new B(m()+xyz[0]);
}
public int m()
{
return (int)(xyz[0]+xyz[1]+xyz[2])/3;
}
public String toString()
{
String x= "A:["+xyz[0]+","+xyz[1]+","+xyz[2]+"],";
for(int i=0;i<m();i++)
x+="X";
return x;
}
}

class B extends Terna
{
public B(int c)
{
super (c);
}
public B(int[] a)
{
super(a);
}
public Terna nuovo(Terna a)
{
return new A(m()-xyz[1]-a.xyz[2]);
}
public int m()
{
return (Math.max(Math.max(xyz[0],xyz[1]),xyz[2]));
}
public String toString()
{
String x= "B:["+xyz[0]+","+xyz[1]+","+xyz[2]+"],";
for(int i=0;i<m();i++)
x+="X";
return x;
}
}

class EsameTerna
{
public static void main(String[] args)
{
Random r=new Random(2999888);
Terna[] vett=new Terna[50];
int[] x=new int[3];
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[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());

}
}



[/code]
« Last Edit: 25-01-2010, 13:07:48 by Luckino » Logged
luca.cnz
Matricola
*
Offline Offline

Posts: 27


« Reply #5 on: 25-01-2010, 16:38:28 »

Ma da dove hai tirato fuori la lunghezza di x[]?

Nel testo della prova non ve n'è traccia!
Logged
Luckino
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 107


Io nn sono il migliore ma nessuno è migliore di me


« Reply #6 on: 25-01-2010, 17:19:03 »

Ma da dove hai tirato fuori la lunghezza di x[]?

Nel testo della prova non ve n'è traccia!

si hai ragione...forse il prof ha dimenticato di scriverlo oppure ha voluto farlo per renderlo più difficile...comunque è evidente che nel main va creato un array di tre elementi uguale all'array della prima classe xyz.
Logged
Pages: [1]   Go Up
Print
Jump to: