Miniräknare (rpn)
Gör en webbsida med en miniräknare som jobbar med omvänd polsk notation. Detta sätt att evaluera uttryck tycker jag är överlägset det traditionella sättet (HP:s räknedosor använder ofta detta sätt). Det räcker att er räknare klarar de fyra räknesätten och att nollställa räknaren, dvs tömma stacken (+,-,*,/,c)
ex.
Uttrycket (4+5)*(6-7) slår man in på följande sätt 4 ¶ 5 ¶ + ¶ 6 ¶ 7 ¶ - ¶ * ¶ Där ¶ betyder "ENTER",
Stacken kommer att se ut som följande under inmatningen.
Stackens utseende.
7 5 6 6 -1 4 4 9 9 9 9 -9
Syfte
- förstå, skapa och kunna använda vanliga datastrukturer såsom fält, stack
- kunna införa och använda array i datastrukturer
- kunna analysera programmeringsuppgifter
- lära sig hantera $_SESSION
Uppgift:
1. Gör en stack enligt nedan
Ni skall göra en egen stack. Stacken skall ha följande funktioner.
Pop() // returnerar det översta och tar samtidigt bort det Top() // returnerar det översta Push($tal) // lägger in tal överst i stacken IsEmpty() // returnerar true om stacken är tom Size() // returnerar stoleken på stacken PrintStack() // Skriver ut en stack, brukar inte finnas men ni kommer att behöva den.
2. Använd er stack för att göra en rpm-miniräknare, ni får inte ändra $_SESSION direkt utan endast via din stack.
Tips!
- Spara er stack i en $_SESSION variabel tex. $_SESSION['stack'][]
- Ni måste starta en session med ett namn.
<?php session_name('ert_login'); session_start();
- Gör först alla funktioner ovan (alla stack-funktioner) och testa att det fungerar som de ska.
- Som vanligt kan man spara en hel del tid genom att kolla vilka färdiga funktioner som finns i php (php.net)
- Gör sedan miniräknaren med hjälp av de funktioner ni har gjort.
Ett körbart program dos, linux eller web för att bättre förstå hur din räknare skall funka.
Länkar
- En sida Reverse Polish Notation med lite mer info.
- Wiki om RPM