Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Kodeforståelsesoppgaver

Oppgave 3.1.1:

...

If-setninger

Hvilken verdi har x, y og z etter at det følgende scriptet har kjørt?Oppgavetekst

Code Block
languagenone
 

Videoforklaring (mm:ss)

titleoppgave_1.m
a = 2;
if a + 3 > 4
   x = 1;
end
if a >= 3
  y = 1;
elseif a >= 2
  y = 2;
elseif a >= 1
  y = 3;
end
if a ~= 2
  z = 1;
else
  z = 2;
end

Videoforklaring (5:47)

Widget Connector
urlhttps://www.youtube.com/watch?v=CvrmicDssUc
 

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
x =
     1
y =
     2
z =
     2
 

Oppgave 3.1.2:

...

Tvilsom bruk av if-setninger

Scriptet under inneholder tre if-setninger. Hva er merkelig med disse?

Code Block
titleoppgave_2.m
x = 2;
x == 3;
if true
 x = 4;
end
if x < 0
 y = 1;
elseif x < -1
 y = 2;
elseif x < -2
 y = 3;
else
 y = 4;
end
test = x >= 4;
if test == true
 z = 1;
elseif test == false
 z = 2;
end

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

.
Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
  1. Første if-setning er merkelig fordi uttrykket er konstant true. Antakeligvis skulle uttrykket på linjen over vært brukt som if-setning-uttrykk.
  2. Andre if-setning er merkelig fordi betingelsene som står etter begge elseif er dekket av betingelsen som står etter if. Siden den første betingelsen sjekkes først, vil koden etter elseif aldri kjøre.
  1. Antakeligvis skulle rekkefølgen på betingelsene vært reversert, slik at den strengeste kom først.
  2. Siste if-setning har en unødvendig sjekk på om en sannhetsverdi er true. Dette sjekkes uansett av Matlab. Betingelsen etter elseif dekker alle andre tilfeller, og elseif kunne vært byttet ut med else.
 

Oppgave 3.1.3:

...

 Switch-setninger

Hva er variablene x, y og z bundet til etter at følgende script er kjørt?

Code Block
a = 1;
switch a + 2
    case 1
        x = 1;
    case 1+1
        y = 1;
    case {3, 4, 5}
        z = 1;
    otherwise
        x = 1; y = 2; z = 3;
end

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
  x og y er ubundet, z er bundet til verdien 1.

Oppgave 3.1.4:

...

 For-løkker gjentar kodeutførelse

Hva gjør denne funksjonen, hvis bat kan være desimaltall og rat kan være et ikke-negativt heltall?

Code Block
function hat = oppgave_4(bat, rat)
    hat = 1;
    for i = 1:rat
        hat = hat * bat;
    end
end

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
  Den regner ut bat opphøyd i rat.

Oppgave 3.1.5:

...

 Iterasjonsvariabel i for-løkke

Hva skrives ut hvis vi kjører det følgende scriptet?

Code Block
for i = 1:3
  if i == 2
    disp('går');
  elseif i == 1
    disp('dette');
  else
    disp('bra');
  end
end

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
 

Oppgave 3.1.6: Tittel

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
 

...

Oppgave 3.2.1: Tittel

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...

 

Oppgave 3.2.2: Tittel

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...

 

Oppgave 3.2.3: Tittel

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...

 

Oppgave 3.2.4: Tittel

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...

 

Oppgave 3.2.5: Tittel

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...

 

Oppgave 3.2.6: Tittel

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...

 

...