Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49

    problema esercizio da risolvere sui cicli

    Buongiorno a tutti vorrei che qualcuno mi spiegasse cosa ho sbagliato ed eventualmente proponesse una soluzione per questo esercizio qua sotto . Grazie in anticipo a tutti .


    ESECUTORE DI OPERAZIONI CON MENU CICLICO

    Reimplementare l'esecutore di operazioni gia' sviluppato (somma, moltiplicazione, divisione, etc.) con menu ciclico. In dettaglio:

    Sviluppare un'applicazione java il cui main:

    1 - legge 2 numeri interi da tastiera
    2 - chiede all'utente quale operazione vuole eseguire su tali numeri. Le operazioni tra cui scegliere sono la somma, la sottrazione, la moltiplicazione, la divisione (con virgola) e la media. Si consiglia di far specificare l'operazione come numero intero. Per es: 1 per la somma, 2 per la sottrazione, etc.etc., 0 per terminare il programma.

    3a - Se l'utente ha digitato un numero associato ad un'operazione, l'applicazione visualizza a video il nome dell'operazione ed il valore degli argomenti; poi effettua l'operazione scelta e visualizza a video il risultato. (E rientra in ciclo)
    3b - Se l'utente ha digitato un numero non previsto, visualizza un messaggio d'errore. (E rientra in ciclo)
    3c - Se l'utente ha digitato '0' esce dal ciclo e termina l'esecuzione.

    codice:
    import java.util.Scanner;
    
    public class OperazioniCiclo{
      public static void main (String [] args){
        Scanner tastiera=new Scanner(System.in);
         
        System.out.print ( " Inserisci il primo numero n =  " ) ;
        int n= tastiera.nextInt();
         
       System.out.print ( " Inserisci il secondo numero m =  " ) ;
         
        int m=tastiera.nextInt();
    
       System.out.println ( " Inserisci l'operazione  che vuoi effettuare  = 1 per la somma , 2 per la sottrazione ,3 per la divisione , 4 per la moltiplicazione , 5 per la media , 0 per interrompere  ") ;
                                                                           
          int scelta  =tastiera.nextInt();
      
        /* Forzo l'inserimento di almeno un elemento */
        while(!tastiera.hasNextInt()){
          System.out.println("Devi inserire almeno un intero");
          tastiera.next();
        }
    
        while(tastiera.hasNextInt()){
          scelta =tastiera.nextInt();
          if(scelta== 1){
             System.out.println ( "   il risultato della  somma è  :" +  (m+n) ) ;
          }
    
              if(scelta== 2){
             System.out.println ( "   il risultato della  sottrazione  è  :" +  (m-n) ) ;
          }   
    
          if(scelta== 3){
             System.out.println ( "   il risultato della  divisione  è  :" +  (m/n) ) ;
    
          if(scelta== 4){
             System.out.println ( "   il risultato della  moltiplicazione è  :" +  (m*n) ) ;
    
          if(scelta== 5){
             System.out.println ( "   La media   è  :"   +  (m+n)/2 ) ;
    
          else{
    
           System.out.println ( "  La scelta effettuata non è valida ! " ) ;
           
          }
    
        }

  2. #2
    Che problema ti da?
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2007
    Messaggi
    4,157
    la chiusura del tag code è con lo "/" non il "\".

    In ogni caso, indica il problema, se non riesci a compilare e/o se hai errore magari evidenziando nel tuo codice dove l'errore si presenta.
    In genere l'output di compilazione e/o lo stacktrace è molto preciso sul tipo di errore che si presenta (almeno in java)

  4. #4
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    non tornano le parentesi degli if, ti consiglio comunque di usare il costrutto switch

    codice:
    switch(scelta)
    {
         case 1:
            //fai quello che devi fare
            break;
         case 2:
            //fai quello che devi fare
            break;
         etc etc
         default:
         //fai quello che devi fare se il valore non è uno di quelli indicati sopra
    }

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

    Re: problema esercizio da risolvere sui cicli

    Originariamente inviato da lurens79
    Buongiorno a tutti vorrei che qualcuno mi spiegasse cosa ho sbagliato.
    Buona solo questa parte della richiesta. Per lo sviluppo di una soluzione alternativa c'è il forum "Offro Lavoro / Collaborazione".

    Leggi anche il Regolamento interno per il futuro.

    Qui ho sistemato il posting del codice (niente spazi all'interno delle parentesi quadre dei tag e la chiusura si fa con lo slash " / " e non con il backslash " \ ") ed il titolo lo sistemerò non appena avrai fornito ulteriori informazioni essenziali, cioè "cosa non va".


    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    Ho sbagliato l'esercizio era questo .......
    Non va perchè quando digiti il numero dell'operazione da effettuare per esempio la divisione compare milioni di volte il risultato senza fermarsi mai ...... c'è qualcosa di impreciso insomma ....


    codice:
    import java.util.Scanner;
    
    public class Operazioni2 {
    
      public static void main(String[] args) {
    
        Scanner tastiera = new Scanner(System.in);
        
        
        System.out.print ( " Inserisci il primo numero n =  " ) ;
        int n= tastiera.nextInt();
         
       System.out.print ( " Inserisci il secondo numero m =  " ) ;
         
        int m=tastiera.nextInt();
    
       System.out.println ( " Inserisci l'operazione  che vuoi effettuare  = 1 per la somma , 2 per la sottrazione , 3 per la divisione , 4 per la moltiplicazione , 5 per la media  ") ;
                                                                           
         int scelta = tastiera.nextInt() ; 
    
    
    
     while(tastiera.hasNextInt()){
    
                if  ( scelta != 0 )    {
    
          
    if ( scelta == 1  )  
    
       
                     System.out.println ( "   il risultato della  somma è  :" +  (m+n) ) ; 
    
    if ( scelta == 2  ) 
    
       
                     System.out.println ( "   il risultato della  sottrazione è   :" +  (m-n)  );
    
    if ( scelta == 3 & m != 0 )
       
                     System.out.println ( "   il risultato della  divisione  è  :" +  (m/n)  );
    else 
    
                    System.out.println ( "   il risultato della  divisione  è  negativo ! "  );
    
    if ( scelta == 4  ) 
    
       
                     System.out.println ( "   il risultato della  moltiplicazione  è  :" +  (m*n)  );
    
    if ( scelta == 5  ) 
    
       
                     System.out.println ( "   il risultato della  media  è  :" +  (m+n)/2  );
                  
    
    }else { 
                  if   (  scelta == 0 )
                  System.out.println ( " errore ! "  ) ;
    
    }
    }
    }
    }

  7. #7
    Utente di HTML.it L'avatar di bstefano79
    Registrato dal
    Feb 2004
    Messaggi
    2,520
    Leggi comunque quello che ti ho scritto sopra a proposito del costrutto switch

    l'ho modificato così dovrebbe andare bene
    codice:
    import java.util.Scanner;
    
    public class Operazioni2 {
    
      public static void main(String[] args) {
    
        Scanner tastiera = new Scanner(System.in);
        
        
        System.out.print ( " Inserisci il primo numero n =  " ) ;
        int n= tastiera.nextInt();
         
       System.out.print ( " Inserisci il secondo numero m =  " ) ;
         
        int m=tastiera.nextInt();
    
                                                                           
         int scelta = tastiera.nextInt() ; 
    
    
     boolean esci=false;
     while(!esci){
          System.out.println ( " Inserisci l'operazione  che vuoi effettuare  = 1 per la somma , 2 per la sottrazione , 3 per la divisione , 4 per la moltiplicazione , 5 per la media  ") ;
    
          int scelta = tastiera.nextInt() ;
                if  ( scelta != 0 )    {
    
          
    if ( scelta == 1  )  
    
       
                     System.out.println ( "   il risultato della  somma è  :" +  (m+n) ) ; 
    
    if ( scelta == 2  ) 
    
       
                     System.out.println ( "   il risultato della  sottrazione è   :" +  (m-n)  );
    
    if ( scelta == 3 & m != 0 )
       
                     System.out.println ( "   il risultato della  divisione  è  :" +  (m/n)  );
    else 
    
                    System.out.println ( "   il risultato della  divisione  è  negativo ! "  );
    
    if ( scelta == 4  ) 
    
       
                     System.out.println ( "   il risultato della  moltiplicazione  è  :" +  (m*n)  );
    
    if ( scelta == 5  ) 
    
       
                     System.out.println ( "   il risultato della  media  è  :" +  (m+n)/2  );
                  
    
    }else { 
                  if   (  scelta == 0 )
                  {
                         System.out.println ( " errore ! "  ) ;
                         esci=true;
                  }
    
    }
    }
    }
    }

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    49
    La soluzione era giusta e perfetta , ora provo con lo switch .... Grazie mille per ora !!

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.