Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Include Page
ITGK - Matlab - Meny
ITGK - Matlab - Meny

Kodeforståelsesoppgaver (total videotid: 52:09)

OppgaveVideotidBeskrivelseVanskelighetsgrad
Oppgave 3.1.1: If-setninger

...

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

...

...

languagenone
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

...

titleHvis du har prøvd selv, trykk her for å se svaret...
5:45Måten Matlab behandler if-setningerLett

...

...

...

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

Videoforklaring (9:02)

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

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. Antakeligvis skulle rekkefølgen på betingelsene vært reversert, slik at den strengeste kom først.
  3. 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.
9:01Hvordan if-setninger kan brukes feil.Lett
Oppgave 3.1.3:

...

...

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

...

...

4

...

Videoforklaring (4:06)

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

Svar

...

titleHvis du har prøvd selv, trykk her for å se svaret...
:05Hvordan behandle switch-setninger i MatlabLett

...

...

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

Videoforklaring (9:54)

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

Svar

...

titleHvis du har prøvd selv, trykk her for å se svaret...
9:53Fremgangsmå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
urlhttps://www.youtube.com/watch?v=9HQGVB3redY

Svar

...

titleHvis du har prøvd selv, trykk her for å se svaret...
6:10Hvordan 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?

Code Block
for i = 1:3
  i = i * 2;
  disp(i);
end

Videoforklaring (8:32)

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

Svar

...

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

...

8:31Hvordan Matlab håndterer variabeltilordninger til en teller-variabel inni en for-løkke, og grunner til at dette er en dårlig idé.Middels
Oppgave 3.1.7:

...

...

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

...

...

8:

...

36Hvordan Matlab behandler løkkeuttrykk som er matriser med flere dimensjoner.Middels

 

Kodeoppgaver (total videotid: 1:13:04)

OppgaveVideotidBeskrivelseVanskelighetsgrad

...

Widget Connector
urlhttps://www.youtube.com/watch?v=1rPaR3V-YkQ

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
     6
    15
    24

...

...

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
urlhttps://www.youtube.com/watch?v=7Cxe3-oduHg

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titlestartup.m
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:45Bruk 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
urlhttps://www.youtube.com/watch?v=iA0q4hXxeBE

Løsningsforslag

...

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

...

titlefra_romersiffer.m
 5:38 Bruk av switch-setning til å lage en rekke med likhetssammenlikninger.Lett

...

...

...

...

 

...

Utdelt kode

fahrenheit.m

cels2fahr.m

...

14:

...

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

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...
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

...

titlefahrenheit.m

...

...

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
urlhttps://www.youtube.com/watch?v=H4ml6AuJbWk

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titlefinn_verdi.m
function retur = finn_verdi(vektor, verdi)
    for i = 1:length(vektor)
        if vektor(i) == verdi
            retur = i;
            return;
        end
    end
    retur = 0;
end

...

 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

fra_romersiffer.m

Videoforklaring (11:37)

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

Løsningsforslag

...

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

...

titlefra_romertall.m
 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 (mm:ss)

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titletrizero.m
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

...

titleHvis du har prøvd selv, trykk her for å se svaret...
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

...