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.

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.

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

$s->Pop()        // tar bort det översta
$s->Top()        // returnerar det översta i stacken
$s->Push($item)  // Lägger in $item överst i stacken
$s->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.

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.

$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.

Ett körbart program eller web för att bättre förstå hur din räknare skall funka.

En sida Reverse Polish Notation med lite mer info.