Pages: 1 2 [3]   Go Down
Print
Author Topic: HEELP ME!! prova lab.  (Read 5252 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
simOne_fLuo
Guest
« Reply #30 on: 24-02-2009, 20:17:21 »

questo comando ke fà??

if (!(vett instanceof C)) istanzeB++;
Logged
Antoniods
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 475



« Reply #31 on: 24-02-2009, 20:19:41 »

...appunto conta le instanze di B...
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)
simOne_fLuo
Guest
« Reply #32 on: 24-02-2009, 20:20:18 »

questo è il mio main è corretto??

import java.util.Random;
public class lab{
   public static void main(String [] args){
      Random r=new Random(6353433);
      A[] vett=new A[100];
      for(int i=0;i<vett.length;i++){
         int x=r.nextInt(10);
         int y=r.nextInt(100);
         int z=r.nextInt(30);
         if(r.nextInt(2)==1) vett=new B(x,y,z);
         else vett=new C(x,y,z);
      }
      int sommatoria_f=0;
      for(int i=0;i<vett.length;i++)
         sommatoria_f+=vett.f();
      int sommatoria_obj=0;
      for(int i=0;i<vett.length;i++){
         D obj=new D(r.nextInt(47));
         sommatoria_obj+=((B)vett).f(obj);
         }
      int istanzeB = 0;
      for (int i = 0; i < vett.length; i++){
         if (!(vett instanceof C))
            istanzeB++;
      }
      System.out.println(sommatoria_f);
      System.out.println(sommatoria_obj);
      System.out.println(istanzeB);
   }
}
Logged
Antoniods
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 475



« Reply #33 on: 24-02-2009, 20:23:39 »

si ... dovrebbe essere giusto... cmq per sicurezza esegui il programma e se i risultati sono uguali a quelli che il prof ha messo nel forum il programma funziona!!!!
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)
simOne_fLuo
Guest
« Reply #34 on: 24-02-2009, 20:26:15 »

erroriiiiiiiiii... testate testate testate testate testate testate testate testate testate testate testate

lab.java:10: incompatible types
found   : B
required: A[]
         if(r.nextInt(2)==1) vett=new B(x,y,z);
                                                 ^
lab.java:11: incompatible types
found   : C
required: A[]
         else vett=new C(x,y,z);
                                  ^
lab.java:15: cannot find symbol
symbol  : method f()
location: class A[]
         sommatoria_f+=vett.f();
                                          ^
lab.java:15: inconvertible types
found   : <nulltype>
required: int
         sommatoria_f+=vett.f();
                                            ^
lab.java:19: inconvertible types
found   : A[]
required: B
         sommatoria_obj+=((B)vett).f(obj);
                                            ^
lab.java:19: inconvertible types
found   : <nulltype>
required: int
         sommatoria_obj+=((B)vett).f(obj);
                                                   ^
Logged
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #35 on: 24-02-2009, 20:29:01 »

Questo è il mio esercizio:
Code:
import java.util.Random;
public class Lab1 {
public static void main(String args[]) {
Random r = new Random(6353433);
A[] vett = new A[100];
for (int i = 0; i < vett.length; i++) {
int x = r.nextInt(10);
int y = r.nextInt(100);
int z = r.nextInt(30);
if (r.nextInt(2) == 1) vett[i] = new B(x, y, z);
else vett[i] = new C(x, y, z);
}
int check1 = 0, check2 = 0, check3 = 0;
for (int i = 0; i < vett.length; i++) {
check1 += vett[i].f();
D obj = new D(r.nextInt(47));
check2 += ((B)vett[i]).f(obj);
if (!(vett[i] instanceof C)) { check3++; }
}
System.out.println(check1 + ", " + check2 + ", " + check3);
}
}
abstract class A {
protected int x;
public A(int x) {
this.x = x;
}
abstract int f();
}
class B extends A {
protected int y;
private D d;
public B(int x, int y, double z) {
super(x);
this.y = y;
d = new D(z);
}
public int f() {
return (int) (Math.pow(this.x, 2));
}
public int f(D d) {
return (int) (d.getZ() + this.d.getZ());
}
}
class C extends B {
public C(int x, int y, double z) {
super(x, y, z);
}
public int f() {
return 7 * y;
}
}
class D {
private double z;
public D(double z) {
this.z = z;
}
public double getZ() {
return this.z;
}
}

Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
Manna
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 156



« Reply #36 on: 24-02-2009, 20:29:10 »

erroriiiiiiiiii... testate testate testate testate testate testate testate testate testate testate testate

lab.java:10: incompatible types
found   : B
required: A[]
         if(r.nextInt(2)==1) vett=new B(x,y,z);
                                                 ^
lab.java:11: incompatible types
found   : C
required: A[]
         else vett=new C(x,y,z);
                                  ^
lab.java:15: cannot find symbol
symbol  : method f()
location: class A[]
         sommatoria_f+=vett.f();
                                          ^
lab.java:15: inconvertible types
found   : <nulltype>
required: int
         sommatoria_f+=vett.f();
                                            ^
lab.java:19: inconvertible types
found   : A[]
required: B
         sommatoria_obj+=((B)vett).f(obj);
                                            ^
lab.java:19: inconvertible types
found   : <nulltype>
required: int
         sommatoria_obj+=((B)vett).f(obj);
                                                   ^


if(r.nextInt(2)==1) vett=new B(x,y,z); è sbagliato... sarebbe if(r.nextInt(2)==1) vett[ i]=new B(x,y,z);
else vett=new C(x,y,z);              else vett[ i]=new C(x,y,z);
Va beh praticamente hai dimenticato che vett è un vettore e nn un variabile...ti mancano  [i ] in ogni vett
« Last Edit: 24-02-2009, 20:31:05 by Manna » Logged

I'll be here...Why?...I'll be waiting...here...For what?...I'll be waiting...for you...so...If you come here...You'll find me...I promise!
simOne_fLuo
Guest
« Reply #37 on: 24-02-2009, 20:55:33 »

ma io l'avevo copiato da quello che aveva dato il prof..

nelle sommatorie qual'è il problema??
« Last Edit: 24-02-2009, 20:57:49 by simOne_fLuo » Logged
Manna
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 156



« Reply #38 on: 24-02-2009, 21:12:13 »

E' sempre lo stesso...in ogni vett manca [ i]...vett è un array...quindi ogni votla che lo scrivi devi specificare la locazione...siccome lo usi sempre all'interno di un for e ti serve che ogni volta venga preso in considerazione un elemento diverso (quello di posto i) devi aggiungere ad ogni vett [i ]
Spero d'esserti stato d'aiuto
Logged

I'll be here...Why?...I'll be waiting...here...For what?...I'll be waiting...for you...so...If you come here...You'll find me...I promise!
simOne_fLuo
Guest
« Reply #39 on: 24-02-2009, 21:15:52 »

 ok ok ok ok ok ok ok ok ok ok ok

GRAZIE RAGAZZI.. ADESSO COMPILA ED ESEGUE.. i risultati sono:

21062
3734
44
Logged
zElOtO
Forumista
***
Offline Offline

Gender: Male
Posts: 845



WWW
« Reply #40 on: 24-02-2009, 21:36:07 »

Risultati giusti
Logged

I computer sono incredibilmente veloci, accurati e stupidi. Gli uomini sono incredibilmente lenti, inaccurati e intelligenti. Insieme sono una potenza che supera l'immaginazione. (A. Einstein)

Damiano Cancemi
www.damianocancemi.com
www.nerdbren.com
www.nerdbren.com/blog
Manna
Apprendista Forumista
**
Offline Offline

Gender: Male
Posts: 156



« Reply #41 on: 24-02-2009, 21:43:00 »

Puoi provare con l'altro valore...ma visto che ti è risultato così non credo abbia molto senso
Complimenti
Logged

I'll be here...Why?...I'll be waiting...here...For what?...I'll be waiting...for you...so...If you come here...You'll find me...I promise!
Pages: 1 2 [3]   Go Up
Print
Jump to: