Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    72

    Esercizio banale

    Ragazzi sto impazzendo!
    codice:
    class Array1{
    public static void main (String [] args){ 
    int [] a = {5,2,-4,7,-2}; 
    int k=2; 
    int v=3; 
    int cont = 0; 
    int i = 0; 
    
    while(i<a.length-1 || cont<k){ 
    if(a[i] + a[i+1] == v){ 
    cont++; 
    } 
    i++; 
    } 
    if (cont>=k){ 
    System.out.println("True"); 
    } 
    else{ 
    System.out.println("False"); 
    } 
    }
     }
    errore restituito:

    codice:
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at Array1.main(Array1.java:17)
    Ma dove? A me non sembra che l'indice esca fuori dall'array

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: Esercizio banale

    Originariamente inviato da visind
    Ragazzi sto impazzendo!
    codice:
            int[] a = {5, 2, -4, 7, -2};
            int k = 2;
            int v = 3;
            int cont = 0;
            int i = 0;
    
            while (i < a.length - 1 || cont < k) {
                if (a[i] + a[i + 1] == v) {
                    cont++;
                }
                i++;
            }
            if (cont >= k) {
                System.out.println("True");
            } else {
                System.out.println("False");
            }
    errore restituito:

    codice:
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5 at Array1.main(Array1.java:17)
    Ma dove? A me non sembra che l'indice esca fuori dall'array
    [list=1][*]Il titolo del messaggio deve contenere il linguaggio di programmazione[*]Lo stesso titolo non deve contenere "Esercizio banale". E' poco indicativo dell'errore.[/list=1]

    Comunque la condizione del while resta vera anche quando i=4, e quindi i+1 ti da quell'eccezione.
    al volante son nervoso

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Re: Esercizio banale

    Originariamente inviato da Rubox
    [list=1][*]Il titolo del messaggio deve contenere il linguaggio di programmazione[*]Lo stesso titolo non deve contenere "Esercizio banale". E' poco indicativo dell'errore.[/list=1]
    3. È inutile usare il tag CODE se il codice di partenza NON È indentato
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502

    Re: Re: Re: Esercizio banale

    Originariamente inviato da Alex'87
    3. È inutile usare il tag CODE se il codice di partenza NON È indentato
    Acc... non me n'ero accorto.
    Adesso aggiusto
    al volante son nervoso

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    72
    Chiedo scusa
    Come titolo dovrei inserire cosa?
    Posto anche il testo dell'esercizio?

    Quindi dovrei correggere la condizione while?
    Ovvero
    codice:
    while(i<a.length-2 || cont<k)
    Eppure non rida lo stesso

  6. #6
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da visind
    Chiedo scusa
    Come titolo dovrei inserire cosa?
    Posto anche il testo dell'esercizio?

    Quindi dovrei correggere la condizione while?
    Ovvero
    codice:
    while(i<a.length-2 || cont<k)
    Eppure non rida lo stesso
    Uno dei primi post del forum è il regolamento: sarebbe da leggere prima di inserire un nuovo post e ti spiega tutto.

    Per quanto riguarda il tuo esercizio, è abbastanza inutile mettere -2, -3 o -19284 finché non hai più l'errore.
    Non hai spiegato cosa dovresti fare con questo codice.
    Se vuoi scansionare l'array e vedere quando la somma di a(i) e a(i+1) è pari a 3 e fermarti dopo un certo numero di condizioni, io userei un for con un break dentro.
    al volante son nervoso

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    72
    Chiedo scusa. Non potendo modificare il messaggio iniziale posto il testo dell'esercizio qui:

    Scrivere un metodo che, dati un array di interi a (contenente almeno due
    elementi), un intero v ed un intero k (k>0), restituisce true se in a esistono almeno k coppie
    di interi, la cui somma µe uguale a v, altrimenti il metodo restituisce false.

  8. #8
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da visind
    Chiedo scusa. Non potendo modificare il messaggio iniziale posto il testo dell'esercizio qui:

    Scrivere un metodo che, dati un array di interi a (contenente almeno due
    elementi), un intero v ed un intero k (k>0), restituisce true se in a esistono almeno k coppie
    di interi, la cui somma µe uguale a v, altrimenti il metodo restituisce false.
    Le coppie devono solo essere adiacenti, oppure anche il primo sommato con l'ultimo, ad esempio?
    al volante son nervoso

  9. #9
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da Rubox
    Se vuoi scansionare l'array e vedere quando la somma di a(i) e a(i+1) è pari a 3 e fermarti dopo un certo numero di condizioni, io userei un for con un break dentro.
    Un ciclo termina quando la guardia booleana diventa false. Sarebbe meglio evitare di uscire da un ciclo usando il break, si rende più confuso il codice (sopratutto se il codice del ciclo non è corto).
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  10. #10
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da Alex'87
    Un ciclo termina quando la guardia booleana diventa false. Sarebbe meglio evitare di uscire da un ciclo usando il break, si rende più confuso il codice (sopratutto se il codice del ciclo non è corto).
    Vero (ogni tanto il neurone programmato a basic su C64 ha la meglio )

    Due cicli for che terminano quando la condizione è stata verificata, sia sull'indice di scansione, sia sul numero di coppie che presentano le caratteristiche richieste?
    al volante son nervoso

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.