Massimo elemento di un vettore

Questo esercizio consiste nel trovare, in un vettore di interi, quello che ha valore massimo. Si inizia con la definizione del vettore e dei sui valori:

class Massimo {
  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, 39, 72, 5, 38, 71, 4, 37, 70, 3, 36, 69, 2};
La prima cosa da fare è determinare il numero di elementi di cui il vettore è composto. Contare tutti gli elementi a mano richiede tempo. Inoltre, ogni volta che si deve aggiungere un nuovo valore al vettore, occorre modificare il codice per tenere conto dell'aumento o diminizione del numero di elementi. Per questa ragione, definiamo una variabile nella quale mettiamo il numero di elementi:

    numeroelementi=x.length;
Per calcolare il massimo, seguiamo l'algoritmo per cui assumiamo inizialmente che il massimo elemento è il primo, e poi facciamo una scansione degli elementi del vettore. Se troviamo un elemento che è maggiore del massimo, quello è il nuovo massimo. In altre parole:
  1. il massimo elemento è il primo;
  2. per ogni valore di i:
In termini di codice, il primo passo si traduce in:

    massimo=x[0];
Mentre il ciclo diventa:

    for(i=0; i<=numeroelementi-1; i=i+1) {
      if( x[i]>massimo ) {
        massimo=x[i];
      }
    }
Si noti che gli elementi del vettore partono da x[0]. Il vettore ha numeroelementi componenti, per cui l'ultimo elemento è x[numeroelementi-1]. Questo è il motivo per cui il ciclo deve partire dal valore 0 e arrivare al valore numeroelementi-1.

Alla fine della iterazione la variabile massimo contiene il valore del massimo elemento del vettore. Il programma completo è Massimo.java, in cui al posto della variabile numeroelementi si usa direttamente x.length come valore finale del ciclo for.

/*
  Trova il massimo elemento di un vettore.
*/

class Massimo {
  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, 39, 72, 5, 38, 71, 4, 37, 70, 3, 36, 69, 2};
    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);
  }
}