PDA

View Full Version : [JAVA] Un piccolo aiutino


Manugal
08-01-2004, 14:09
Visto che domani ho l'esame di Informatica, volevo farvi un attimo vedere questa porzione di codice. Volevo che voi mi spiegaste perché va fatto così e che vordì :D :D . Vi posto anche il testo di questa piccola classe, grazie :)

Definire una classe Qualificazioni2, per gestire una raccolta di piloti rappresentata tramite array, che implementa il seguente metodo statico:

int esclusi (Pilota[] v): che restituisce il numero dei piloti esclusi dalla griglia di partenza, ovvero tutti i piloti il cui tempo e' superiore al 107% del tempo del pilota in pole position.

public class Qualificazioni2{
public static int esclusi(Pilota[] v)
{
int quanti=0;
int i;
double tempo;
Pilota p=Qualificazioni1.polePosition(v);
double soglia= (p.getSecondi()*100+p.getCentesimi())*1.07;
for(i=0;i<v.length;i++)
{ tempo= (v[i].getSecondi()*100+v[i].getCentesimi());
if (tempo>soglia) quanti++;
}
return quanti;
}
}

kingv
08-01-2004, 15:50
public class Qualificazioni2
{
public static int esclusi(Pilota[] v)
{
int quanti=0; //contatore per i piloti escusi.
int i; //contatore per il ciclo for sotto. inutile dichiararlo qui
double tempo; //variabile per fare il confronto tra il tempo di un pilota e quello soglia
Pilota p=Qualificazioni1.polePosition(v); //metodo statico che dato un array di piloti restituisce quello che ha fatto la pole position
double soglia= (p.getSecondi()*100+p.getCentesimi())*1.07; //calcolo del tempo soglia (in centesimi di secondo)
for(i=0;i<v.length;i++) //ciclo sull'array di piloti
{ tempo= (v[i].getSecondi()*100+v[i].getCentesimi()); //calcolo in centesimi di secondo il tempo del pilota corrente
if (tempo>soglia) quanti++; //se superiore al tempo-soglia incrementi il contatore degli esclusi
}
return quanti;
}
}


stilisticamente e' una schifezza :O

Manugal
08-01-2004, 16:00
Lo ha fatto il prof non c'entro niente :p

Perché poi è una schifezza? Poi se puoi dirmi che cosa fanno queste istruzioni te ne sarei grato.

recoil
08-01-2004, 19:22
Originariamente inviato da Manugal
Perché poi è una schifezza? Poi se puoi dirmi che cosa fanno queste istruzioni te ne sarei grato.

a prima vista pare codice illeggibile, penso che il suo commento derivi da questa considerazione.

kingv
09-01-2004, 08:36
Originariamente inviato da Manugal

Perché poi è una schifezza? Poi se puoi dirmi che cosa fanno queste istruzioni te ne sarei grato.


e' una schifezza per tante ragioni, già chiamare Qualificazioni1 e Qualificazioni2 due classi che fanno cosa diverse (passandosi array di oggetti nei metodi statici) e' sintomo di NON progettazione. In un linguaggio orientato agli oggetti occorre modellare un sistema scompnendolo in entità piu' semplici (le classi) che devono rappresentare entita' specifiche (concrete o astratte) e non essere dei semplici "contenitori" di metodi (anche se qui si parla piu' di funzioni... :rolleyes: ).

Scusa io ti ho commentato il codice istruzione per istruzione e mi dici di spiegarti cosa fanno? :mad: