Versions Compared

Key

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

rpncalcRPNCalc-eksemplet er et kode-eksempel i fire deler, som illustrerer vesentlige teknikker i prosedyreorientert programmering.

Dette kode-eksemplet handler om en såkalt RPN-kalkulator. RPN står for Reverse Polish Notation (se http://en.wikipedia.org/wiki/Reverse_Polish_notation) og brukes om kalkulatorer der operander (verdier) angis først og så operatoren (operasjoner), i motsetning til den vanlige infix-notasjonen med operatorer i mellom operandene. For å regne ut 1 + 2 så angis altså 1 og 2 først og så +, som gir resultatet 3. For å bygge videre på resultatet, angir en nye operander og operatorer, f.eks. regnes (1 + 2) * 3 ut ved å angi sekvensen 1 2 + 3 *. Implementasjonen er svært enkelt, en legger bare operandene på en stack stakk ettersom de angis, og operatorene fjerner og bruker disse og legger resultatet tilbake.

...

  1. rpncalc1.py illustrerer enkle kontrollstrukturer og bruk av variabler for å referere til enkle verdier og datastrukturer.
  2. rpncalc2.py innfører funksjoner, for å gjøre koden ryddigere.
  3. rpncalc3.py utforsker alternative funksjoner som utnytter spesielle Python-teknikker, samt forbereder oppdeling av kalkulatoren i to deler.
  4. rpncalc4rpncalc4core.py og rpncalc4ui.py viser hvordan programmer kan deles i flere moduler, ved å dele kalkulatoren i én som håndterer stack-logikken og operasjonene og én del som håndterer kommunikasjonen med brukeren.