Versions Compared

Key

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

...

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

Expand
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

For å få scriptet til å kjøre ved oppstart av Matlab, plasser scriptet i den mappen som Matlab har oppe (i vinduet til venstre i programmet) når Matlab starter. Scriptet må hete startup.m for at det skal fungere. 

Oppgave 3.2.2: Konverter fra romersiffer

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.


Videoforklaring (

...

5:

...

38)

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

Løsningsforslag

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

Oppgave 3.2.3: Skreddersydd Fahrenheit-oversikt

...

Utdelt kode

fahrenheit.m

cels2fahr.m

Videoforklaring (

...

14:

...

58)

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

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titlefahrenheit.m
svar = input('Ønsker du å skrive inn egne Celsius-verdier? (ja/nei) ', 's');
if strcmp(svar, 'ja')
    antall = input('Hvor mange verdier? ');
    for i = 1:antall
        celsius = input('Skriv inn Celsius-verdi: ');
        skriv_ut_fahr(celsius);
    end
else
    skriv_ut_fahr(-20);
    skriv_ut_fahr(0);
    skriv_ut_fahr(18);
    skriv_ut_fahr(37);
    skriv_ut_fahr(100);
end
 

Oppgave 3.2.4: Finn elementposisjon i vektor

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
 

Oppgave 3.2.5: Konverter fra romertall

...

Utdelt kode

fra_romersiffer.m

Videoforklaring (

...

11:

...

37)

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

Løsningsforslag

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
titlefra_romertall.m
function retur = fra_romertall(romertall)
    retur = 0;
    for i = 1:length(romertall)
        verdi = fra_romersiffer(romertall(i));
        if i < length(romertall) && verdi < fra_romersiffer(romertall(i+1))
            retur = retur - verdi;
        else
            retur = retur + verdi;
        end
    end
end
 

Oppgave 3.2.6: Eksamensoppgave 

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.

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

...