...
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Nei, koden er vektorisert og produserer hele resultatlisten på en gang. Preallokering er bare nødvendig hvis vi produserer ett og ett element av gangen i en selvskrevet løkke. |
Kodeoppgaver
Oppgave 5.2.1:
...
Utdelt kode
...
Samlet Fahrenheitoversikt
Du har tidligere laget et script som konverterer Celsius-verdier en bruker skriver inn fortløpende til Fahrenheit. For at utskriften fra scriptet skal bli mer oversiktlig, ønsker du å samle all utskriften i stedet for at den kommer fortløpende.
Endre scriptet slik at utskriften kommer først etter at brukeren har skrevet inn alle Celsius-verdiene. Konverteringene skal også skrives ut i rekkefølge etter stigende Celsius-verdi.
Utdelt kode
Expand |
---|
|
Code Block |
---|
| svar = input('Ønsker du å skrive inn egne Celsius-verdier? (ja/nei) ', 's');
if strcmp(svar, 'ja')
celsius = les_inn_tall('Skriv inn Celsius-verdi: ');
while ~isempty(celsius)
skriv_ut_fahr(celsius);
celsius = les_inn_tall('Skriv inn Celsius-verdi: ');
end
else
skriv_ut_fahr(-20);
skriv_ut_fahr(0);
skriv_ut_fahr(18);
skriv_ut_fahr(37);
skriv_ut_fahr(100);
end |
|
Expand |
---|
|
Code Block |
---|
| function retur = les_inn_tall(melding)
tallstr = input(melding, 's');
tall = str2double(tallstr);
er_ugyldig = isnan(tall);
while er_ugyldig && ~isempty(tallstr)
fprintf('Teksten %s kan ikke tolkes som et tall\n', tallstr);
tallstr = input(melding, 's');
tall = str2double(tallstr);
er_ugyldig = isnan(tall);
end
if isempty(tallstr)
retur = [];
else
retur = tall;
end
end |
|
Expand |
---|
|
Code Block |
---|
| function skriv_ut_fahr(celsius)
fahr = cels2fahr(celsius);
fprintf('Celsiusverdi %.2f tilsvarer Fahrenheitverdi %.2f\n', celsius, fahr);
end |
|
Expand |
---|
|
Code Block |
---|
| function retur = cels2fahr(celsius)
retur = 9/5*celsius + 32;
end |
|
Videoforklaring (mm:ss)
Del 1 (mm:ss) | Del 2 (mm:ss) |
---|
| |
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Code Block |
---|
| svar = input('Ønsker du å skrive inn egne Celsius-verdier? (ja/nei) ', 's');
if strcmp(svar, 'ja')
celsius = les_inn_tall('Skriv inn Celsius-verdi: ');
les_inn_flere = ~isempty(celsius);
while les_inn_flere
siste_verdi = les_inn_tall('Skriv inn Celsius-verdi: ');
les_inn_flere = ~isempty(siste_verdi);
celsius = [celsius, siste_verdi];
end
celsius = sort(celsius);
skriv_ut_fahr(celsius);
else
skriv_ut_fahr([-20, 0, 18, 37, 100]);
end | |
Oppgave 5.2.2: Tittel
Utdelt kode
...