Ukeoppgaver IN2030 uke 34 (22.8-25.8.2023) * Oppdatert 22.8.23 * 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/h23/nedlasting/ref-asp.jar 1-2. Prøv å kjøre den ved å gi kommandoen $ java -jar ref-asp.jar Da skal svaret bli This is the IN2030 Asp interpreter (2023-08-21) Usage: java -jar ref-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 ref-asp.jar mini.asp og resultatet skal bli: This is the IN2030 Asp interpreter (2023-08-21) 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/h23/nedlasting/in2030-oblig-2023.zip 3-2. Pakk ut ZIP-filen: $ unzip in2030-oblig-2023.zip 3-3. I filen no/uio/ifi/asp/main/Main.java i linje 23 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. Oppgave 4 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);