Ukeoppgave uken 29. august til 3. september 2007 Oppgave 1 --------- Her er det fem små RusC-programmer. Hvilke er korrekte i henhold til grammatikken? 1.a int x; func main () { int x; x = 1+2+3+4+5; putint(x); } 1.b func f (int a, b) { return(a+b) } func main () { putinf(f(3,4)); exit(2); } 1.c func fib (int n) { int x1, x2, x3; x1 = 1; x2 = 1; while (n > 1) { x3 = x1+x2; x1 = x2; x2 = x3; n = n - 1; } return x2; } func main () { int n, res; n = getint(); res = fib(n); putint(res); } 1.d func lowercase (int c) { if (c <= 'Z') c = c+' '; return c; } func uppercase (int c) { if (c >= 'a') c = c-' '; return c; } func main () { int c, cl, cu; c = getchar(); cl = lowercase(c); cu = uppercase(c); putchar(cl); putchar(cu); } 1.e func abs (int x) { if (x < 0) { return -x; } return x; } func main () { int v; v = getint(); v = abs(v); putint(v); } Oppgave 2 --------- Skriv et RusC-program som leser ti tall og skriver ut det største. Oppgave 3 --------- Her er en Rasko-fil; hvilke instruksjoner inneholder det? Hva gjør det? #! /store/bin/rask 211000000000002 411110000000011 1600000000009994 211000000000010 1600000000009993 211000000000001 1600000000009990 Oppgave 4 --------- Skriv programmet i forrige oppgave som Raskas-kode. Oppgave 5 --------- Skriv Raskas-instruksjoner som beregner følgende uttrykk (med svaret i R1): 5.a R4 + 1 5.b 2 * R6 5.c - R22 5.d (100*R24 + R25)*100 + R26