Pages: [1]   Go Down
Print
Author Topic: PROVA LABORATORIO 23/06/09 SVOLTA  (Read 738 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
pippo
Apprendista Forumista
**
Offline Offline

Posts: 150



« on: 24-06-2009, 10:47:51 »

 ciao Ragazzi abbiamo svolto la prova di laboratorio con la collaborazione di peppe89ct
ecco il codice
Quote
import java.util.*;

abstract class Numero
{
   protected byte[] cifre;
   public Numero(byte[] _cifre)
   {
      cifre= new byte[_cifre.length];
      for(int i=0; i<cifre.length; i++)
      cifre[ i]=_cifre[ i];
   }
   private int valore()
   {
      int res=0;
      for(int i =0;i<cifre.length;i++)
      res=res*(cifre[ i] >= 100 ? 1000 : cifre[ i]>= 10 ? 100 : 10)+cifre[ i];
     
      return res;
     
   }
   public int somma()
   {
   
      int somma=valore();
      return somma;
   }
   abstract public byte cifra();
}
class A extends Numero
{
   public A(byte[] _cifre)
   {
   super(_cifre);
   }
   public byte cifra()
   {
      return cifre[0];
   }
   private int c(int _x)
   {
      if (_x<3)
         return 5;
      else if((_x>=3)&&(_x<7))
         return c(_x-1);
      else
         return c(_x-2)+_x;
         
   }
   public int codice()
   {
      return c(cifra());
   }
}
class B extends Numero
{
   public B(byte[] _cifre)
   {
      super(_cifre);
   }
   public byte cifra()
   {
      return cifre[cifre.length-1];
   }
}

class Laboratorio
{
   public static void main (String[]args)
   {
   Numero[]vett=new Numero[100];
   byte[] x=new byte[6];
   Random r=new Random(1999888);
   for(int i=0; i<vett.length; i++)
   {
      for(int j=0; j<x.length; j++)
      x[ j]=(byte)(r.nextInt(9)+1);
      if(r.nextInt(2)==1)
         vett[ i]=new A(x);
      else
         vett[i ]=new B(x);
   }
   int sommaCifra=0;
   int maxCodice=0;
   int somma=0;
   for(int i=0; i<vett.length; i++)
   {
      sommaCifra+=vett[ i].cifra();
      if(vett[ i] instanceof A)
         if(((A)vett[ i]).codice()>maxCodice)
            maxCodice=((A)vett[ i]).codice();
         somma+=vett[ i].somma();
         
   }
   System.out.println(sommaCifra+" "+maxCodice+" "+somma);
        }
}
« Last Edit: 25-06-2009, 10:21:35 by pippo » Logged
Pages: [1]   Go Up
Print
Jump to: