Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 23
  1. #11
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Che strutture dati puoi utilizzare? Puoi usare Vector o devi per forza solo e sempre usare array?
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  2. #12
    Purtroppo solo array, non abbiamo studiato altro per ora.
    Flash Developer for Rich Media
    PHP, jQuery Developer

  3. #13
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Allora aggiungi qualcosa del genere:
    codice:
    String[] dest = new String[dictionary.length];
            int[] clean_freq = new int[dictionary.length];
            int index = 0;
            for (int i = 0; i < dictionary.length; i++) {
                if (freq[i] == 1) {
                    dest[index] = dictionary[i];
                    clean_freq[index] = 1;
                    index++;
                }
                else {
                    boolean presente = false;
                    for (int j = 0; j < i; j++) {                    
                        if (dictionary[j].equals(dictionary[i])) {
                            presente = true;
                            break;
                        }                    
                    }
                    if (!presente) {
                        dest[index] = dictionary[i];
                        clean_freq[index] = freq[i];
                        index++;
                    }
                }
            }
            System.out.println("\n\n\nRipulito\n");
            for (int i = 0; dest[i] != null && i < dest.length; i++) {
                System.out.println(dest[i]+" -> "+clean_freq[i]);
            }
    Ossia hai bisogno di nuovi array dove andare ad appoggiare le string e le frequenze
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  4. #14
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Volendo usare solo ed esclusivamente array, io farei:

    codice:
    String str = "sopra la panca la capra canta sotto la panca la capra crepa";
    String[] words = str.split ("\\s+");
    
    String[] dictionary = new String[words.length];
    int[] frequency = new int[words.length];
    int count = 0;
    
    mainloop:
    for (int i = 0; i < words.length; i++) {
        for (int j = 0; j < count; j++) {
            if (words[i].equals (dictionary[j])) {
                frequency[j]++;
                continue mainloop;
            }
        }
    
        dictionary[count] = words[i];
        frequency[count++] = 1;
    }
    
    for (int i = 0; i < count; i++)
        System.out.println ("Parola \"" + dictionary[i] + "\"   frequenza " + frequency[i]);
    Semplice e pulito.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  5. #15
    Grazie mille a tutti e due.

    Andbin cosa sono quel "mainloop" e "continue mainloop;"?
    e potresti spiegarmi un po' il tuo codice? ^^;;;

    Cmq mi sto accorgendo che il prof ha mancato di spiegarci un po' di cose prima di darci questo esercizio <pensa>
    Flash Developer for Rich Media
    PHP, jQuery Developer

  6. #16
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Miroku
    Andbin cosa sono quel "mainloop" e "continue mainloop;"?
    Sono le "label" (etichette). In Java le istruzioni break e continue possono avere una etichetta. Non sto adesso a spiegarti le varie regole (dovrebbe o avrebbe dovuto farlo il tuo prof .... ) comunque per dirla semplice, quando viene raggiunto quel continue mainloop; si passa subito alla successiva iterazione del for esterno marcato appunto con la label e senza eseguire il resto del corpo nel for.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  7. #17
    Ehm no, non ha ancora spiegato le etichette =P

    Cmq... fammi un attimo capire il tuo codice (che funziona alla perfezione, grazie mille):
    Va beh, fa un'array con le varie parole, dichiari quelli che servono per conservare le parole e la frequenza... poi controlli se è presente un elemento di words in dictionary e se è così incrementi la frequenza con l'indice uguale a quella parola.

    Quello che non capisco è quello all'esterno del secondo for ma dentro al primo...
    codice:
    [...]
    dictionary[count] = words[i];
    frequency[count++] = 1;
    [...]
    Flash Developer for Rich Media
    PHP, jQuery Developer

  8. #18
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Miroku
    Quello che non capisco è quello all'esterno del secondo for ma dentro al primo...
    codice:
    [...]
    dictionary[count] = words[i];
    frequency[count++] = 1;
    [...]
    Se la parola l'ho già trovata nel dictionary, devo solo incrementare la frequenza. Se la parola non c'è nel dictionary, lo saprò solo quando il ciclo interno è terminato.
    Quel 'continue' è strategico proprio in quel senso. Se la trovo, incremento la frequenza e con il continue mainloop passo alla parola successiva senza fare le due istruzioni che hai riportato sopra.
    Se non la trovo, beh, il ciclo interno termina, so quindi che la parola non c'è e la aggiungo nel dictionary mettendo anche frequenza iniziale 1.
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  9. #19
    e come mai l'indice della frequenza è incrementato?
    Flash Developer for Rich Media
    PHP, jQuery Developer

  10. #20
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da Miroku
    e come mai l'indice della frequenza è incrementato?
    È un post-incremento! "count" l'ho usato per tenere il numero "logico" di elementi in dictionary/frequency.
    Se count è 2, allora inserisco i valori all'indice 2 (il terzo elemento) e poi incremento per ottenere 3 (appunto 3 elementi).
    Andrea, Senior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java 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 © 2026 vBulletin Solutions, Inc. All rights reserved.