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
Videoforklaring (mm:ss)
|
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 |
---|
url | https://www.youtube.com/watch?v=CvrmicDssUc |
---|
|
Svar
Expand |
---|
title | Hvis 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 |
---|
|
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
Videoforklaring (mm:ss)
Svar
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
- Første if-setning er merkelig fordi uttrykket er konstant true. Antakeligvis skulle uttrykket på linjen over vært brukt som if-setning-uttrykk.
- 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.
| .- Antakeligvis skulle rekkefølgen på betingelsene vært reversert, slik at den strengeste kom først.
- 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
Videoforklaring (mm:ss)
Svar
Expand |
---|
title | Hvis 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
Videoforklaring (mm:ss)
Svar
Expand |
---|
title | Hvis 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
Videoforklaring (mm:ss)
Svar
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 3.1.6: Tittel
Oppgavetekst
Videoforklaring (mm:ss)
Svar
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
...
Oppgave 3.2.1: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 3.2.2: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 3.2.3: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 3.2.4: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 3.2.5: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
Oppgave 3.2.6: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
...