SimReal - Hvordan lage en kalkulator? parAbel Logo

[Hovedmeny] [Galleri] [SMin] [SMax] [SWin] [Eng] [Hjelp] [Forrige] [Neste]
Utvikling av en kalkulator er ressurskrevende,
vanligvis regnes en utviklingstid på flere år med en relativt stor programmeringsgruppe.
Vi skal derfor på de følgende sidene på ingen måte forsøke å redegjøre for alle detaljer i utvikling av en kalkulator.
I stedet skal vi forsøke å sentrere rundt ett av de viktigste punktene knyttet til en kalkulator-utvikling.

På denne siden vises SimReal-kalkulatoren hvor kalkulatoren beregner det aritmetiske uttrykket
2 + 3 * 4 = 14

Uttrykket beregnes ved at brukeren enten skriver det aritmetiske uttrykket inn via kalkulator-tastaturet eller skriver uttrykket direkte inn i kalkulator-displayet for deretter å trykke 'Return' slik at beregningen (her med svar = 14) utføres.

Det sentrale problemet her er følgende:
Brukeren må stå fritt i sin inntasting av et aritmetisk uttrykk, hvilket betyr at brukeren selv kan velge blant tall, bokstaver, funksjoner, operatorer og spesialtegn.
Det aritmetiske uttrykket må dermed håndteres som en tekst-streng.

Etter innlesing av det aritmetiske uttrykket som en tekst-streng, må tekststrengen analyseres for deretter å beregnes.

Hvis tekst-strengen '2+3*4' leses fra venstre påtreffes først tallet 2, deretter en pluss-operator, deretter tallet 3.
Denne addisjonen av 2 + 3 må ikke utføres før vi har undersøkt om det lenger ut i tekststrengen finnes operatorer med høyere prioritiet enn pluss-operatoren.
I vårt tilfelle etterfølges 3-tallet av operatoren multiplikasjon (*).
Denne har høyere prioritet enn pluss (+) og må derfor utføres først.
I vårt regne-eksempel må 3 multipliseres med 4 før addisjonen med 2 utføres.
Denne type problematikk er gjennomgående ved uvikling av en kalkulator.
På de neste sidene vises hvordan slike problemer løses.

Her finner du en simulering av den såkalte Jernbane-algoritmen som benyttes for håndering av aritmetiske uttrykk ved omforming fra såkalt infix til postfix form.
Når simuleringen starter, velger du først punkt nr 3 (Simulering) i menyen.
Deretter skriver du inn et aritmetisk uttrykk på infix form.
Som et godt eksempel kan du skrive inn:

a/b^c+d*e-a*c

Trykk deretter 'Return' (Enter/Linjeskift).
Infix-uttrykket blir da plassert i infix-posisjonen i simuleringen.
For hvert nye trykk på 'Return', vil nå simuleringen vise steg for steg hvordan omformingen foregår fra infix til postfix form.