Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    67

    Sommo 10 numeri con For

    Salve, ho già eseguito questo esercizio utilizzando l'istruzione ripetitiva while, adesso lo sto facendo utilizzando l'istruzione for.
    codice:
    import fiji.io.*;    
        class For2 {
            public static void main(String[] args) {
                int numero;
                int somma;
                int i; // numeri letti //
                System.out.println("Inserisci 10 numeri interi:");
                for (i=0, numero = Lettore.in.leggiInt(), somma=0; i<9; i++, numero = Lettore.in.leggiInt())
                    somma = somma + numero;
                System.out.println("La somma è:");
                System.out.println(somma);
            }
         }
    come inizializzazione. ho inserito il valore del contatore iniziale a 0, che n deve essere letto dalla tastiera e che la somma è uguale a zero.Come condizione ho messo che for deve continuare finchè il contatore "i" sia minore di 9. Ho dovuto mettere 9 facendo varie prove e vorrei capire perchè 10 o minore o uguale di 9 non vadano bene, perchè cosi facendo mi fa inserire 11 numeri. Poi ho messo come aggiornamento dell'istruzione for, l'incremento del contatore di uno e che bisogna leggere un altro numero dalla tastiera. Cosa posso fare per semplificare questo codice? Credo di aver sbagliato qualcosa nell'inizializzazione.

  2. #2
    Utente di HTML.it L'avatar di Nikopol
    Registrato dal
    Jan 2011
    Messaggi
    120
    Come condizione ho messo che for deve continuare finchè il contatore "i" sia minore di 9. Ho dovuto mettere 9 facendo varie prove e vorrei capire perchè 10 o minore o uguale di 9 non vadano bene, perchè cosi facendo mi fa inserire 11 numeri.
    Nel for inizializzi numero con l'intero letto da tastiera (primo inserimento) e poi ne leggi altri 10 numeri , uno per ogni iterazione (10 + 1 inserimenti).
    Ti basterebbe inizializzare a zero numeri
    codice:
    for (i=0, numero = 0, somma=0; i<10; i++, numero = Lettore.in.leggiInt())
    Il mio consiglio (del tutto personale) è di evitare di fare inizializzazioni e assegnamenti nel for che non riguardino il funzionamento del for stesso.

    Scritto così secondo me è molto più leggibile:
    codice:
    public static void main(String[] args) {
        int numero = 0;
        int somma = 0 ;
        
        System.out.println("Inserisci 10 numeri interi:");
        
        for (int i = 0;  i < 10; i++){
            numero = Lettore.in.leggiInt(); 
            somma = somma + numero;
        }
    
        System.out.println("La somma è:" + somma);
    }
    Ultima modifica di Nikopol; 29-01-2015 a 02:31
    La Guida Galattica è infallibile.
    È la realtà, spesso, ad essere inesatta.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    67
    Grazie per la risposta, ora è tutto piu chiaro.
    Però avrei un'altra domanda, Sto facendo un esercizio in cui si deve creare un metodo, utilizzando l'istruzione for, per calcolare i primi numeri positivi e dispari in una sequenza N.
    METODO MAIN
    codice:
    import fiji.io.*;
        class Dispari1 {
            public static void main(String[] args) {
               int n;
               System.out.println("Inserisci un numero intero:");
               n = VisualizzatoreDispari.visualizzaDispari(Lettore.in.leggiInt());
               System.out.println("I primi interi dispari di questo numero sono:");
               System.out.println(n);
               
            }
        }
    METODO PER LA VISUALIZZAZIONE:
    codice:
    class VisualizzatoreDispari {
        public static string visualizzaDispari(int n) {
            int i;
            int dispari;
            dispari = 0;
                for (i=1; i<=n; i++) {
                if(i%2!=0)
                 dispari = i;
                 System.out.println(dispari);
                
                }  
                
            return dispari;
            }
        }
    Nel metodo non principale ho utilizzato l'istruzione for e if. Nella for ho inizializzato il contatore, che altro non è che i numeri positivi compresi tra 1 e n compresi.Come condizione ho inserito che l'istruzione deve ripetersi fino a che non si raggiunge il numero n inserito.Come aggiornamento ho messo ovviamente l'incremento di i.
    Nel corpo dell'istruzione ho messo un istruzione if che come condizione ha che se i non è divisibile per due, ovvero se i è dispari allora deve essere memorizzato nella variabile dispari e stampato. questo finchè è verificata la condizione di for poichè if fa parte del corpo di for, no?
    Solo che non capisco per quale motivo quando vado a invocare il metodo nel metodo main con nome-classe.nome - metodo(parametro) mi da errore durante la compilazione. Un errore del tipo cannot find symbol con indicazione da parte del compilatore sul richiamo della classe.
    Ultima modifica di FDLx; 29-01-2015 a 15:04

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    67
    modifica: Il metodo non principale non ha come tipo di ritorno string, ma int.

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.