Lucym80 (Normal User)
Newbie
Messaggi: 7
Iscritto: 03/10/2019
|
Salve a tutti,
avrei una domanda.
Mi sto adesso avvicinando al mondo Java e devo fare un esercizio. Devo creare un file per una calcolatrice, ma non cose complesse, devo far in modo che la calcolatrice esegue soltanto le prime 4 funzioni principali con numeri naturali, poi le cose più complesse verranno inserite man mano che andrò avanti con le lezioni.
Potete darmi qualche dritta, ho fatto vari tentativi e credo che manchi qualcosa.
Questo è il codice dell'ultimo tentativo; dovrebbe fare la somma, ma non va.
public class Calcolatrice {
public static void main(String[] args) {
int a = Integer.parseInt(args[0]);
int b = Integer.parseInt(args[1]);
int c=0;
while (b > 0) {
c= a+b;
b = b-1; }
System.out.println("Il risultato del prodotto è +c");
}
}
Vi ringrazio anticipatamente!
|
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
Che errore ti da?
"Non va" è troppo generico.
PS usa i tag CODE
|
|
Lucym80 (Normal User)
Newbie
Messaggi: 7
Iscritto: 03/10/2019
|
Salve, non
ricordo l'errore, poiché ho fatto molti tentativi. Quest'ultimo dovrebbe andare meglio, perché non mi dà errore, visto che si apre anche la finestra che chiede di inserire un numero, ma quando scrivo ad esempio 2+4 mi dà l'errore della class scanner.
il codice è questo:
import java.util.Scanner;
public class Calcolatrice {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.printf(" Inserisci un numero ");
int num1 =sc.nextInt();
System.out.printf("Digita un altro numero. ");
int num2= sc.nextInt();
System.out.println( "Digita l'operazione da fare:\n1) somma;\n2) sottrazione;\n3) moltiplicazione;\n4) divisione.");
int scelta = sc.nextInt();
switch(scelta) {
case 1: {
System.out.println("Hai scelto la somma.");
int result = num1+num2;
System.out.printf("La somma tra %.2f e %.2f vale %.2f.\n", num1,num2,result);
break;
}
case 2: {
System.out.println("Hai scelto la sottrazione.");
int result = num1-num2;
System.out.printf("La differenza tra %.f e%.2f vale %.2f.\n", num1,num2,result);
break;
}
case 3: {
System.out.println("Hai scelto la moltiplicazione.");
int result = num1*num2;
System.out.printf("La moltiplicazione tra %.2f e %.2f vale%.2f\n", num1,num2,result);
break;
}
case 4: {
System.out.println("Hai scelto la divisione.");
int result = num1/num2;
System.out.printf("La divisione tra %2f e %2f vale %2f.\n", num1,num2,result);
break;
}
default: {
System.out.println("Scelta non riconosciuta.");
break;
}
}
}
}
Ancora grazie!
|
|
Carlo (Member)
Guru
Messaggi: 1316
Iscritto: 29/01/2018
|
Quando scrivi il codice a sinistra della finestra c'è una casellina con scritto code, inserisci il codice tra code e /code
Codice sorgente - presumibilmente Java |
import java.util.Scanner; public class Calcolatrice { public static void main (String[] args ) { Scanner sc = new Scanner (System. in);System. out. printf(" Inserisci un numero "); int num1 =sc.nextInt(); System. out. printf("Digita un altro numero. "); int num2= sc.nextInt(); System. out. println( "Digita l'operazione da fare:\n1) somma;\n2) sottrazione;\n3) moltiplicazione;\n4) divisione."); int scelta = sc.nextInt(); switch(scelta) { case 1: { System. out. println("Hai scelto la somma."); int result = num1+num2; System. out. printf("La somma tra %.2f e %.2f vale %.2f.\n", num1,num2,result ); break; } case 2: { System. out. println("Hai scelto la sottrazione."); int result = num1-num2; System. out. printf("La differenza tra %.f e%.2f vale %.2f.\n", num1,num2,result ); break; } case 3: { System. out. println("Hai scelto la moltiplicazione."); int result = num1*num2; System. out. printf("La moltiplicazione tra %.2f e %.2f vale%.2f\n", num1,num2,result ); break; } case 4: { System. out. println("Hai scelto la divisione."); int result = num1/num2; System. out. printf("La divisione tra %2f e %2f vale %2f.\n", num1,num2,result ); break; } default: { System. out. println("Scelta non riconosciuta."); break; } } } }
|
Ultima modifica effettuata da Carlo il 06/10/2019 alle 2:04
in programmazione tutto è permesso |
|
nessuno (Normal User)
Guru^2
Messaggi: 6381
Iscritto: 03/01/2010
|
Non devi inserire 2+4
Leggi il codice che hai copiato e vedi cosa ti chiede
Un numero Un altro numero Un valore numerico per indicare l'operazione
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Mikelius (Member)
Expert
Messaggi: 525
Iscritto: 14/04/2017
|
1) Stai studiando java per conto tuo o in ambito scolastico/Universitario?
te lo chiedo perchè, se lo stai studiando per conto tuo, forse sarebbe meglio se ti approcciassi direttamente alla programazione ad oggetti, se sei in ambito scolastico/universitario segui il percorso che ha deciso il tuo professore.
2) Attento nella divisione al tipo di dato che stai trattando.
3) Se vuoi inserire direttamente l'espressione (Senza i 3 input) guarda il metodo split che trovi nella classe String.
L'errore deriva dal fatto che scanner si aspetta un int ( nextInt() ) invece se passi 2+4 lui il "+" non sa gestirlo come int e da l' eccezione (impara anche i termini corretti, non si chiamano errori ). Potresti usare nextString(), dividere l'input tramite il metodo split() e poi convertire i numeri in interi. Questo è solo un metodo possibile
Ultima modifica effettuata da Mikelius il 06/10/2019 alle 10:36 |
|
Lucym80 (Normal User)
Newbie
Messaggi: 7
Iscritto: 03/10/2019
|
Salve, prima di tutto grazie a tutti. Sto cercando di imparare Java tramite un corso privato; al momento ho fatto solo qualche ora di corso e come esercizio mi è stato dato proprio il fatto di arrivare alla soluzione di una calcolatrice che faccia solo le 4 funzioni principali e solo con numeri naturali. Allora vedendo che mi dava molte eccezioni, mi sono messa accercare su internet e avevo trovato questo.
In realtà dovrei farlo usando la pseudocodifica, ma non riesco, mi dà parecchie eccezioni, quindi grazie a voi già ho imparato qualcosa in più. Si accettano suggerimenti!
Grazie a tutti!
|
|
nessuno (Normal User)
Guru^2
Messaggi: 6381
Iscritto: 03/01/2010
|
Hai letto la mia risposta?
Comunque l'esercizio lo devi scrivere tu e non copiare da internet senza neanche capirlo.
Se continui ad avere difficoltà di base chiedi al tuo docente.
Ultima modifica effettuata da nessuno il 06/10/2019 alle 12:44
Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti (uno dei padri fondatori del moderno Calcolo delle probabilità) chiamava il gioco del Lotto Tassa sulla stupidità. |
|
Lucym80 (Normal User)
Newbie
Messaggi: 7
Iscritto: 03/10/2019
|
Salve, allora: parlato con il Prof. Avevo capito io male, si deve fare sì, una calcolatrice, ma i valori per il momento li dobbiamo inserire noi, quindi nessun input inserito dall'utente. Devo fare però prima tutta una serie di esercizi e una ventina già li ho fatti adesso sto trovando dificoltà con uno, potete dirmi se notate errori.
Il libro dice di copiare e salvare questo testo:
public class NumeroIntero {
public int numeroIntero;
public void stampaNumero() {
System.out.println(numeroIntero);
}
}
Ora devo usare le variabili d'istanza e quindi ho creato un nuovo file che ho chiamato applicazione e ho scritto:
public class Applicazione {
public static void main (String args []) {
NumeroIntero uno = new NumeroIntero();
NumeroIntero due = new NumeroIntero();
uno.numeroIntero = 1;
due.numeroIntero = 2;
uno.stampaNumero();
due.stampaNumero();
}
}
Mi dà l'errore su NumeroIntero: secondo voi dove sbaglio?Dal libro che sto leggendo non vedo errori, ma probabilmente qualcosa mi sfugge.
Mille grazie a chi vorrà aiutarmi!
|
|