Oppgavesett 6 - Syntaxsjekking og mystikk
Oppgavene blir tema på øvingen fredag 2. mars. Innleveringen skal bestå av en pdf-fil med korte kommentarer og dokumentasjon (utskrifter etc.). Legg også ved godt dokumenterte java filer. Alt pakkes i en zipfil, med navn assignment06-*.zip der * er etternavnene til gruppemedlemmene. Javafilene skal tilhøre en pakke med navn package assignment06.
Fristen for innlevering er tirsdag 6.mars 09:00.
Oppgave 1
En viktig syntaxregel for Java programmer er at klammer og parenteser må være komplette, dvs. at for et starttegn, f.eks. "{", må det også finnes et etterfølgende slutttegn, i dette eksempelet "}". Vi kan da si at javaprogrammet er velformet med hensyn på parenteser og klammer.
A
Angi med pseudokode hvordan vi kan lage et program som sjekker om et javaprogram, gitt som en streng, er velformet eller ikke.
B
Implementer en syntaxsjekker som gjør det som er beskrevet i forrige oppgave, med signaturen skal være public boolean javaSyntax (String program). Følgende tegnpar skal sjekkes: "()", "{}", "[]", "<>". Sjekk også om kommentarer av type "/* Kommentarer... */" er velformede. Dokumenter at den virker ved å kjøre metoden på seg selv :-), og også at den virker på et program med syntaxfeil.
Oppgave 2
Metoden line(double x1, double y1, double x2, double y2) tegner en linje på skjermen, fra koordinaten (x1, y1) til (x2, y2).
A
Forklar hva metoden gjør, og tegn resultet av følgende kall: mystery(100, 1100, 100, 200, 10, 1, 3). Ved repeterende mønster holder det med å antyde hva som skjer, og ikke tegne alle linjene.
*B
Verifiser svaret på forrige oppgave ved å implementere metoden, kjøre eksempelet og legge ved resultatet!