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

Gender: Male
Posts: 288


very normal people


« on: 24-06-2009, 10:53:06 »

ragazzi abbiamo svolto la prova di laboratorio con la collaborazione di PIPPO
vi posto di seguito qui 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(Numero f)
   {
   
      int somma=this.valore() + f.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.cifra();
      if(vett[ i] instanceof A)
         if(((A)vett[ i]).codice()>maxCodice)
            maxCodice=((A)vett[ i]).codice();
           for( int i=0 ; i<vett.length;i+=2)
         somma+=vett[ i].somma(vett[i+1]);
         
   }
   System.out.println(sommaCifra+" "+maxCodice+" "+somma);
        }
}
« Last Edit: 29-06-2009, 16:55:13 by peppe89ct » Logged

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #1 on: 24-06-2009, 11:44:30 »

erano necessari due topic uguali per dirlo?
Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
isuccia89
Apprendista Forumista
**
Offline Offline

Gender: Female
Posts: 481



« Reply #2 on: 24-06-2009, 11:53:48 »

erano necessari due topic uguali per dirlo?

  sn d'accordo cn frederik stavolta 
Logged

Se incontrerai qualcuno persuaso di saper tutto e di esser capace di far tutto non potrai sbagliare, costui è un imbecille! (Confucio)
peppe89ct
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 288


very normal people


« Reply #3 on: 24-06-2009, 19:31:59 »

scusate ma io e il mio collega abbiamo lavorato duro e abbiamo deciso di popstarla in due
Logged

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Fr3d3R!K
Forumista Eroico
*****
Offline Offline

Gender: Male
Posts: 2.463



« Reply #4 on: 24-06-2009, 20:33:36 »

scusate ma io e il mio collega abbiamo lavorato duro e abbiamo deciso di popstarla in due
no comment...
Logged

Search Button, CODE Tag, Google & Italian language are your friends! Use Them!
Antoniods
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 475



« Reply #5 on: 24-06-2009, 21:06:49 »

no comment...

 
Logged

"Ho fallito diversi esami all'università, un mio amico li ha sempre passati tutti al primo colpo. Ora lui è ingegnere alla Microsoft, ed io... io sono il capo della Microsoft". (Bill Gates)
Serginho21
Guest
« Reply #6 on: 25-06-2009, 09:35:42 »

ci sono errori nel mian
Code:
//qua avete copiato male, non avevate messo vett[i]//
if(r.nextInt(2)==1)
         vett[i]=new A(x);
      else
         vett[i]=new B(x);
//e qui ve lo siete scordato anche//
sommaCifra+=vett[i].cifra();
      if(vett[i] instanceof A)
         if(((A)vett[i]).codice()>maxCodice)
            maxCodice=((A)vett[i]).codice();
         somma+=vett[i].somma();
Logged
peppe89ct
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 288


very normal people


« Reply #7 on: 25-06-2009, 10:19:46 »

Grazie per la collaborazione...è stata una svista nella copiatura....se avete problemi nn esitate e chiedere!!!
« Last Edit: 25-06-2009, 10:24:58 by peppe89ct » Logged

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Bastard_Inside
Guest
« Reply #8 on: 25-06-2009, 11:17:34 »

POSTO LA MIA SOLUZIONE  (UNICA DIFFERENZA IL METODO valore())
Code:
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(){
String s="";
for(int i=0; i<cifre.length; i++){
s+=cifre[i];
}
int x=Integer.parseInt(s);
return x;
   }
   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 Labgiugno
{
   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);
        }
}

 ciao ciao
Logged
Serginho21
Guest
« Reply #9 on: 25-06-2009, 13:08:33 »

Grazie per la collaborazione...è stata una svista nella copiatura....se avete problemi nn esitate e chiedere!!!
Immaginavo 
Logged
atrix0ne
Forumista
***
Offline Offline

Posts: 607


homo faber fortunae suae


« Reply #10 on: 25-06-2009, 13:25:55 »

POSTO LA MIA SOLUZIONE  (UNICA DIFFERENZA IL METODO valore())
Code:
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(){
String s="";
for(int i=0; i<cifre.length; i++){
s+=cifre[i];
}
int x=Integer.parseInt(s);
return x;
   }
   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 Labgiugno
{
   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);
        }
}

 ciao ciao
ma tu l'hai superato l'esame?
Logged

peppe89ct
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 288


very normal people


« Reply #11 on: 25-06-2009, 15:40:29 »

anche io ci avevo pensato mentre facevo l'esame e cincotti mi ha detto che devo utilizzare solo funzioni matematiche e non il perseInt...
se no lo faceveno tutti così perchè era il modo + facile di calcolare valore.

ragazzi controllate il codice ho messo delle differenze...il prof mi ha detto di fare così...
« Last Edit: 29-06-2009, 16:57:34 by peppe89ct » Logged

"Real programmers always confuse Halloween and Christmas 'cause 31oct = 25dec"
Bastard_Inside
Guest
« Reply #12 on: 25-06-2009, 16:11:08 »

No io nn l'ho superato ! l'ho risolto adesso
l'ultima volta un ragazzo ha utilizzato il parseInt e l'ha passato l'esame . Ora c'è pure qst novità ?
Logged
Bastard_Inside
Guest
« Reply #13 on: 25-06-2009, 17:37:08 »

No io nn l'ho superato ! l'ho risolto adesso
l'ultima volta un ragazzo ha utilizzato il parseInt e l'ha passato l'esame . Ora c'è pure qst novità ?

Ad ogni modo questa è un'altra alternativa :
Code:
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 x=0;
      for(int i =0,j=cifre.length-1;i<cifre.length;i++,j--){
      x+=cifre[i]*(Math.pow(10,j));
      }
      return x;
   }
   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 Labgiugno3{
   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);
   }
   
}
Logged
Alec
Matricola
*
Offline Offline

Gender: Male
Posts: 45


SF--->Sono Fuori


« Reply #14 on: 30-06-2009, 15:50:11 »

 
« Last Edit: 30-06-2009, 16:31:14 by Alec » Logged

"coDito ergo sum"
"i coDe therefore i am"
Pages: [1]   Go Up
Print
Jump to: