SimReal - Hvordan lage en kalkulator? |
Når vi nå har sett at aritmetiske uttrykk kan behandles enklere når uttrykket er skrevet
på postfix form (eller prefix form) i stedet for infix form, er neste spørsmål følgende: Hvordan kan vi omforme et aritmetisk uttrykk fra infix form til prefix form eller postfix form? En slik omforming er det nødvendig å la kalkulator-programmet utføre. Det ville være uhensiktsmessig å la brukeren selv uføre denne omformingen. Vi skal først se på en metode som kalles komplett parenterisering. Denne metoden er riktignok ikke velegnet for en datamaskin, den er mer velegnet ved bruk av papir og blyent, men den er likevel tatt med her for å illustrere nøvendig operator-flytting. Komplett parenteriseringsmetode med omforming fra infix til prefix form utføres på følgende måte: 0. Vi har uttrykket på infix form (eks: a+b*c). 1. Utfør en komplett parenterisering av uttrykket, dvs sett på et komplett sett av parentes-par for hver operator i uttrykket. Infix-uttrykket vil da være følgende: (a+(b*c)). En kontroll er nå følgende: I det komplett paranteriserte uttryket skal det være like mange parentes-par som det er operatorer i uttrykket, og det skal da selvfølgelig være like mange høyreparenteser og venstreparenteser som det er operatorer (her 2). 3. Flytt hver operator mot venstre, til plassen rett til høyre for tilhørende venstre-parentes. 4. Fjern alle parenteser. Uttrykket a+b*c er nå omformet til tilhørende prefix form +a*bc. Merk at vi i et postfix uttrykk (eller prefix uttrykk) ikke trenger bruk av parenteser. |