Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775

    array: posizione del valore massimo


    io sono alle prime armi con gli array, per giovedì circa 20-30 programmi da fare e giovedi prossimo verifica.. vediamo come ci riesco

    comunque tra i tanti programmi per giovedì ne ho prews0o uno che mi sembra "abbastanza" semplice.. solo che non capisco perchè mi da errore (BlueJ).. penso sia colpa delle variabili.. cosa che non mi entra in testa..

    qualcuno può per favore darci un occhio e dirmi dove sbaglio?

    codice:
    /**
     * In un vettore di numeri determinare la posizione del valore massimo
     * 
     * Name
     * 04/02/2010
     */
    import javax.swing.*;
    public class ValMassimo
    {
       public static void main()
       {
          int []vett= new int[10];
          int max;
          
          for(int i=0; i<vett.length;i++)
          {
             vett[i]=Integer.parseInt(JOptionPane.showInputDialog("inserisci un numero"));
          }
          
          max=vett[i];
          
          for(int i=0; i<vett.length;i++)
          {
             if(max<vett[i])
             {
                max=vett[i];
             }
             else
             {
                max=max;
             }
          }
    
       }
    }
    grazie!!

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Se non ci dici che errore ottieni, non lo possiamo sapere, solo immaginare dal codice che hai postato.
    Tra i due for c'è
    codice:
    max=vett[i];
    ma la variabile i non la vedo dichiarata da nessuna parte.
    al volante son nervoso

  3. #3
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    ho messo la i nell' int, tolto int i=0 nei cicli for.. mi compila il proramma..
    lo eseguo però invece di darmi il risultato mi da un errore con scritto questo:

    java.lang.ArrayIndexOutOfBoundsException: 10
    at ValMassimo.main(ValMassimo.java:20)

    e mi evidenzia questo: max=vett[i];

    come mai??

    (riecco il codice)
    codice:
    /**
     * In un vettore di numeri determinare la posizione del valore massimo
     * 
     * Ongaro Samuele
     * 04/02/2010
     */
    import javax.swing.*;
    public class ValMassimo
    {
       public static void main()
       {
          int []vett= new int[10];
          int max,i=0;
          
          for(; i<vett.length;i++)
          {
             vett[i]=Integer.parseInt(JOptionPane.showInputDialog("inserisci un numero"));
          }
          
          max=vett[i];
          
          for(; i<vett.length;i++)
          {
             if(max<vett[i])
             {
                max=vett[i];
             }
             else
             {
                max=max;
             }
          }
    
       }
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da Buzzz
    ho messo la i nell' int, tolto int i=0 nei cicli for.. mi compila il proramma..
    lo eseguo però invece di darmi il risultato mi da un errore con scritto questo:

    java.lang.ArrayIndexOutOfBoundsException: 10
    at ValMassimo.main(ValMassimo.java:20)

    e mi evidenzia questo: max=vett[i];

    come mai??

    (riecco il codice)
    codice:
    /**
     * In un vettore di numeri determinare la posizione del valore massimo
     * 
     * Ongaro Samuele
     * 04/02/2010
     */
    import javax.swing.*;
    public class ValMassimo
    {
       public static void main()
       {
          int []vett= new int[10];
          int max,i=0;
          
          for(i=0 ; i<vett.length;i++)
          {
             vett[i]=Integer.parseInt(JOptionPane.showInputDialog("inserisci un numero"));
          }
    i=0; 
          // un controllo sulla lunghezza del vett io la metterei, tanto per stare sicuri che qualcosa ci sia dentro. 
          max=vett[i];
          
          for(i=0 ; i<vett.length;i++)
          {
             if(max<vett[i])
             {
                max=vett[i];
             }
             else
             {
    // assegnare un valore a se stesso è lecito, ma a cosa ti serve qui? 
                max=max;
             }
          }
    
       }
    }
    A parte che dal primo for è scomparsa la dichiarazione della variabile usata dal for stesso (!!!!)
    Dichiari i come intero e gli dai un valore pari a 0.
    La usi nel ciclo for (adesso vedo che hai tolto la dichiarazione nel for). A fine ciclo for viene assegnato ad i il suo ultimo valore, ossia la lunghezza del vettore. E poiché i è dichiarata a livello di metodo, lo mantiene tale valore. Quindi recuperare un valore da un vettore di indice uguale alla lunghezza da errore.
    al volante son nervoso

  5. #5
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    non penso di aver capito bene.. sono ancora agli inizi io..
    puoi copletarmi il programma cosi capisco dove ho sbagliato?

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da Buzzz
    non penso di aver capito bene.. sono ancora agli inizi io..
    puoi copletarmi il programma cosi capisco dove ho sbagliato?
    Hai provato a fare le modifiche suggerite in rosso nel precedente mio post?
    Direi di no, visto che chiedi di completarti il programma.
    Il codice te l'ho rivisto, è segnato in rosso quello che propongo di modificare.

    PS: per le prossime volte ricordati di togliere il tuo nome e cognome dal codice che inserisci su un forum, il tuo o quello di altre persone. E' preferibile.
    al volante son nervoso

  7. #7
    Utente di HTML.it L'avatar di Buzzz
    Registrato dal
    Jan 2009
    Messaggi
    775
    nel secondo codice mi sono dimenticato
    comunque ho fatto come hai detto e funziona.. grazie

    però ora devo dire in che posizione si trova il numero maggiore.. come faccio?

    perchè impostando un secondo contatore nel for mi indica quante volte esegue il ciclo..
    non saprei proprio come fare..

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.