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: 33:13)

OppgaveVideotidBeskrivelseVanskelighetsgrad
Oppgave 4.1.1: Fprintf datatyper14:10Grunnleggende fprintf-bruk: prosent-tegn for å skrive ut forskjellige datatyper, og backslash for å skrive ut spesielle bokstaver.Lett
Oppgave 4.1.2: Fprintf utskriftsformattering13:22Hvordan ekstra tegn mellom prosent-tegnet og datatypebokstaven i fprintf-formatstrenger bestemmer hvordan utskriften til skjerm blir formattertMiddels
Oppgave 4.1.3: Fprintf med vektorer5:39Hvordan fprintf behandler vektorer som verdiargument.Middels

Kodeoppgaver (total videotid: 54:54)

OppgaveVideotidBeskrivelseVanskelighetstgrad
Oppgave 4.2.1: Penere Fahrenheit-utskrift7:23Bruk av fprintf for å få pent formattert utskrift.Lett

Kodeforståelsesoppgaver

Oppgave 4.1.1: Fprintf datatyper

Hva skrives ut hvis vi kjører dette scriptet?

Code Block
languagenone
titleoppgave_1.m
fprintf('Heltallet er %d\n', 1);
fprintf('Desimaltallet er %f\n', 2.5);
fprintf('Bokstaven er %c\n', 'a');
fprintf('Strengen er %s\n', 'hei');
fprintf('%d\n', 'a');
fprintf('%c\n', 97);
fprintf('\nHan sa:\n\t''Vi må gi 100 %%!''\n');

Videoforklaring (mm:ss)

 

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
Heltallet er 1
Desimaltallet er 2.500000
Bokstaven er a
Strengen er hei
97
a
Han sa:
	'Vi må gi 100 %!'

Oppgave 4.1.2: Fprintf utskriftsformattering

Hva skrives ut hvis vi kjører dette scriptet?

Code Block
titleoppgave_2
fprintf('%3d,', 1);
fprintf('%03d,', 1);
fprintf('%-3d,', 1);
fprintf('%-03d!\n', 1);
fprintf('%.2f,', 2.524);
fprintf('%6.2f,', 2.524);
fprintf('%06.2f,', 2.524);
fprintf('%-6.2f,', 2.524);
fprintf('%-06.2f!\n', 2.524);
fprintf('%5s,', 'hei');
fprintf('%05s,', 'hei');
fprintf('%-5s,', 'hei');
fprintf('%-05s!\n', 'hei');

Videoforklaring (mm:ss)

Svar

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Code Block
  1,001,1  ,1  !
2.52,  2.52,002.52,2.52  ,2.52  !
  hei,00hei,hei  ,hei00!

Oppgave 4.1.3: Tittel

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

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

Oppgave 4.1.4: Tittel

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

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

Oppgave 4.1.5: Tittel

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

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

Oppgave 4.1.6: Tittel

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

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

Oppgave x.y.z: Tittel

Oppgavetekst

Code Block
 

Videoforklaring (mm:ss)

Svar

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

 

Kodeoppgaver

Oppgave 4.2.1: Penere Fahrenheit-utskrift

Fahrenheit-oversikten forteller oss ikke hvilken Celsius verdi de utskrevne Fahrenheit-verdiene tilsvarer. Utvid scriptet til å skrive ut en mer informativ linje som forklarer hvilken Celsius-verdi Fahrenheit-verdien tilsvarer.

Utdelt kode

fahrenheit.m

Videoforklaring (mm:ss)

Løsningsforslag

...

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
Code Block
titleskriv_ut_fahr
function skriv_ut_fahr(celsius)
    fahr = cels2fahr(celsius);
    fprintf('Celsiusverdi %.2f tilsvarer Fahrenheitverdi %.2f\n', celsius, fahr);
end

 

...

...

Du stoler ikke på at Matlabs innebygde funksjon sqrt er effektiv nok, og har funnet ut at du vil lage din egen. Du har innsett at siden , blir det å finne kvadratroten til et tall det samme som å finne nullpunktet til funksjonen  . Du har lært en metode for å finne nullpunkt, kalt Newtons metode, som fungerer slik:

  1.  Velg et første estimat for nullpunkt, , for funksjonen .

  2. Regn ut videre estimat for nullpunkt med formelen

(I vårt tilfelle er ).

Lag en funksjon som estimerer roten til et tall. Bruk 20 iterasjoner av Newtons metode, og . Sammenlign estimatene for kvadratroten av 4, 97 og 1e18 med estimatene fra sqrt.

Videoforklaring (mm:ss)

Løsningsforslag

...

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

...

titlekvadratrot.m

...

Kvadratrotestimat9:02Bruk av for-løkke til å beregne kvadratrot numerisk, vha Newtons metode.Middels
Oppgave 4.2.3:

...

...

Du har nettopp laget en funksjon som estimerer kvadratroten til et tall, ved hjelp av 20 iterasjoner av Newtons metode. Du ønsker nå å vite hvordan utviklingen av estimatene er i hver iterasjon. Utvid funksjonen til å produsere utskrift som det følgende i hver iterasjon:

Utdelt kode

kvadratrot.m

Videoforklaring (mm:ss)

Løsningsforslag

...

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

...

titlekvadratrot.m

...

7:25Bruk av fprintf for å få formatert utskrift. Bygger på funksjonen skrevet i video 4.2.2.Lettt
Oppgave 4.2.4:

...

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...
Trygg innlesing av tall fra bruker12:14Bruk av while-løkker for kjøring av kode så lenge en betingelse er sann, samt bruk av fprintf for å skrive informative feilmeldinger. Ulemper med å bruke funksjonen input med bare én parameter, og funksjonen str2num, diskuteres også.Middels

...

...

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...
Fahrenheit-script med uvisst antall referanseverdier10:25Bruk av while-løkker for å gjøre innlesing av referanseverdier i Fahrenheit-scriptet mer fleksibelt. Også bruk og utvidelse av funksjon fra oppgave 4.2.4.Middels

...

...

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

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

 

Oppgave x.y.z: Tittel

 

Utdelt kode

Videoforklaring (mm:ss)

Løsningsforslag

...

titleHvis du har prøvd selv, trykk her for å se svaret...
Sikrere kvadratrotestimat med feiltoleranse8:25Bruk av while-løkker til å gjøre en beregning helt til svaret er under en gitt feilgrense. Generell teknikk for å kjøre én iterasjon av while-løkken først.Middels

Alle oppgavene på en side

 Oppgavevideoer uke 39 - alle oppgaver

...