Ukeoppgaver IN2030 uke 35 (29.8-2.9.2022) Oppgave 1 Alle vil trenge å kjøre referanseinterpreten i løpet av kurset. Gjør derfor følgende: 1-1. Last ned referanseinterpreten asp.jar fra https://www.uio.no/studier/emner/matnat/ifi/IN2030/h22/nedlasting/asp.jar 1-2. Prøv å kjøre den ved å gi kommandoen $ java -jar asp.jar Da skal svaret bli This is the IN2030 Asp interpreter (2022-08-23) Usage: java -jar asp.jar [-log{E|P|S|Y}] [-test{expr|parser|scanner}] file 1-3. Skriv inne dette lille Asp-programmet på en fil som heter mini.asp: # En hyggelig hilsen navn='Dag' print ('Hei,',navn) (men bytt gjerne ut Dag med ditt eget navn). Kjør så programmet med $ java -jar asp.jar mini.asp og resultatet skal bli: This is the IN2030 Asp interpreter (2022-08-23) Hei, Dag Oppgave 2 (til de som bruker egen maskin) Les skrivet på semestersiden om hvordan man skal installere programmet Ant på datamaskinen sin. Gjør det. Oppgave 3 Nå skal dere være i stand til kompilere deres egen versjon av Asp-interpreten. 3-1. Opprett en arbeidsmappe og last ned basiskoden der; den ligger i https://www.uio.no/studier/emner/matnat/ifi/IN2030/h22/nedlasting/in2030-oblig-2022.zip 3-2. Pakk ut ZIP-filen: $ unzip in2030-oblig-2022.zip 3-3. I filen no/uio/ifi/asp/main/Main.java i linje 23-24 finner du System.out.println("This is the IN2030 Asp interpreter (" + version + ")"); Legg til en linje som skriver ut «utviklet av NN og MM» eller noe tilsvarende etter eget ønske. 3-4. Kompiler interpreten deres ved å utføre kommandoen $ ant i mappen der prosjektet ligger (og der det ligger en fil build.xml). 3-5. Etterpå kan dere kjøre den nye verjonen med $ java -jar asp.jar og dere skal få med den nye utskriften dere la til. NB! Referanseinterpreten heter også asp.jar. Pass på at de to ligger i hver sin mappe, eller skift navn på referanseinterpreten. Oppgave 4 Hva gjør dette Asp-programmet? Prøv først å finne det ut bare ved å lese koden; prøv så å kjøre det med referanseinterpreten. i = 0 p = 1 n = 10 while i <= n: print(2, "^", i, "=", p) i = i+1 p = 2*p Oppgave 5 om syntaks Alle disse sju små programmene unntatt ett inneholder en syntaksfeil. Bruk jernbanediagrammene til å finne ut hvilket som er riktig og hva som er galt med de andre. 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") f) n = 0 def f (v): global n n = n + v f(1); f(2); f(3) print("Svaret", 'er', n) g) for i in range(0,10): j = i+1; print (j*j);