View Full Version : ho un problemino in java
allora raga siccome in ingegneria informatica devo imparare bene il java mi sono cimentato una bellezza ma ho un problemino!!!
allora vorrei dire nel mio programma che la variabile int somma = +
si assegnare a una variabile un operatore somma = +
come si fa???
help me!!!
Eh ???
Io conosco il += come operatore...=+ non l'ho msi visto...
int x = 0;
x += 2;
A questo punto x = 2...
/\/\@®¢Ø
05-11-2001, 21:18
Forse ho capito cosa intendi.
Vorresti memorizzare in una variabile non un valore, ma una operazione, cosi' da poter utilizzare lo stesso codice con operazioni differenti ( somma , prodotto , eccetera ).
Ho capito bene ?
Se e' cosi' allora in Java non lo puoi fare direttamente ( almeno mi sembra ). Potresti pero' aggirare il problema creando una interfaccia apposita. Ad esempio:
public interface operazione
{
/\/\@®¢Ø
05-11-2001, 21:23
Forse ho capito cosa intendi.
Vorresti memorizzare in una variabile non un valore, ma una operazione, cosi' da poter utilizzare lo stesso codice con operazioni differenti ( somma , prodotto , eccetera ).
Se e' cosi' allora in Java non lo puoi fare direttamente ( almeno mi sembra ). Potresti pero' aggirare il problema creando una interfaccia apposita. Ad esempio:
public interface Operazione
{
public int esegui( int x , int y );
}
poi implementi questa interfaccia con oggetti diversi per le varie operazioni.
ad es:
public class Somma implements Operazione
{
public int esegui( int x , int y )
{
return x+y;
}
}
etc.
poi puoi utilizzarle cosi':
Operazione o = new Somma();
...
int z = o.esegui( 5 , 3 );
ovviamente tutto questo se ho capito bene quello che intendi dire ! :)
si hai capito bene ora ti faccio leggere il codice:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Moon
{ public static void main(String[] args)
{try
{ final double EURO = 1936.36;
final double PIG = 3.14;
InputStreamReader reader
= new InputStreamReader(System.in);
BufferedReader console
= new BufferedReader(reader);
System.out.println("Ciao mi chiamo Calcola");
System.out.print(" ");
System.out.println("Te come ti chiami?");
String name = console.readLine();
System.out.println("Ciao" +name);
System.out.println("per favore dammi i numeri e dimmi che tipo di operazione devo fare!");
System.out.println(" ");
System.out.println("dammi il primo numero!");
String input = console.readLine();
int uno = Integer.parseInt(input);
System.out.println("ora dammi il secondo!");
String Input = console.readLine();
int DUE = Integer.parseInt(input);
System.out.println(" bravo ora dammi l'operatore!");
String operatore = console.readLine();
int who = operatore.length();
int somma = ( who = 5);
int meno = ( who = 4);
int moltiplica = ( who = 10);
double dividi = ( who = 6);
somma = (uno + DUE);
meno = (uno - DUE);
moltiplica = (uno * DUE);
dividi = (uno / DUE);
System.out.println(somma);
System.out.println(meno);
System.out.println(dividi);
System.out.println(moltiplica);
}
catch(IOException e)
{ System.out.println(e);
System.exit(1);
}
}
}
vabbe apparte che è il secondo programma della mia vita spero in un buon aiuto!!
il programma oltre a chioedere all'utente come si chiama chiede di poter calcolare atraverso / * - + questi quattro operatori due numeri qualunque!!!
cmq ho fatto in modo che contasse le lettere per sapere che tipo di operazione deve fare per esempio moltiplica = 10lettere o somma = a 5 lettere quindi l'utente deve scrivere somm
a per sommare oppure dividi per fare la divisione etc...
quello ke ancora nn sono riuscito a fare è che se le lettere che compongono le parole sono solo 5 deve solo sommare e non fare tutte le altre operazioni!! ---che poi risultato sbagliate!!!
mi potete correggere l'errore? o aiutarmi a capire come posso ricompilarlo??
ps le costanti all'inizio le sviluppero + avanti grazie!!
:cool:
Sephirot
05-11-2001, 23:11
qui ci vuole alexmaz!
Ora...io non conosco quasi niente di Java...ma non basterebbe fare un confronto o uno switch fra stringhe ?
if(operatore == "somma")
{
ris = uno + DUE;
System.out.println(ris);
}
else if (operatore == "moltiplica")
{
ris = uno * DUE;
System.out.println(ris);
}
else if (operatore == "dividi")
{
ris = uno / DUE;
System.out.println(ris);
}
else if (operatore == "sottrai")
{
ris = uno - DUE;
System.out.println(ris);
}
else
System.out.println("Operazione sconosciuta");
Ora se il confronto fra String si fa con == non lo so...ma se si fa altrimenti basta sostituire il modo in cui si fa fra le parentesi degli if...
theClimber
05-11-2001, 23:49
Il confronto tra stringhe lo fai con la funzione:
operatore.equals("somma")
Ciao
/\/\@®¢Ø
05-11-2001, 23:55
ah, ma allora e' piu' semplice di quel che pensavo :)
Ti conviene fare come dice cionci.
Solo che per comparare la stringa s1 e la stringa s2 devi scirvere
if( s1.equals(s2) ){ ... }
Ho letto la discussione e... non so se ho capito bene cmq ho tirato giù due righe sulla base di quello che hai scritto tu. Vedi un po' se era questo quello che intendevi.
Se non ti è chiaro qualcosa chiedi pure! ;)
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
public class Moon
{
public static void main(String[] args)
{
try
{
final double EURO = 1936.36;
final double PIG = 3.14;
InputStreamReader reader = new InputStreamReader(System.in);
BufferedReader console = new BufferedReader(reader);
System.out.println("Ciao mi chiamo Calcola.\nTe come ti chiami?");
String name = console.readLine();
System.out.println("Ciao "+name+"\nper favore dammi i numeri e dimmi che tipo di operazione devo fare!\n");
System.out.println("dammi il primo numero!");
double primo=0;
boolean done=false;
while (!done)
{
try
{
String input = console.readLine();
primo=Double.parseDouble(input);
done=true;
}
catch(NumberFormatException e)
{
System.out.println("Attenzione!! Devi inserire un numero!\nRiprova:");
}
}
System.out.println("ora dammi il secondo!");
double secondo=0;
done=false;
while (!done)
{
try
{
String input = console.readLine();
secondo=Double.parseDouble(input);
done=true;
}
catch(NumberFormatException e)
{
System.out.println("Attenzione!! Devi inserire un numero!\nRiprova:");
}
}
System.out.println("Bravo!\nOra dammi l'operatore! (somma, sottrazione, divisione, moltiplicazione)");
String operatore = console.readLine();
double risultato=0;
String symbol=null;
if (operatore.equalsIgnoreCase("somma"))
{
risultato=primo+secondo;
symbol="+";
}
else if(operatore.equalsIgnoreCase("sottrazione"))
{
risultato=primo-secondo;
symbol="-";
}
else if(operatore.equalsIgnoreCase("divisione"))
{
risultato=primo/secondo;
symbol="/";
}
else if(operatore.equalsIgnoreCase("moltiplicazione"))
{
risultato=primo*secondo;
symbol="*";
}
System.out.println("Il risultato dell'operazione "+primo+symbol+secondo+" e'\n"+risultato);
}
catch(IOException e)
{
System.out.println("Errore di input/output.\nProgramma terminato");
System.exit(1);
}
}
}
Arrrrghhh!
Si vede da schifo postandolo!
Te lo allego così si capisce meglio :p
Originariamente inviato da Sephirot
[B]qui ci vuole alexmaz!
:D :D :D
GRaZie tante:D
cmq nn ho capito alcune cose che ancora devo fare!! nn ti preoccupare domando un po in giro all'università
appena ho un problema lo posto cosi mi ridai una mano a ti ridico grazie tante !!!! ora ridevo studiare il codice per capirlo!!
sei un amico
Bye e a presto!!
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.