Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Denne oppgaven kommer til å ta i bruk en stack og utføre matematiske operasjoner. Du kan enten begynne fra scratch eller ta i bruk deler av løsningene til følgende oppgaver: Tilstand og oppførsel - Calculator-oppgaveTilstand og oppførsel - Stack for tilfeldige String-objekter.

Her er en forklaring av hvordan en RPN-kalkulator fungerer:

...

  • void push(double) - legg argumentet på toppen av stacken.
  • double pop() - returner verdien på toppen av stacken. Verdien skal også fjernes fra stacken. Dersom stacken er tom, så skal Double.NaN returneres.
  • double peek(int) - returner verdien i stacken som står på plassen gitt i argumentet, telt fra toppen. Det vil si, peek(0) skal returnere verdien på toppen av stacken, peek(1) skal returnere verdien nest øverst i stacken osv. Verdien skal ikke fjernes av stacken. Dersom det er for få elementer på stacken, så skal Double.NaN returneres.
  • int getSize() - returner antallet elementer i stacken.
  • void performOperation(char) - utfør den angitte operasjonen på de to øverste verdiene i stacken. De to verdiene skal fjernes fra stacken og resultatet skal legges øverst. Bruk eksisterende metoder for å utføre dette der det er mulig.
    Metoden må støtte '+' (pluss), '-' (minus), '*' (multiplikasjon) og '/' (divisjon), men kan også støtte andre operatorer, f.eks. '~' (swap) for å bytte de to øverste operandene, 'p' eller 'π' (pi) for å legge pi på stacken (bruker ingen operander), '|' (absolutt-verdi, bruker én operand). Prøv å håndtere manglende operander på en måte som gir mening for operasjonen.

...

Skriv Java-kode for RPNCalc-klassen med oppførsel som er beskrevet over.

Lag et et hovedprogram, som en main-metode, hvor du leser inn sekvenser av operander og operatorer fra tastaturet, og kaller henholdsvis push og performOperation-metodene på et RPNCalc-objekt og skriver ut stacken. Test RPNCalc-klassen og sjekk at oppførselen stemmer med tilstandsdiagrammet.

JExercise-testkode Testkode for denne oppgaven finner du herstateandbehavior/RPNCalcTest.java.

Include Page
Bunntekst for JExercise- oppgaver
Bunntekst for JExercise- oppgaver