Versions Compared

Key

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

...

Expand
titleHvis du har prøvd selv, trykk her for å se svaret...
Expand
titleOppgave 2a)
Code Block
titleinputPerson.m
 function retur = inputPerson()
    retur.name = input('Name: ', 's');
    retur.id = input('ID: ', 's');
    retur.weight = input('Kg: ');
    retur.size = input('Size: ');
end 
Expand
titleOppgave 2b)
Code Block
titlereadDbFile.m
 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
titleOppgave 2c)
Code Block
titleprintMemberList.m
 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
titleOppgave 2d)
Code Block
titleaddPerson.m
 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