Differences

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

Link to this comparison view

pabop_rpn_stack [2012-01-22 14:23]
Joakim Forsgren
pabop_rpn_stack [2017-09-01 14:54]
Line 1: Line 1:
-===== 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, **det är med hjälp av denna stack som ni skall lösa uppgiften**. Stacken skall ha följande funktioner. 
-<code php> 
-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. 
-</code> 
- 
-2. Använd er stack för att göra en 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.<code php><?php 
-session_name('ert_login'); 
-session_start();</code> 
-  * 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 [[http://www2.park.se/~jf/ex/rpn_calc.exe|dos]], [[http://www2.park.se/~jf/ex/rpn_calc|linux]] eller [[http://www2.park.se/~jf/code/rpn.php|web]]  för att bättre förstå hur din räknare skall funka. 
- 
-===== Länkar ===== 
-  * En sida [[http://www.calculator.org/rpn.html|Reverse Polish Notation]] med lite mer info. 
-  * Wiki om [[http://en.wikipedia.org/wiki/Reverse_Polish_notation|RPM]]