|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Feb 2007
Città: Como
Messaggi: 2551
|
Domanda Java
Qualche problema a compilare il codice..non sono sicuro se non mi trova le classi del package o se ho sbagliato io a scrivere..
Codice:
import prog.io.*;
class calcolatrice {
public static void main (String [] args) {
ConsoleInputManager in=new ConsoleInputManager();
ConsoleOutputManager out=new ConsoleOutputManager();
boolean ricomincia=true;
do {
boolean riprovare=true;
do {
char operazione=in.readChar("Che operazione vuoi eseguire?"); //lettura del tipo di operazione
if (operazione!='+'||operazione!='-'||operazione!='/'||operazione!='*') {
out.println("Inserire un'operazione valida");
riprovare=in.readSiNo("Vuoi riprovare? s/n");
}
else
riprovare=false;
}
while (riprovare);
Sequenza<int> operandi=new Sequenza<int>();
boolean continua=true;
for (int i=0;continua;i++) { //lettura e salvataggio degli operandi
operandi.add(in.readInt("Inserisci l`operando"));
continua=in.readSiNo("Vuoi inserire altri operandi? s/n");
}
if (operandi.size()<2) { //controllo che ci siano più di due operandi
switch (operazione) { //blocco che esegue le operazioni
case '+':
int somma=0;
for (int i:operandi) {
somma+=i;
}
out.println("Il risultato della somma é: "+somma);
break;
case '-':
int sottrazione=operandi(0);
for (int i:operandi) {
sottrazione-=i;
}
out.println("Il risultato della sottrazione é: "+sottrazione);
break;
case '/':
int divisione=operandi(0);
for (int i:operandi) {
divisione/=i;
}
out.println("Il risultato della divisione é: "+divisione);
break;
case '*':
int moltiplicazione=operandi(0);
for (int i:operandi) {
moltiplicazione*=i;
}
out.println("Il risultato della moltiplicazione é: "+moltiplicazione);
break;
}
ricomincia=in.readSiNo("Vuoi eseguire un'altra operazione? s/n");
}
else
out.println("Non posso eseguire operazioni su un solo operando");
}
while (ricomincia);
}
}
Codice:
calcolatrice.java:26: error: cannot find symbol
Sequenza<int> operandi=new Sequenza<int>();
^
symbol: class Sequenza
location: class calcolatrice
calcolatrice.java:26: error: unexpected type
Sequenza<int> operandi=new Sequenza<int>();
^
required: reference
found: int
calcolatrice.java:26: error: cannot find symbol
Sequenza<int> operandi=new Sequenza<int>();
^
symbol: class Sequenza
location: class calcolatrice
calcolatrice.java:26: error: unexpected type
Sequenza<int> operandi=new Sequenza<int>();
^
required: reference
found: int
calcolatrice.java:36: error: cannot find symbol
switch (operazione) { //blocco che esegue le ope
razioni
^
symbol: variable operazione
location: class calcolatrice
calcolatrice.java:45: error: cannot find symbol
int sottrazione=operandi(0);
^
symbol: method operandi(int)
location: class calcolatrice
calcolatrice.java:52: error: cannot find symbol
int divisione=operandi(0);
^
symbol: method operandi(int)
location: class calcolatrice
calcolatrice.java:59: error: cannot find symbol
int moltiplicazione=operandi(0);
^
symbol: method operandi(int)
location: class calcolatrice
8 errors
So che è una domanda un pò (tanto) balorda ma se qualche buona anima volesse darmi una mano ne sarei grato Idee per migliorare la struttura del programmino?
__________________
DFI Blood Iron; Intel E6400 (FSB wall>600Mhz
Tagan Piperock Series 600W, Acer AL2216W |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Hai importato il package, bene. Però non è parte della libreria standard. Non hai il jar a cui fa riferimento quel package. Glielo specifichi in compilazione?
http://pighizzini.dico.unimi.it/jb/l...e/prog-3ed.jar Qui trovi il jar per esempio. Devi usarlo durante la compilazione. |
|
|
|
|
|
#3 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Como
Messaggi: 2551
|
Quote:
Edit: tra l'altro mi sono appena reso conto rileggendo che il primo if non funziona, così..potrei farlo con degli && al posto degli ||?
__________________
DFI Blood Iron; Intel E6400 (FSB wall>600Mhz
Tagan Piperock Series 600W, Acer AL2216W Ultima modifica di Tioz90 : 14-01-2012 alle 17:21. |
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Infatti per come l'hai scritto ci vanno gli &. Ma risolti i problemi che non ti trova le classi?
|
|
|
|
|
|
#5 |
|
Senior Member
Iscritto dal: Feb 2007
Città: Como
Messaggi: 2551
|
No..ho pensato che magari stavo importando le classi sbagliate in quanto avevo scritto prog.io.* quindi ho provato ad importarle tutte con prog.* ma è uguale..come si fa a punta direttamente ad un packagemaker in compilazione?
__________________
DFI Blood Iron; Intel E6400 (FSB wall>600Mhz
Tagan Piperock Series 600W, Acer AL2216W |
|
|
|
|
|
#6 | |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Quote:
Adesso mi sfugge la sintassi. Potrebbe essere qualcosa del genere Codice:
javac Prova.java prog-3ed.jar |
|
|
|
|
|
|
#7 | |
|
Senior Member
Iscritto dal: Feb 2007
Città: Como
Messaggi: 2551
|
Quote:
L'errore é dato dal fatto che non trova la classe giusto? O potrebbe essere altro?
__________________
DFI Blood Iron; Intel E6400 (FSB wall>600Mhz
Tagan Piperock Series 600W, Acer AL2216W |
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Oct 2006
Città: milano
Messaggi: 1439
|
Devi aver fatto queste cose:
1) Jar nel classpath o comunque specificarlo compilando 2) Importato le classi che devi usare Se hai fatto queste due cose non può non funzionare. Ultima modifica di ndakota : 16-01-2012 alle 19:08. |
|
|
|
|
|
#9 |
|
Senior Member
Iscritto dal: Dec 2006
Messaggi: 314
|
occhio che i generics in java non si possono usare con i tipi primitivi come int
__________________
Athlon64 x2 5600 - AsRock ALiveNF5eSata2+ - kingston 2GB ddr2 800 - GeForce 8800gts 320MB |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 06:21.




















