Differences

This shows you the differences between two versions of the page.

Link to this comparison view

stack_rpn [2011-03-18 13:38]
Joakim Forsgren
stack_rpn [2017-09-01 14:54]
Line 1: Line 1:
-===== Uppgift Miniräknare ===== 
-Gör en webbsida 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 
-  ​ 
-Krav:\\ 
-1. Ni skall göra en egen stack, det är med hjälp av denna stack som ni skall lösa uppgiften. Stacken skall ha följande funktioner. 
-<code php> 
-Pop()        // tar bort det översta 
-Top()        // returnerar det översta 
-Push($item) ​ // lägger in item överst i stacken 
-Size() ​      // returnerar hur många som finns i stacken 
-IsEmpty() ​   // returnerar true om stacken är tom 
-PrintStack() // Skriver ut en stack, brukar inte finnas men ni kommer att behöva den. 
-</​code>​ 
-2. Man skall kunna se stacken efter varje inmatning på er sida. 
- 
-Tips 1!  
-Eftersom ni nu läser programmering C så skulle ni kunna göra stacken som en klass. Jag tror inte att det blir svårare och ni kommer då även få lite träning på ProgC 
-<code php> 
-$s->​Pop() ​       // tar bort det översta 
-$s->​Top() ​       // returnerar det översta i stacken 
-$s->​Push($item) ​ // Lägger in $item överst i stacken 
-$->​Size() ​       // returnerar hur många som finns i stacken 
-$s->​IsEmpty() ​   // returnerar true om stacken är tom 
-$s->​PrintStack() // Skriver ut stacken, brukar inte finnas men ni kommer att behöva den. 
-</​code>​ 
- 
-Tips 2! 
-Som vanligt kan man spara en hel del tid genom att kolla vilka färdiga funktioner som finns i php (php.net) 
- 
-Tips 3! 
-För att lösa denna uppgift så kan det vara klokt att lagra stacken i en $_SESSION variabel. tex $_SESSION['​stack'​][array]\\ 
-Om ni vill är det helt OK att utgå från min service_session och lägga till funktionerna. 
-<code php> 
-$session->​sPop() ​       // tar bort det översta 
-$session->​sTop() ​       // returnerar det översta i stacken 
-$session->​sPush($item) ​ // Lägger in $item överst i stacken 
-$sessino->​sSize() ​      // returnerar hur många som finns i stacken 
-$session->​sIsEmpty() ​   // returnerar true om stacken är tom 
-$session->​sPrintStack() // Skriver ut stacken, brukar inte finnas men ni kommer att behöva den. 
-</​code>​ 
- 
-Ett körbart [[http://​www2.park.se/​~jf/​ex/​rpn_calc.exe|program]] eller  [[http://​www2.park.se/​~jf/​code/​rpn.php|web]] för att bättre förstå hur din räknare skall funka. 
- 
-En sida [[http://​www.calculator.org/​rpn.html|Reverse Polish Notation]] med lite mer info. 
-