Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    18

    [Java] Ordinamento vettore

    Salve, sono alle prime armi con il linguaggio java, ma avevo già avuto modo di programmare con Pascal.
    Ho provato a fare un programmino che ordina con il metodo a bolle, un vettore di interi (che in Pascal faccio senza problemi). In compilazione non mi da alcun errore, ma in esecuzione invece di vedermi restituire il vettore ordinato, mi viene restituito con lo stesso ordine dell'input.
    Qui di seguito c'è il codice, chi mi sa dire di più?
    Grazie anticipatamente

    import fondamenti.input.Console;
    public class Vett{
    public static void main(String[]args){
    int dim=Console.readInt("Dammi la dimensione del vettore");
    int[]V=new int[dim];
    for(int i=0;i<dim;i++)
    V[i]=Console.readInt("dammi il valore "+i);
    boolean ordinare=true;
    while(ordinare){
    ordinare=false;
    for(int i=0;i>dim;i++){
    f(V[i]>V[i+1]){
    int scambio=0;
    scambio=V[i];
    V[i]=V[i+1];
    V[i+1]=scambio;
    ordinare=true;
    } //chiusura if
    } //chiusura for
    } //chiusura while
    for(int i=0;i<dim;i++)
    System.out.print(V[i]+" ");
    } //chiurusa main
    } //end

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,480

    Moderazione

    Ho spostato la discussione nel forum dedicato a Java.
    In futuro, poni qui le tue domande relative a questo linguaggio.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    18
    Ops, si scusami

  4. #4
    Hai sbagliato la condizione del ciclo for i>dim così il ciclo non viene proprio eseguito e quindi il vettore rimane inalterato.
    Al mio segnale... scatenate l'inferno!

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    18
    Caspita vero!
    Grazie per la tua osservazione...l'avevo proprio sotto il naso l'errore!

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    18
    Azz...credevo di aver risolto.
    Sempre in esecuzione mi da un errore:
    Exception in thread "main" java.lang.ArrayIndexOutOfBOundsException: 2
    at Vett.main<Vett.java:12>
    E adesso?

  7. #7
    Stai tentando di accedere ad un indice dell'array inesistente.

    Infatti supponendo che dim = 3, nell'ultimo ciclo hai i=2 e quindi con V[i+1] tenti di accedere all'elemento V[3] che non esiste.
    Al mio segnale... scatenate l'inferno!

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    18
    Infatti...e come si può ovviare a questo problema?
    Devo forse impostare la condizione del ciclo i<dimi-1?

  9. #9
    Utente di HTML.it
    Registrato dal
    Apr 2006
    Messaggi
    18
    Benissimo! Era quello il problema!
    Grazie 1000 ancora!

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.