You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 3 Next »

Oppgave 1 - Kodeforståelse, løkker


    1. tallrekke = input('Giinntallene ,omgittav []' );
      antall = 0;
      s = length(tallrekke) % gir antall elementer i rekken
      for i = 2:s
      	if tallrekke(i)==tallrekke(i-1)
      		antall = antall + 1
      	end
      end
      
      disp(antall)

       

      1. Hvilket tall blir skrevet ut når input er [0 0 0]?
        a. 0  b. 1 c. 2

      2. Hvilket tall blir skrevet ut når input er [0]?
        a. 0  b. 1 c. 2

      3. Hvilket tall blir skrevet ut når input er [0 1 2 2 1 1]?
        a.  b. 2 c. 3

      4. Hvilket tall blir skrevet ut når input er [1 2 3 3 3 3 5]?
        a. 1  b. 2  c. 3

    2. function uttabell = rdup(inntabell)
      j = 1;
      uttabell (j) = inntabell(1);
      s = length(inntabell) %ant. elem. i tabellen
      for i = 2:s
          if inntabell ( i ) ~= inntabell(i−1)
              j = j + 1;
              uttabell ( j ) = inntabell ( i ) ;
          end %if
      end %for
      end %function
      

       

      1. Hva blir rdup([0])?
        a. [0]  b. [0 1]  c. [0 0]

      2. Hva blir rdup([9 8 7 6 5])?
        a. [9 8 7 6 5]  b. [9 9 8 7 6]  c. [9 9 9 9 9]

      3. Hva blir rdup([9 8 8 7 6])?
        a. [9 8 8 7 6]  b. [9 8 7 6]  c. [9 9 9 9 9]

      4. Hva blir rdup([9 8 8 7 6 6 6])?
        a. [9 8 9 8 7 6 7 8]  b. [9 8 7 6]  c. [9 9 9 9 9]

    3. function svar = tell(tabell)
          antall = 1;
          while (antall < length(tabell)) && (tabell(antall+1) > tabell(antall))
              antall = antall + 1;
          end
          svar = antall ;
      end %function

       

      1. Hva blir tell([0])?
        a. 0  b. 1  c. 2

      2. Hva blir tell([0 1 4])?
        a. 1  b. 2  c. 3

      3. Hva blir tell([0 3 4 2 1])?
        a. 1  b. 2  c. 3

      4. Hva blir tell([2 5 6 7 6 7 8 9 11 24])?
        a. 4  b. 6  c. 10

      5. Hva blir tell([95 90 91 92 93 94 101 104])?
        a. b. c. 7

 

Oppgave 2 - Høydemåler

Nasjonalt Geografisk InformasjonsSenter (NGIS) har laget en 2-dimensjonal tabell (lagret i Matlabtabellen hoydetabell) med heltallsverdier som angir høyder over havet for et “firkantet” område i terrenget.
Et utdrag fra tabellen kan være:

 

189318982010199017691780...
190719602001176018701800...
191017831840210919021950...
175318401974215018231880...
.....................
Tabellen er gitt i sin helhet her: Tabell.txt

Du har blitt bedt om å lage et Matlab-skript for å søke igjennom denne tabellen med høydedata og skrive ut en beskjed på skjermen dersom høyden i en celle er 2000 meter eller høyere.
Denne beskjeden skal bestå av radnummer, kolonnenummer og tallverdien til cellen. Du kan anta at tabelldataene er lagt inn i variabelen hoydetabell allerede før ditt skript skal starte.
Du vet foreløpig ikke hvor mange rader/kolonner tabellen inneholder. Derfor kan du benytte en innbygget Matlab-funksjon, size, for å finne ut størrelsen på tabellen før du begynner søkingen.
size-funksjonen kan brukes på følgende måte:
  • r =size(<tabellnavn>, 1); lagrer antall rader i tabellen i r
  • k = size(<tabellnavn>, 2); lagrer antall kolonner i tabellen i k

 

  1. Lag et Matlab-skript som løser oppgaven.
    • Gjør gjerne antagelser der du føler det mangler i oppgaveteksten.
    • Dersom du ikke er komfortabel med bruken av size-funksjonen, anta heller at tabellen er 20 rader og 20 kolonner stor.
    • Bruk gjerne funksjonen num2str(<tall>) for å pynte på utskriften, men dette er ikke noe krav.

  2. Vis hvordan du vil utvide skriptet slik at det helt til slutt skriver ut: “Maks høyde var:” etterfulgt av verdien til den maksimale høyden, og deretter “Koordinatene med maks høyde:”etterfulgt av koordinatene for det eller de punktene som har denne høydeverdien.

    Hvis det er flere punkter som har den samme høyeste verdien, skal alle disse koordinatene skrives ut, men selve høyden skal bare skrives én gang.

  • No labels