For Emacs: -*- coding: utf-8 -*- INF2100 Øvelsesoppgaver uke 35 2017 Oppgave 1 om Asp Hva gjør dette programmet? Prøv først å finne det ut bare ved å lese koden; prøv så å kompilere det med ~inf2100/asp og kjøre det. i = 0 p = 1 n = 10 while i <= n: print(2, "^", i, "=", p) i = i+1 p = 2*p Oppgave 2 om Asp Og hva gjør dette programmet? def w (v, n): vs = str(v) if len(vs) < n: return " " + w(v,n-1) else: return vs i = 0 p = 1 n = 10 while i <= n: print("2^"+w(i,2), "=", w(p,4)) i = i+1 p = 2*p Oppgave 3 om Asp Her er et Java-program som regner ut et Fibonacci-tall på to ulike måter. Oversett programmet til Asp og få det til å kjøre. class Fibonacci { final static int n = 20; static int fib1(int x) { int f1 = 0, f2 = 1; for (int i = 0; i < x; i++) { int f3 = f1+f2; f1 = f2; f2 = f3; } return f1; } static int fib2(int x) { if (x <= 2) { return 1; } else { return fib2(x-2) + fib2(x-1); } } public static void main(String arg[]) { System.out.println("fib1(" + n + ") = " + fib1(n)); System.out.println("fib2(" + n + ") = " + fib2(n)); } } Oppgave 4 om syntaks Alle disse fem små programmene inneholder en syntaksfeil. Bruk jernbanediagrammene til å finne ut hva som er galt. a) a = 4 b = 2 ** a print("Svaret er", b) b) a = "x" a_ = a + "-" _a = "-" + a print("\"a\"=", a) print("\"a_\"=", a_) print("\"_a\"=", _a) c) x = 9 y = -1 if x = y+1: x = x+1 d) v = input("Skriv et tall: ") if v < 0: print(v, "er negativt.") else: if v == 0: print(v, "er null.") else: print(v, "er positivt.") e) tab = [ 001, 010, 100 ] if tab[0] <= tab[1] <= tab[2]: print("Sortert") else: print("Ikke sortert")