CalcoloModa.java
Created with JBuilder
// Importazione di javabook: necessaria per utilizzare
// MainWindow, InputBox e OutputBox
import javabook.*;

class CalcoloModa {
  public static void main(String[] args) {
    // Fase preliminare: impostazione interfaccia grafica
    MainWindow mw = new MainWindow("Conversione di Stringhe");
    mw.show();
    InputBox ib = new InputBox(mw, "Inserimento dati");
    OutputBox ob = new OutputBox(mw, "Visualizzazione dati");

    // Richiesta dati
    int numeroElementi = ib.getInteger("Quanti elementi? ");
    int valoreMax = ib.getInteger("Massimo valore consentito? ");

    // Richiesta dei valori all'utente e calcolo delle frequenze
    int[] frequenza = chiediValori(ib, numeroElementi, valoreMax);

    // Calcolo della posizione del massimo valore in un vettore
    int posizioneMax = calcolaPosizioneMax(frequenza);

    // Visualizza il risultato
    ob.printLine("Il valore della moda è " + posizioneMax);
    ob.show();
  }

  private static int[] chiediValori( InputBox ib, int m, int n ) {
    // Creazione del vettore per il conteggio delle frequenze
    // Nel testo si assume che il valore minimo inseribile sia 0
    int[] frequenza = new int[n + 1];
    for (int i = 0; i < m; ++i) {
      int x = ib.getInteger("Inserisci valore: ");
      frequenza[x] += 1;
    }
    return frequenza;
  }

  private static int calcolaPosizioneMax( int[] v ) {
    int posMax = 0;
    for (int i = 1; i < v.length; ++i) {
      if (v[i] > v[posMax]) {
        posMax = i;
      }
    }
    return posMax;
  }
}

CalcoloModa.java
Created with JBuilder