Page 1 of 2 12 LastLast
Results 1 to 15 of 20

Thread: Aiuto Informatica

  1. #1
    Petty Officer 3rd Class Thuslands's Avatar
    Join Date
    Mar 2004
    Location
    Bellante( TE)
    Posts
    444

    Default Aiuto Informatica

    Non sapevo dove postare ,cosi posto qui.

    Un problemino semplice semplice per chi ci capisce di informatica.


    Si tratta di un quesito abbastanza elementare credo ma, aimhè, fin'ora non solo non sono riuscito a trovare una risposta ragionandoci , non riesco a trovarla neanche sul mio libro , che non spiega affatto bene la cosa.


    Nel cercare di scrivere programmini sempre piu complicati sto cercando di capire da solo molti meccanismi che il mio libro spiega malissimo facendo ricorso a moltissimi esempi difficili da generalizzare:

    Fin'ora c'è una cosa che mi tornerebbe molto utile nel 90% dei programmi che devo implementare ma non riesco ancora a venirne a capo...

    Come si riordina in ordine crescente o decrescente un array?


    Ho molte idee a riguardo , ma non riesco a implementarlo.

    Grazie in anticipo



    ps: ho provato a pensarle tutte, ma il nocciolo della questione , credo, sia quello di non riuscire ad indicare l'x-esimo elemento dell'array, per poter poi riscrivere un'altro array i cui elementi soddisfano la seguente banalità :

    array[x]<array[x+1]

  2. #2
    Hador's Avatar
    Join Date
    Mar 2004
    Location
    Milano
    Posts
    31.321

    Default

    con che metodo? in che linguaggio?
    divide et impera?

  3. #3

  4. #4

  5. #5
    Petty Officer 3rd Class Thuslands's Avatar
    Join Date
    Mar 2004
    Location
    Bellante( TE)
    Posts
    444

    Default

    Al di la del dividi e conquista , il mio proglema è scrivere l'algoritmo in codice sorgente. Il linguaggio è java.


    Ho fatto diversi programmini fin'ora , alcuni anche abbastanza complessi , ma la maggior parte non riesto a portarla a termine se non trovo un modo per ordinare i dati di un array in ordine crescente o decrescente.

    Un esempio pratico: programmino che prende in input 10 voti e stampa i 5 migliori. Utilizzando un'array , voi , come fareste?

  6. #6
    Petty Officer 3rd Class Thuslands's Avatar
    Join Date
    Mar 2004
    Location
    Bellante( TE)
    Posts
    444

    Default

    Quote Originally Posted by Axelfolie View Post

    Interessante , grazie

  7. #7
    Lieutenant Commander Arcotemo's Avatar
    Join Date
    Feb 2004
    Location
    Paperopoli
    Posts
    5.335

    Default

    ce ne sono diversi di programmi "sort" , cerca su html.it

    ci sono ottime guide li
    #Guild Wars
    Arcotemya O <O Zen>
    #Daoc
    Arcotemo <Zen> Theurghist 7Lx Galahad
    Arcotemya <O> Eldricht 10Lx Deira
    Nessessity <O> Bard 6Lx Deira
    Quote Originally Posted by Estrema View Post
    cmq morale della favola anche per farsi una scopata bisogna stare attenti a non fr piangere gesù

  8. #8
    Hador's Avatar
    Join Date
    Mar 2004
    Location
    Milano
    Posts
    31.321

    Default

    usa un algoritmo di sort (il mejo è il merge sort, poi dipende se stai facendo programmazione o algoritmi, altrimenti semplicemente usa il metodo del buble sort) e fai stampare i primi 5...

  9. #9
    Zaider's Avatar
    Join Date
    Jan 2004
    Location
    Nella pianura della nebbia..
    Posts
    8.711

    Default

    Io conosco solo il bubble sort.
    il dividi et impera non serviva per altre cose? Oo
    gratz.

  10. #10
    Petty Officer 3rd Class Thuslands's Avatar
    Join Date
    Mar 2004
    Location
    Bellante( TE)
    Posts
    444

    Default

    public void bubbleSort(int[] x)
    {
    int temp = 0;
    int j = x.length;
    while(j>0)
    {
    for(int i=0; i<j-1; i++)
    {
    if(x[i]>x[i+1])
    {
    temp=x[i];
    x[i]=x[i+1];
    x[i+1]=temp;
    };
    };
    j--;
    };
    }


    Questo l'ho capito , ma ci sono alcune cose che dal basso della mia ignoranza informatica non capisco.

    1. mettere i ; dopo le parentesi graffe?
    2. in pseudocodice : Prendi il valore contenuto nella cella i, confrontalo con la cella i+1. Se il valore della cella successiva è superiore , inverti l'ordine. ( in pratica prevede un ordinamento decrescente) e fin qui non ci sono problemi , lo spiega anche il principio impirico. Ma, al posto di i+1 viene messa una variabile temp, intera e inizializzata a 0.
    in pratica la variabile temp funziona come un terzo bicchiere , quando vogliamo invertire il liquido contenuto in 2 bicchieri?


    3.Come lo stampo l'array ordinato ottenuto?

    basta un semplice :

    for ( int counter=1;counter<x.length;counterr++)
    System.out.printf("%d\n",x[counter])
    ?


    Perche il compilatore mi sta segnando un errore che propio non capisco.

  11. #11

    Default

    In Java non saprei dirti, in php ci sono una nutrita serie di funzioni che servono proprio a ordinare le array nel modo che preferisci...
    Questo è un esempio molto banale che mi viene in mente ora su 2 piedi...
    Code:
    $a = array ();
    // funzione che ti popola l'array con indice [x] e valore [i]
    .....
    // ordina i valori dell'array in senso decrescente - non gli indici 
    // ma i valori, gli indici vengono riscritti!
    rsort($a);
    // Diciamo che vuoi i 5 risultati che escono per primi 
    // (ovvero saranno dal piu' grande al piu' piccolo)
    while($x<5) { // <5 perché le array partono da 0, quindi 0..4 sono 5 elementi.
    print($a[$x]);
    $x++;
    }
    Oltre a rsort ce ne sono molte altre anche piu' raffinate, non penso che a java manchino ste funzionalità senza scomodare funzioni complesse.
    Jarsil, the Nervous Admin of [W] Forums
    Quote Originally Posted by Ipnotik
    non gli bastava averci tolto il nostro caro PD, ora ci tolgono pure l'ASD. Manca solo una coalizione di centrosx in italia chiamata LOL, e poi siamo al completo.

    Quote Originally Posted by spinoza.it
    Il premier: “L’Italia è vittima di un passato che non passa”. E di un dittatore con una ditta.

  12. #12
    Lieutenant Commander Axet's Avatar
    Join Date
    Sep 2003
    Location
    Ginevra
    Posts
    33.807

    Default

    Il codice per stampare l'array è corretto, ricordati il ";" dopo il s.o.p e occhio che nel for hai scritto counteRR++, con due R invece che una sola.

    La seconda domanda non l'ho capita :O

    I'm no hero. Never was. Never will be.
    -----
    Soul of the mind, key to life's ether
    Soul of the lost, withdrawn from its vessel
    May strength be granted so the world might be mended...
    So the world might be mended...

  13. #13
    Hador's Avatar
    Join Date
    Mar 2004
    Location
    Milano
    Posts
    31.321

    Default

    si funge da "terzo bicchiere", variabile locale, temporale o che dir si voglia

  14. #14
    Petty Officer 3rd Class Thuslands's Avatar
    Join Date
    Mar 2004
    Location
    Bellante( TE)
    Posts
    444

    Default

    Ho finito il programma , gira perfettamente.

    Molto carino , so 4 facciate di quaderno di codice ed il mio primo programmino abbastanza complesso ( ci sono dentro 11 metodi )


    Domattina penso di inserire il 12 esimo e siccome gia so che molto probabilmente non riusciro a farlo da solo tornero a rompervi le palle qui



    Grazie a tutti , mi sete stati d'aiuto

  15. #15
    Hador's Avatar
    Join Date
    Mar 2004
    Location
    Milano
    Posts
    31.321

    Default

    QUADERNO?
    ma dove la fai informatica?

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  
[Output: 97.60 Kb. compressed to 82.67 Kb. by saving 14.93 Kb. (15.30%)]