Include Page |
---|
| ITGK - Matlab - Meny |
---|
| ITGK - Matlab - Meny |
---|
|
Kodeforståelsesoppgaver (total videotid: 52:09)
Hvilken verdi har x, y og z etter at det følgende scriptet har kjørt?
Code Block |
---|
language | none |
---|
title | oppgave_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 |
---|
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 |
|
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 |
Videoforklaring (9:02)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=l1_uPogV0GQ |
---|
|
Svar
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
...
9:01 | Hvordan if-setninger kan brukes feil. | Lett |
...
...
Hva er variablene x, y og z bundet til etter at følgende script er kjørt?
...
Videoforklaring (4:06)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=4DMfMrYdtRw |
---|
|
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. |
...
:05 | Hvordan behandle switch-setninger i Matlab | Lett |
...
...
Hva gjør denne funksjonen, hvis bat kan være desimaltall og rat kan være et ikke-negativt heltall?
...
...
function hat = oppgave_4(bat, rat)
hat = 1;
for i = 1:rat
hat = hat * bat;
end
end
Videoforklaring (9:54)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=CIyfWpdZpF4 |
---|
|
Svar
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
9:53 | Fremgangsmåte for å løse kodeforståelsesoppgaver som spør om hva kode betyr, og hvordan vi kan forstå for-løkker som gjentakelse av kode et visst antall ganger. | Middels |
...
...
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 |
Videoforklaring (6:11)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=9HQGVB3redY |
---|
|
Svar
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
6:10 | Hvordan iterasjonsvariabelen brukes i for-løkker i Matlab, og hvordan dens verdi kan brukes til å gi forskjellig oppførsel i forskjellige løkkeiterasjoner. | Lett |
...
...
...
Hva skrives ut hvis vi kjører det følgende scriptet?
...
...
for i = 1:3
i = i * 2;
disp(i);
end
8:31 | Hvordan Matlab håndterer variabeltilordninger til en teller-variabel inni en for-løkke, og grunner til at dette er en dårlig idé. | Middels |
Videoforklaring (8:32)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=IMPMTow5DCc |
---|
|
Svar
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
...
...
Hva skrives ut hvis vi kjører det følgende scriptet?
...
...
:36 | Hvordan Matlab behandler løkkeuttrykk som er matriser med flere dimensjoner. | Middels |
Kodeoppgaver (total videotid: 1:13:04)
Oppgave | Videotid | Beskrivelse | Vanskelighetsgrad |
---|
Videoforklaring (8:37)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=1rPaR3V-YkQ |
---|
|
Svar
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
|
...
...
...
Du ønsker å lage et Matlab-program som kan hilse deg velkommen når du starter Matlab. Du er svært nøye på at korrekt hilsen brukes til rett tid på dagen, og har laget følgende oversikt over hva du ønsker at Matlab-programmet ditt skal si.
Image Removed
Du vet at du kan avgjøre hvilken time på dagen det er ved hjelp av Matlab-uttrykket hour(datetime('now'))
, og hvilket minutt det er med Matlab-uttrykket minute(datetime('now'))
.
Lag et script som skriver ut en hilsen som passer nåværende klokkeslett når det kjøres.
Videoforklaring (12:45)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=7Cxe3-oduHg |
---|
|
Løsningsforslag
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
Code Block |
---|
|
h = hour(datetime('now'));
m = minute(datetime('now'));
if h < 4 || h >= 22
disp('God natt');
elseif h < 9
disp('God morgen');
elseif h < 14 || h == 14 && m < 30
disp('God formiddag');
elseif h < 19 || h == 19 && m < 30
disp('God ettermiddag');
else
disp('God kveld');
end |
...
| 12:45 | Bruk av if-setning til å variere oppførsel til script basert på klokkeslett, og hvordan man kan kjøre kode ved oppstart av Matlab. | Middels |
Oppgave 3.2.2: |
...
Lag en funksjon som kan konvertere fra et romersiffer til den tilsvarende tallverdien. Konverteringstabellen er oppgitt under. Avslutt med en feilmelding hvis et ugyldig romersiffer gis inn.
Image Removed
Videoforklaring (5:38)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=iA0q4hXxeBE |
---|
|
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Code Block |
---|
| function tall = fra_romersiffer(romersiffer)
switch romersiffer
case 'I'
tall = 1;
case 'V'
tall = 5;
case 'X'
tall = 10;
case 'L'
tall = 50;
case 'C'
tall = 100;
case 'D'
tall = 500;
case 'M'
tall = 1000;
otherwise
error('Ugyldig romersiffer');
end
end |
|
...
| 5:38 | Bruk av switch-setning til å lage en rekke med likhetssammenlikninger. | Lett |
...
...
...
...
Utvid scriptet til å spørre om brukeren ønsker å skrive inn egne referanseverdier, eller om de eksisterende skal brukes. Hvis brukeren ønsker å skrive inn egne verdier, skal scriptet først spørre om hvor mange verdier brukeren vil skrive inn. Deretter skal alle verdiene leses inn, og fortløpende konverteres til Fahrenheit og skrives til skjerm.
Utdelt kode
Expand |
---|
|
Code Block |
---|
| cels2fahr(-20)
cels2fahr(0)
cels2fahr(18)
cels2fahr(37)
cels2fahr(100) |
|
...
...
...
...
function retur = cels2fahr(celsius)
retur = 9/5*celsius + 32;
end
14:58 | Bruk av input-funksjonen til å lese inn tekst- og tallverdier fra bruker, bruk av if-setning til å variere oppførsel i script, og bruk av for-løkke til å kjøre kode et visst antall ganger. | Middels |
Videoforklaring (14:58)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=5ICOgIAozhw |
---|
|
Løsningsforslag
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
...
...
...
...
Lag en funksjon som som tar inn en vektor og en elementverdi, og som returnerer første posisjon hvor vektoren inneholder elementverdien. Hvis vektoren ikke innholder elementverdien, skal funksjonen returnere 0.
Videoforklaring (11:48)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=H4ml6AuJbWk |
---|
|
Løsningsforslag
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
| 11:48 | Bruk av for-løkke for å gå gjennom posisjonene i en vektor. | Lett |
...
...
...
...
I romerriket brukte man bokstavene M, D, C, L, X, V og I til å representere tall, som angitt i tabellen til høyre. En rekke med slike bokstaver representerte summen av bokstavverdiene – for eksempel ville strengen MLX vært tallet 1060. Hvis en bokstav med en lavere verdi kommer før en bokstav med høyere verdi, skal den laveste verdien i stedet trekkes fra den høyeste verdien – for eksempel er strengen IV tallet 4, strengen XC verdien 90, og strengen MCMXCIX verdien 1999.
Lag en funksjon som konverter fra et romertall til tallverdien det representerer. Du kan anta at konverteringsfunksjonen fra_romersiffer er tilgjengelig for å konvertere fra en enkelt romerbokstav til tilsvarende tallverdi.
Utdelt kode
Expand |
---|
|
Code Block |
---|
| function tall = fra_romersiffer(romersiffer)
switch romersiffer
case 'I'
tall = 1;
case 'V'
tall = 5;
case 'X'
tall = 10;
case 'L'
tall = 50;
case 'C'
tall = 100;
case 'D'
tall = 500;
case 'M'
tall = 1000;
otherwise
error('Ugyldig romersiffer');
end
end |
|
Videoforklaring (11:37)
Widget Connector |
---|
url | https://www.youtube.com/watch?v=TWmmYzsgH54 |
---|
|
Løsningsforslag
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
...
...
| 11:37 | Bruk av for-løkke til å gå gjennom posisjoner i en liste, og sammenlikne verdier på etterfølgende posisjoner. | Middels+ |
...
...
Skriv en funksjon trizero
som tar inn en tabell A
med like mange rader som kolonner og et flagg (logisk variabel) upper
. Hvis upper == true
skal alle elementene over hoveddiagonalen nullstilles og hvis upper == false
skal alle elementene under hoveddiagonalen nullstilles. Resten av elementene skal beholde sin opprinnelige verdi. Hele tabellen skal returneres etter nullstilling av de angitte elementer. Returner en tom tabell hvis antall rader ikke er lik antall kolonner i inngangstabellen A
. Se også figur 1.
Image Removed
Videoforklaring (16:18)
Del 1 (5:32) | Del 2 (10:46) |
---|
Widget Connector |
---|
url | https://www.youtube.com/watch?v=xU0AxvjYqKA |
---|
|
| Widget Connector |
---|
url | https://www.youtube.com/watch?v=FEDOAiwZO6o |
---|
|
|
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Code Block |
---|
| function retur = trizero(A, upper)
if size(A, 1) ~= size(A, 2)
retur = [];
return;
end
N = size(A, 1);
for i = 1:N-1
if upper
A(i, i+1:N) = 0;
else
A(i+1:N, i) = 0;
end
end
retur = A;
end |
|
Oppgave x.y.z: Tittel
Utdelt kode
Videoforklaring (mm:ss)
Løsningsforslag
...
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
Eksamensoppgave | 16:20 | Løsning av eksamensoppgave om for-løkker, if-setninger og matriser. | Vanskelig |
Alle oppgavene på en side
Oppgavevideoer uke 38 - alle oppgaver
...