Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1

    Sottrazione, moltiplicazione e divisione in java

    Ciao ragazzi, sto realizzando un piccolo programma in java che funge da calcolatrice.
    Fino ad ora, sono riuscito a costruire il menu e a fargli fare la prima operazione "somma".
    Ecco come ho risolto:

    codice:
    case 0:
                
                System.out.println("Modalità: Somma");
                System.out.print("Quanti numeri vuoi inserire?: ");
                max = leggi.nextInt();
                
                for(int i = 0; i < max; i++){
                System.out.print("Inserisci il " + (i+1) + "° numero: ");
                numeri = leggi.nextInt();
                risultante += numeri;
                }
                 System.out.println("La somma dei numeri è: " + risultante);
                 break;
    Il problema è che non so come agire per la sottrazione, ho provato a mettere risultante -= ma restituisce soltanto il segno - davanti alla somma.
    Come si fa a fare le restanti tre operazioni?
    Ultima modifica di LeleFT; 03-12-2013 a 13:39 Motivo: Aggiunta tag CODE
    ?

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326

    Moderazione

    Java ha una sezione dedicata, scritta anche in grande.

    Sposto e aggiungo i tag CODE obbligatori per il codice.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Per il tuo problema, in particolare la sottrazione, è necessario leggere a parte il primo valore. Ad esempio, se l'utente inserisce nell'ordine i valori 10, 5 e 2, immagino che tu voglia calcolare:

    codice:
    10 - 5 - 2
    Quindi il 10 va letto a parte e assegnato così com'è alla variabile "risultante"... poi procedi con gli altri valori esattamente come hai fatto, ovvero

    codice:
    risultante -= numeri;
    Questo per un ovvio motivo: inizialmente "risultante" vale 0... se tu applichi l'operazione fin dall'inizio otterrai:

    codice:
    0 - 10 - 5 - 2
    che è ovviamente un numero negativo, guarda caso esattamente 0 - (10 + 5 + 2), ovvero un segno meno davanti alla somma.

    Trattasi di semplice aritmetica.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Ok scusa, avevo letto java e ho postato qui

    Comunque inizialmente avevo pensato di creare due variabili num1 e num2 sulla quale salvare i valori in ingresso, però così si possono calcolare solo (sottrazione e via dicendo) di due numeri e diventa una calcolatrice piuttosto limitata.

    Io invece, domando all'utente quanti numeri vuole inserire, poi salvo il valore in una variabile max e la faccio girare in un ciclo for che esegue il codice max volte inserite dall'utente (come nel caso dell'addizione).

    Mi servirebbe sapere come faccio a salvare i valori dell'utente in una specie di vettore e a sua volta a sottrarli cosicché io possa comunicare il risultato. Potresti spiegarmelo?
    ?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da wormd Visualizza il messaggio
    Mi servirebbe sapere come faccio a salvare i valori dell'utente in una specie di vettore e a sua volta a sottrarli cosicché io possa comunicare il risultato.
    A dire il vero non ti servirebbe nemmeno un "vettore". Ti basta una variabile per il risultato (l'hai già usata) e una variabile per il valore temporaneo n-esimo inserito dall'utente (anche questa ce l'hai già).
    Il caso della sommatoria è banale/lineare, la variabile del risultato è da inizializzare a 0 prima del ciclo di input, a cui sommi poi tutti i valori.
    Il caso della sottrazione è solo con un caso particolare in più: il primo valore è il valore da usare per inizializzare il risultato, tutti gli altri valori li sottrai (non c'è nemmeno da fare un input a parte ... basta un if nel ciclo).

    Hai sicuramente case differenti con codice specifico, quindi devi solo replicare il codice cambiando le diciture e modificando la logica come detto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Ok ho capito. L'unica cosa che mi è ancora oscura è questa:
    io ho un secondo caso che si attiva quando l'utente sceglie di effettuare la sottrazione; dopo che faccio:
    codice:
    numeri = leggi.nextInt();
    da come ho capito devo fare una condizione, cosa deve fare questa condizione?
    ?

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da wormd Visualizza il messaggio
    da come ho capito devo fare una condizione, cosa deve fare questa condizione?
    "Se primo numero: assegna a risultato. Altrimenti sottrai da risultato"
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #8
    Ho provato con:
    codice:
     if(numeri == 1)
                {
                risultante += i;
                }
                else
                	{
                	risultante -=i;
                	}
    			
    			 System.out.println("La sottrazione dei numeri è: " + risultante);
    			 break;
    Però mi da come risultato sempre 0, dov'è che sbaglio?
    ?

  9. #9
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da wormd Visualizza il messaggio
    if(numeri == 1)
    Il "primo" numero .... non il valore del numero!

    Quote Originariamente inviata da wormd Visualizza il messaggio
    risultante += i;
    Perché += ? Serve l'assegnamento e basta.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  10. #10
    Ho cambiato in:

    codice:
     if(primo == numeri)
                {
                risultante = i;
                }
                else
                	{
                	risultante -= i;
                	}
    Ma anche ora mi restituisce 0; ho creato una variabile primo dove assegnare il primo valore letto ma non è servito a niente.
    Sinceramente non ci sto capendo più nulla, puoi farmi un esempio?
    ?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.