Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

I romerriket brukte man bokstavene M, D, C, L, X, V og I til å representere tall, som angitt i tabellen under. En rekke med slike bokstaver representerte summen av bokstavverdiene – for eksempel ville strengen MLX vært tallet 1060. Hvis en bokstav med en lavere verdi kommer før en bokstav med høyere verdi, skal den laveste verdien i stedet trekkes fra den høyeste verdien – for eksempel er strengen IV tallet 4, strengen XC verdien 90, og strengen MCMXCIX verdien 1999.

Lag en funksjon som konverter fra et romertall til tallverdien det representerer. Du kan anta at konverteringsfunksjonen fra_romersiffer er tilgjengelig for å konvertere fra en enkelt romerbokstav til tilsvarende tallverdi.

Utdelt kode

Expand
titlefra_romersiffer.m
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 

 

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