Løsningsforslag - oppgaver i Avsnitt 1.1.2


Oppgave 1

En min-metode vil returnere 6 siden den minste verdien, dvs. 1, ligger i posisjon 6.

Oppgave 2

  public static int min(int[] a)  // a er en heltallstabell
  {
    if (a.length < 1)
      throw new java.util.NoSuchElementException("Tabellen a er tom!");

    int m = 0;  // indeks til minste verdi

    for (int i = 1; i < a.length; i++) // obs: starter med i = 1
    {
      if (a[i] < a[m]) m = i;  // indeksen oppdateres
    }

    return m;  // returnerer indeksen/posisjonen til minste verdi

  } // min

Oppgave 3

Det gjøres ved å endre sammenligningen if (a[i] > a[m]) til if (a[i] >= a[m]).

En alternativ måte er å gå gjennom tabellen motsatt vei, dvs. starte lengst til høyre og så gå mot venstre. Det kan kodes slik:

  public static int maks(int[] a)  // a er en heltallstabell
  {
    if (a.length < 1)
      throw new java.util.NoSuchElementException("a er tom");

    int m = a.length - 1;  // indeks til største verdi

    for (int i = a.length - 2; i >= 0; i--) // starter nest bakerst
    {
      if (a[i] > a[m]) m = i;  // indeksen oppdateres
    }

    return m;  // returnerer indeksen/posisjonen til største verdi

  } // maks