INF2270 Oppgaver uke 15 (9.-14.4.2008) Oppgave 1 Såkalt «run-length»-koding er en enkel komprimerinsmetode. Man angir bare en repetisjonsfaktor (0-9 i dette tilfellet) foran de tegn som skal gjentas; se eksemplet nedenfor. Oppgave 1a Skriv C-funksjonen void rlcopy (char *to, char *from) som kopierer en tekst fra `from´ til `to´ men som ekspanderer tegn med et én-sifret tall foran. Her er et eksempel på bruken: #include extern void rlcopy (char *to, char *from); char *data[] = { "", "Abc", "Hu2ra!", "Adj0x0x1ø", "11 milliard er 1190" }; int main (void) { char res[200]; int n = sizeof(data)/sizeof(char*), i; for (i = 0; i < n; ++i) { rlcopy(res, data[i]); printf("rlcopy(\"%s\") -> \"%s\"\n", data[i], res); } return 0; } Resultatet at dette er rlcopy("") -> "" rlcopy("Abc") -> "Abc" rlcopy("Hu2ra!") -> "Hurra!" rlcopy("Adj0x0x1ø") -> "Adjø" rlcopy("11 milliard er 1190") -> "1 milliard er 1000000000" Oppgave 1b Skriv funksjonen i x86-assemblerkode.