Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: domande su gli ARRAY

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    14

    domande su gli ARRAY

    Ciao ragazzi, sto tentando di realizzare alcuni semplici programmi in java usando gli array ma in alcuni sto riscontrando delle difficoltà. Le mie domande sono le seguenti:

    1. come faccio a farmi restituire il secondo numero massimo di un array?
    2. come faccio a farmi restituire il primo numero pari all'interno di un array?

    inoltre è possibile inserire il contenuto dell'array grazie classe scanner (come facevo con con gli int normali es. a=in.nextInt)

    In attesa di un gentile riscontro auguro buona giornata

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: domande su gli ARRAY

    Originariamente inviato da fake091
    1. come faccio a farmi restituire il secondo numero massimo di un array?
    Gli approcci possono essere più di uno e diversi. Puoi ordinare l'array e poi cerchi linearmente, saltando il primo numero e prendendo il secondo che trovi (es. {5, 2, 5, 4, 3} ---> {5, 5, 4, 3, 2} banale scansione in sequenza, salti il 5 e il 4 lo prendi).
    Oppure con del tuo codice tieni 2 variabili (primoMaggiore e secondoMaggiore) che aggiorni man mano che scansioni l'array. Qui è più questione di "logica" (ragionamento) che programmazione.

    Originariamente inviato da fake091
    2. come faccio a farmi restituire il primo numero pari all'interno di un array?
    Semplice scansione lineare. Un numero è pari se è divisibile per due. O usi l'operatore di modulo (%) di 2 per vedere se il resto è 0 oppure testi se il bit meno significativo è 0.

    Originariamente inviato da fake091
    inoltre è possibile inserire il contenuto dell'array grazie classe scanner (come facevo con con gli int normali es. a=in.nextInt)
    Direttamente no. Con Scanner puoi chiedere in input ciascun valore che poi metti tu in un array.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3

    Re: Re: domande su gli ARRAY

    Originariamente inviato da andbin
    Gli approcci possono essere più di uno e diversi. Puoi ordinare l'array e poi cerchi linearmente, saltando il primo numero e prendendo il secondo che trovi (es. {5, 2, 5, 4, 3} ---> {5, 5, 4, 3, 2} banale scansione in sequenza, salti il 5 e il 4 lo prendi).
    Oppure con del tuo codice tieni 2 variabili (primoMaggiore e secondoMaggiore) che aggiorni man mano che scansioni l'array. Qui è più questione di "logica" (ragionamento) che programmazione.
    Oppure usi una variabile countMax (un semplice contatore) e nel momento in cui è pari a 2, restituisci il massimo, che hai salvato in quale altra variabile. Però questa è più complessa.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    14

    Re: Re: domande su gli ARRAY

    Innanzi tutto vi ringrazio per la rapida risposta, purtroppo non sono riuscito a chiarire completamente i miei dubbi...

    per quanto riguarda il primo punto io il programma lo scrivo così:

    codice:
    public static void main(String[] args) {
    int x[]={12, 45, 78, 11, 44, 77, 10, 43, 76, 9, 42, 75, 8, 41, 74, 7, 40, 73, 6};
    int i; int massimo; 
    massimo=x[0];
    for(i=0; i<=x.length-1; i=i+1) { 
    if( x[i]>massimo ) { 
    massimo=x[i]; 
    }
     } 
    System.out.println("Il massimo e' "+massimo); 
    } }
    dov'è che effettuo posso effettuare la modifica?






    invece per quanto riguarda l'inserimento del vettore "da esterno" (dopo che lancio il programma) sarebbe possibile mediante qualche altra classe?

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: domande su gli ARRAY

    Originariamente inviato da fake091
    dov'è che effettuo posso effettuare la modifica?
    Metti un'altra variabile per il "secondo maggiore". Se x[i] è maggiore del primo-maggiore devi fare scalare questo nel secondo-maggiore e poi aggiornare il primo-maggiore. Se è solo maggiore del secondo-maggiore, aggiorni solo questo.

    Originariamente inviato da fake091
    invece per quanto riguarda l'inserimento del vettore "da esterno" (dopo che lancio il programma) sarebbe possibile mediante qualche altra classe?
    No (a meno di usare librerie apposite e non solo il framework standard). Ripeto, semplice ciclo in cui si legge ciascun valore e come/quando terminare il ciclo ... dipende, lo devi scegliere tu.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    14

    Re: Re: Re: Re: domande su gli ARRAY

    ciao, ho provato in vari a lavorare con la seconda variabile non riesco a far ritornare il secondo max, non mi è ben chiara questa parte

    Originariamente inviato da andbin
    devi fare scalare questo nel secondo-maggiore e poi aggiornare il primo-maggiore. Se è solo maggiore del secondo-maggiore, aggiorni solo questo.
    PS. scusate per la mia "incapacità" ma sono ancora alla prime armi.

  7. #7

    Re: Re: Re: Re: Re: domande su gli ARRAY

    Originariamente inviato da fake091
    ciao, ho provato in vari a lavorare con la seconda variabile non riesco a far ritornare il secondo max, non mi è ben chiara questa parte



    PS. scusate per la mia "incapacità" ma sono ancora alla prime armi.
    Un consiglio: dato che sei così alle prime armi ed hai difficoltà ad elaborare al volo un algoritmo direttamente in java, prendi carta e penna e disegna uno o più array di prova con le caselline e i numeri dentro e rappresenta i due massimi come altre due caselline che aggiorni di volta in volta mentre scorri l'array con una freccetta, ti aiuterà a elaborare un algoritmo (che per altro ti è stato già suggerito funzionante ) in astratto che poi è semplice riportare su codice. Ti assicuro che capita anche a programmatori scafati di farlo, ragionare in astratto aiuta a generalizzare ed a non farsi distrarre dai vincoli del particolare linguaggio in uso.
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: domande su gli ARRAY

    Originariamente inviato da fake091
    PS. scusate per la mia "incapacità" ma sono ancora alla prime armi.
    Ok, vediamolo con una analogia un po' più "fisica".
    Hai due ripiani (di un mobile, scaffale ...) su ognuno hai un foglietto con su scritto un numero. Sul piano più alto c'è sempre un numero maggiore di quello sul piano più basso.
    Ti arriva un nuovo numero .... dove lo metti? Se è più alto di quello sopra devi spostare questo più sotto e sostituire quello sopra con il nuovo. Se è a metà dei due devi solo sostituire quello sotto.

    L'analogia è un po' naïf .... ma credo che renda l'idea.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    14

    Re: Re: Re: Re: Re: Re: domande su gli ARRAY

    Originariamente inviato da andbin
    Ok, vediamolo con una analogia un po' più "fisica".
    Hai due ripiani (di un mobile, scaffale ...) su ognuno hai un foglietto con su scritto un numero. Sul piano più alto c'è sempre un numero maggiore di quello sul piano più basso.
    Ti arriva un nuovo numero .... dove lo metti? Se è più alto del primo devi spostare il primo sotto e sostituire quello sopra con il nuovo. Se è a metà dei due devi solo sostituire quello sotto.

    L'analogia è un po' naïf .... ma credo che renda l'idea.
    ma il mio problema è: come fare per scambiarli di posizione

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: Re: Re: Re: Re: domande su gli ARRAY

    Originariamente inviato da fake091
    ma il mio problema è: come fare per scambiarli di posizione
    codice:
    Se nuovo maggiore di primo allora
        assegna primo al secondo
        assegna nuovo al primo
    altrimenti se nuovo maggiore di secondo allora
        assegna nuovo al secondo
    Più di così .....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.