...
Vi benytter en litt forenklet versjon av jordens fysiske lover: En fallskjermhopper faller (med konstant/gjennomsnittlig hastighet) 100 fot pr. sekund, de 10 første sekundene, og deretter med konstant topphastighet på 200 fot pr. sekund til skjermen må åpnes i 300 fots høyde (se figur 1). Hvis man mot normalt hopper ut under 3000 fot må skjermen utløses umiddelbart (etter 0 sekunder)
Image Modified
Medlemsdatabasen til NTNU-FSK ligger lagret på en fil members.txt
med følgende format:
...
Eksempel på kjøring (Endringen er markert med fet skrift):
Videoforklaring (
...
50:
...
37)
Del 1 (mm5:ss36) | Del 2 (mm6:ss38) | Del 3 (mm8:ss34) | Del 4 (mm:ss) | Del 5 (mm:ss) | Del 6 (mm:ss) |
---|
Widget Connector |
---|
url | https://www.youtube.com/watch?v=MqQV9YVEyCI |
---|
|
| Widget Connector |
---|
url | https://www.youtube.com/watch?v=O7Tpj-7ndpI |
---|
|
| Widget Connector |
---|
url | https://www.youtube.com/watch?v=qGhENw4UKrk |
---|
|
|
Oppgaveintroduksjon, og litt om lesing av oppgavetekst på eksamen. | Opprett struct fra bruker-innputt (oppgave 2a). | Lesing og konvertering av linjer i fil til struct-verdier (oppgave 2b, del 1). |
Del 4 (6:41) | Del 5 (9:39) | Del 6 (13:29) |
---|
Widget Connector |
---|
url | https://www.youtube.com/watch?v=nIdrrfd12go |
---|
|
| Widget Connector |
---|
url | https://www.youtube.com/watch?v=oHyB0gcTiSQ |
---|
|
| Widget Connector |
---|
url | https://www.youtube.com/watch?v=SsgtEzXIpbA |
---|
|
| | | | | |
Kode for å lage en struct-vektor gradvis i en while-løkke (oppgave 2b, del 2). | Kode for formattert utskrift av struct-verdier, og for-løkke for å gå gjennom alle element i en struct-vektor (oppgave 2c). | Kode for å skrive en struct-verdi som tekst til fil (oppgave 2d). |
Løsningsforslag
Expand |
---|
title | Hvis du har prøvd selv, trykk her for å se svaret... |
---|
|
Expand |
---|
| Code Block |
---|
| function retur = inputPerson()
retur.name = input('Name: ', 's');
retur.id = input('ID: ', 's');
retur.weight = input('Kg: ');
retur.size = input('Size: ');
end |
|
Expand |
---|
| Code Block |
---|
| function retur = readDbFile(filename)
% 1. Åpne filen
fd = fopen(filename, 'r');
retur = struct('name', {}, 'id', {}, 'weight', {}, 'size', {});
% 2. Bruk filen
linje = fgetl(fd);
while ischar(linje)
% Behandle linjen
felt = strsplit(linje, ';');
medlem.name = felt{1};
medlem.id = felt{2};
medlem.weight = str2double(felt{3});
medlem.size = str2double(felt{4});
retur(end + 1) = medlem;
linje = fgetl(fd);
end
% 3. Lukk filen
fclose(fd);
end |
|
Expand |
---|
| Code Block |
---|
| function printMemberList(db)
fprintf('%15s%9s VEKT kg. SKJERMSTØRRELSE\n', 'NAVN', 'ID-NR');
for i = 1:length(db)
p = db(i);
fprintf('%15s%9s%5d kg. %4d kvadratfot\n', p.name, p.id, p.weight, p.size);
end
end |
|
Expand |
---|
| Code Block |
---|
| function retur = addPerson(filename)
person = inputPerson();
db = readDbFile(filename);
db(end + 1) = person;
retur = db;
% 1. Åpne filen
fd = fopen(filename, 'a');
% 2. Bruk filen
fprintf(fd, '%s;%s;%d;%d\n', person.name, person.id, person.weight, person.size);
% 3. Lukk filen
fclose(fd);
end |
|
|