Pages: [1]   Go Down
Print
Author Topic: Consiglio  (Read 648 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Daréios89
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.679


La musica è la forma d'arte suprema.


« on: 21-08-2009, 20:51:58 »

Ho provato a fare il main di una terza prova, la seguente.

Code:
Si consideri la seguente situazione che si vorrebbe modellare con un opportuno insieme di classi

JAVA:

Si vuole creare un database di oggetti geometrici 2D e 3D. Una figura geometrica è

caratterizzata da un contenitore (char), ed è assegnata mediante le coordinate cartesiane dei

suoi vertici. Ogni figura piana è caratterizzata da un nome (float), e quelle solide da un

colore (byte). Si vogliono considerare triangoli, quadrati e pentagoni. Sui triangoli si può

eseguire l’operazione di  ricongiunzione,  mentre sui  pentagoni  si  può eseguire

l’appiattimento. Per le figure piane considerate ha senso calcolare l’area, il perimetro, il

numero di lati ed un coefficiente di variazione. Ogni figura solida contiene al proprio

interno un dispositivo di equilibrio, caratterizzato dal numero seriale (20 caratteri), da un

codice numerico (long) e da una memoria da 1KB.

A: analisi e disegno.

Riportare il diagramma UML di tutte le classi che si ritengono necessarie alla corretta descrizione e

rappresentazione della situazione sopra descritta.  Nella gerarchia ereditaria si considerino anche i

seguenti metodi eventualmente polimorfi e se ne dia un’implementazione:

• getTotale; restituisce il numero di figure create fino all’istante di invocazione

del metodo;

• getContenitore;         restituisce il contenitore della figura;

• getDispositivo;          restituisce il dispositivo di equilibrio;

• getCoefficiente;    restituisce il coefficiente di variazione per ogni figura

calcolato mediante la formula:

o c · L per i triangoli, 

o c^5 · Area / 0.9 per i quadrati,

o  7 · c + 3 · Perimetro per i pentagoni,

dove c  è un coefficiente costante per tutte le figure piane ed L è il lato maggiore

del triangolo.



B: utilizzo delle classi.

Si fornisca un frammento di programma che descriva la creazione e l’inizializzazione casuale di una

collezione di 100 figure geometriche e

si visualizzino le informazioni per ogni figura,

si trovi la figura con il minimo(secondo l’ordinamento alfabetico) carattere contenitore,

si ordinino (in base al coefficiente di variazione) in un array indipendente tutti i

quadrati della collezione (gli oggetti non devono essere clonati).




Volevo chiedere a qualcuno se il Main è accetabile o ci sono errori grossi, dato che è un tipo di prova che non ho affrontato mai e che mi lascia dubbioso in certe cose, soprattutto nella duplicazione di un array che ho eseguito.





Code:
class Prova
{
public static void main(String []args)
{
int minimo;
       int dimensione=0;
int carattere;
int figura;
Figure [] vett=new Figure[100];

for(int i=0; i<vett.length; i++)
   System.out.println(vett[i].toString());           //Così stampa le informazioni???


for(int r=0; r<vett.length-1; r++)
{
carattere=(int)vett[r].getContenitore();

for(int i=r+1; i<vett.length; i++)

if((int)vett[i].getContenitore()<carattere)                       //Ho pensato era possibile calcolare il carattere minore con il cast
                                                                              del carattere nel corrispondente codice ASCII
{
carattere=(int)vett[i].getContenitore();
figura=vett[i];
}
}

System.out.println("La figura con il minimo coefficiente è"+figura.toString());


for(int i=0; i<vett.length; i++)
{
if(vett[i] instanceof Quadrato)
dimensione++;
if(i==vett.length-1)                                                   creo un array di oggetti quadrato
Quadrato [] quadrato=new Quadrato[dimensione];

}

for(int i=0; i<vett.length; i++)
if(vett[i] instanceof Quadrato)                            Dovrei considerare solo i quadrati per l'ultima richiesta, e quindi dopo
                                                                       avere visto quanti sono li inserisco nell'array apposito
System.arraycopy(vett,i,quadrato,i,1);                     


//E poi faccio un Bubblesort

public static void swap(Quadrato [] quadrato, int primo,int secondo)
{
Quadrato tmp=quadrato[primo];
quadrato[primo]=quadrato[secondo];
quadrato[secondo]=tmp;
}


for(int bò=0; bò<quadrato.length-1; bò++)
{
for(int i=0; i<quadrato.length; i++)
{
if(quadrato[i].getCoefficiente()>quadrato[i+1].getCoefficiente()
swap(quadrato,i,i+1);
}
}







Logged

"Utilizzare sempre de l'Hôpital.....è come andare a caccia di farfalle con un bazooka".
Pages: [1]   Go Up
Print
Jump to: