Vi lär oss lite RPN och Stack på HP-räknare

Tråden skapades och har fått 13 svar. Det senaste inlägget skrevs .
1

Hej alla barn, nu skall vi lära oss RPN !

RPN är Reverse Polish Notation och ett sätt att plita in saker i en miniräknare.

För att förenkla något kan vi säga att vad gäller Notationer så finns det;

Infix-notation, kallas även Algebraisk Notation
RPN (Omvänd Polsk Notation)

Det finns även andra ”avarter” men det blir omständigt nog ändå som det är...

Vi börjar med det gamla vanliga inlärda, Algebraisk. Varenda miniräknare i princip kör detta. Vill man veta vad 2 plus 3 är så skriver man;

2
+
3
=

och får svaret 5

På en RPN-räknare arbetar man på liknande sätt, men man lägger talen på hög på en STACK och utför en operation på dem;

2
Enter (2 placeras på stacken)
3 (3:an läggs i inmatning, första tvåan åker upp ett hack)
Enter (andra värdet (3) läggs på stacken
(2 tas från stack, 3 tas från stack, adderas och läggs på stack)

resultatet visas; 5

Rörigt? Vänta ett slag så skall jag förklara ”STACK”

Tro inte att en algebraisk räknare inte har en stack, det har den. Men du kan inte komma åt den, manipulera den eller använda den på ngt sätt för egen vinning. Den används bara internt

Enkel förklaring av en STACK

En stack är en samling med dataregister. platser i minne för tal, tecken etc. Den fungerar som en sån där tallriksmatare på en restaurang. En fjäder i botten, man ställer i rena tallrikar och kunderna tar tallrikar, när de tar en tallrik åker traven (stacken) upp ett hack.
Vänd nu upp och ner på tallriksmataren och ersätt tallrikarna med tal. Vi har fyra platser i vår tallriksmatare (lite snålt om det varit fysiska tallrikar man hanterat...) men i vår talvärld är det tillräckligt då vi omsätter dem hela tiden.
Våra Tallriksplatser (4) har namn med för att veta vad som går vart:

T:
Z:
Y:
X:

X-registret är det du ser på en enraders HP-räknare
Y,Z och T ligger liksom ”ovan” fönstret, vill du se dem får du ”rulla ner dem”

Nu kan vi ju begripa Liiite bättre vad som sker när vi slår in vår addering av 2 och 3 ...

T:		T:		T:		T:
Z:		Z:		Z:		Z:
Y:		Y:2		Y:		Y:	
X: 2		X:3		X:5		X:


2 ENTER	3 ENTER	+

Man ”ser” hur 2:an lättar ett steg upp i Y-registret när nästa tal kommer in och hur stacken ”faller” när man tar tal och gör ngt med dem.

Varför skall man lära sig det här möget då, jag vill ju bara lägga ihop två och tre?
Ja, vill du bara lägga ihop två tal, kör på då med din gamla Texas. Är du däremot intresserad av matematik och vackra lösningar på problem, läs vidare.

Först lite mer om stacken.

Vi har två tal:

T:
Z:
Y:3
X:2

inmatade och kommer på att vi skall dividera här

trycker vi på division får vi 3/2 (3 Enter 2 / ) och vi vet att Nej, svaret skall ju vara 2/3 - täljaren och nämnare står i fel ordning här. Inte ovanligt att det hände i skolbänken.
Antingen använda något Minne med MRC (memory Recall Clear) M+ (Memory Add) för 2:an och ... fan, bättre skriva upp det på en lapp...

i en RPN-räknare har du mängder med stackmanipulation du kan göra;

T:		Vi trycker SWAP	        T:		...och ” /    ”	T:
Z:						Z:					Z:
Y:3						Y:2					Y:
X:2						X:3					X:,6667

Vi har en hel uppsättning med kommandon för att peta runt med talen på stacken: DUP, ROT, ROLLD, UP, PICK, TOLIST, KEEP, CLX är bara några.

...eller ännu värre "Shit, det skulle ju inte delas med 3...utan FEM, nu får jag räkna om hela rasket IGEN...hata matte...", på en HP-räknare trycker du LASTX och får tillbaka som det var innan du matade in den sista trean där... och vi matar in en 5:a istället... och trycker "/"...baggis faktiskt.

De ”modernare” (från 82 och framåt skulle jag tro) kan man inte bara ha tal på stacken, utan även listor, program, vektorer, bilddata, strängar osv. Massa kul för en nörd utlovas.

Om vi återvänder till de algebraiska räknarna för en stund igen så märker vi av PARENTESER när man kommer en bit upp i matten.

Normalt har vi ju att multiplikation och division har högre prioritet än addera och subtrahera...

2+4*3+4*6
---------
  7+1

Får skrivas;

2 + (4 * 3)+(4*6) / (7+1)

Man får liksom ”gödsla” med parenteser för att förhoppningsvis få det rätt.

Ok, jag kör det snabbt på min HP då:

2 Enter 4 Enter 3 * + 4 Enter 6 * + 7 Enter 1 + /

inte en parentes, glasklart och kikar vi på stacken blir det en upplysande jojo-färd.

T:		T:		T:		T:		T:		T:
Z:		Z:		Z:2		Z:		Z:		Z:
Y:		Y:2		Y:4		Y:2		Y:		Y:14	
X: 2		X:4		X:3		X:12		X:14		X:4    forts


T:		T:		T:		T:		T:		T:
Z:14		Z:		Z: 		Z:		Z:38		Z:
Y:4		Y:14 	Y: 		Y:38		Y:7		Y:38 	
X:6 		X:24 	X:38 	X:7		X:1		X:8    forts


T:		 
Z: 		 
Y: 		  	
X:4,75  	  

När man har tal som täcker en halv sida i matteboken, då kommer RPN med stack till sin fulla rätt.

jag kan spara i princip halva uträkningar, återkalla ”gammalt överspelat” och jag kan se (och komtrollera delresultat) på ett snabbt sätt ( t ex som i ovan uträkning, täljaren blir 38).

Sitter du just nu i ÅK9 har du ett guldläge framför dig. En begagnad HP-48G, HP-48GX etc kostar ett par hundralappar på eBay, den klår vilken Texas som helst. Har du tur får du ett kilo manual med - en manual som tar upp precis ALLT. Skriven av några som förmdoligen LEVER för manualer... Inte som en casio där en Universitetsräknare har en 38-sidig manual, sedan är resten på 17 andra språk...

Min HP-48G med fodral, Programmers Guide och under den "AUR"-manualen (Advanced USers Reference)

Närbild på räknare, med svaret 4,75

mer läsning:
Vintage Calculators Web Museum Om gamla räknare....
The Museum of HP Calculators Om gamla räknare, men mkt matnyttigt till bl a HP-48
RPN (T ex en artikel om RPN liknande min här)
HPCC: Handheld And Portable Computer Club brittisk förening för räknarnördar....

Råd till dig som skall köpa en räknare.
10-serien är bra (introducerades 1981, de flesta tillverkas än...), och i princip allt fram till 48-serien (G/GX). Efter dessa skickade man av tillverkningen till ngt Kinpo (uttalas KIN-POO enligt HP-folk). Synnerligen dåliga tangentbord, praktiska katastrofer....dubbelslag osv...
Så 49+, 40 GS, även den nuvarande 35s:an är rena skiten.

3 Typexempel på Kinpoo-räknare. Enda undantaget är 50g...

Hittar du en fungerande HP-41C / CX / CV på en loppis märkt "200:- eller bud" ta den direkt.
Jag sålde min (dumt nog) för över 3000:- på eBay (räknare plus några pluginer)....

De riktigt tidiga med röda siffror - enbart om du är entusiast....

Se upp med en del enklare räknare - de är inte RPN....

Senast redigerat 2012-06-06 22:01

Och om man vill räkna med RPN i Macen så tar man upp Terminalen och slår "dc", då kan det se ut så här (Goflorps exempel ovan):

Citat:

$ dc
3
k
5
2
4
3
*
+
4
6
*
+
7
1
+
/
p
4.750

Nackdelen här är att man måste sätta precisionen själv. Jag valde till 3 siffror (pushar 3 till stacken, popar 3 från stacken till att sätta precisionen). Nåväl, slå "man dc" för att få mer kött på benen.

Ursprungligen av Goflorp:

De riktigt tidiga med röda siffror - enbart om du är entusiast....

För att förtydliga för ungdomen: De med röda siffror har alltså inte LCD-display utan endast LED. Och de _äter_ batterier... Så till den milda grad att man är bunden till ett vägguttag för räknesessioner längre än typ 15 minuter. Obra.

Här är förresten ett par gamla goda trådar med miniräknare:
http://www.99.se/99lounge/272836-raknarnorden-anfaller.html
http://www.99.se/notiser-rykten/271168-macagare-ar-prylalskare-enligt-studie.html

Gissa vem som skrivit flitigast i dom?

Ursprungligen av johan_tanying:

För att förtydliga för ungdomen: De med röda siffror har alltså inte LCD-display utan endast LED. Och de _äter_ batterier... Så till den milda grad att man är bunden till ett vägguttag för räknesessioner längre än typ 15 minuter. Obra.

Här är förresten ett par gamla goda trådar med miniräknare:
http://www.99.se/99lounge/272836-raknarnorden-anfaller.html
http://www.99.se/notiser-rykten/271168-macagare-ar-prylalskare-enligt-studie.html

Gissa vem som skrivit flitigast i dom?

Du menar sådana som TI-30. Jag minns fortfarande när jag började 7:an. Då fick vi till nåds använda räknare - min hade gröna LED (inte en TI-30, minns inte märket). Fast vår lärare var tveksam till sådana nymodigheter - han ville att vi skulle köra räknesticka. Jag tror att vi troligen var sista året som fick lära sig sådana.

Sedan när vi började gymnasiet så fick vi ut TI-30. Då sa vår matematik och fysiklärare. Använd dem så mycket som ni bara kan så slipper vi traggla med manuella uträkningar.

Ursprungligen av BlackSmp:

Du menar sådana som TI-30. Jag minns fortfarande när jag började 7:an. Då fick vi till nåds använda räknare - min hade gröna LED (inte en TI-30, minns inte märket). Fast vår lärare var tveksam till sådana nymodigheter - han ville att vi skulle köra räknesticka. Jag tror att vi troligen var sista året som fick lära sig sådana.

Sedan när vi började gymnasiet så fick vi ut TI-30. Då sa vår matematik och fysiklärare. Använd dem så mycket som ni bara kan så slipper vi traggla med manuella uträkningar.

Räknenördarmedfemmaisnitt som började på Hvitfeldska ht82 körde inte TI - det var HP som gällde! Själv körde jag med budgetvarianten TI-57 i olika former och modeller. De fick ju bytas ut varannan månad pga den usla kvaliteten... Sen blev det en programmerbar Casio FX-602P (se trådarna som länkades till ovan).

Ursprungligen av johan_tanying:

Räknenördarmedfemmaisnitt som började på Hvitfeldska ht82 körde inte TI - det var HP som gällde! Själv körde jag med budgetvarianten TI-57 i olika former och modeller. De fick ju bytas ut varannan månad pga den usla kvaliteten... Sen blev det en programmerbar Casio FX-602P (se trådarna som länkades till ovan).

Jag också, jag skippade den TI-30 som vi fick och köpte en TI-57, men min höll hela gymnasiet.

Är det inte dags att någon förklara syntetiskt programmering som jag hörde att HP-nördarna talade om. Jag fattade aldrig riktigt det där

  • Medlem
  • Uppsala
  • 2012-06-07 14:18

Synd att inte fler insett storheten med rpn, det är så en räknare ska fungera!

Framför allt är det RPN man fick lära sig i skolan.
Jag fick lära mig att ställa upp beräkningen genom att skriva i följande ordning 12 4 +

12
+4
---
16

När jag försökte att hjälpa mina barn med division så fick jag lära mig att vara försiktig med "vad man fick lära sig i skolan" för dagens matematikundervisning och division har inte med logik att göra...

Tycker jag:)

  • Medlem
  • Hemmesdynge
  • 2012-06-07 23:04

Och när man lärt sig RPN, och haft en 42S hela gymnasiet så är det f*rbannat svårt att räkna med en "vanlig" räknare

Vad vill du veta om syntetisk programmering på HP-41?

Ursprungligen av hummel:

Vad vill du veta om syntetisk programmering på HP-41?

Egentligen ingenting, ville bara briljera lite med onödigt vetande:)

Bill Wickes som "kom på" syntetisk programmering eller i all fall gjorde den tillgänglig för alla.
Vill du ha mer onödigt vetande?

Ursprungligen av hummel:

Bill Wickes som "kom på" syntetisk programmering eller i all fall gjorde den tillgänglig för alla.
Vill du ha mer onödigt vetande?

Kan du ngt om det är du välkommen för tråden framåt; gissar det blir mkt RPL, RPN och Stack :.-)

1
Bevaka tråden