RPN és más programozási algoritmusok

46 views
Skip to first unread message

Pipás

unread,
Jul 22, 2010, 3:07:58 PM7/22/10
to számológép
Találtam egy jó topikot A HP Múzeum fórumoldalán, "Egy új kihívás"
címen. Don Shepherd vetett fel egy érdekes témát a fórum tagjainak:

"Írj egy programot a kedvenc programozható kalkulátoroddal a következő
feladat megoldására:
Egyetlenegy olyan ötjegyű 'p' prímszám létezik 'abcde' számjegyekkel,
ahol
p= (a! + b! + c! + d! + e!) + (a + b + c + d + e)

Például ha 10343 prímszám, akkor
10343 = (1! + 0! + 3! + 4! + 3!) + (1 + 0 + 3 + 4 + 3).
Természetesen ez nem igaz, habár az 10343 tényleg prímszám.

Ne tedd közzé egy pár napig a helyes megoldást, csak a
programlistádat, hadd lássa a világ vagy legalább mi tuskók. "

(? :-) (Most itthon van a fiam, szerinte szó szerint ezt jelenti: for
the world to see, or at least us nerds. )

Nem is ez a lényeg. Jöttek egymás után a bajvívó leventék, és az
érdekes megoldások. Főleg RPL programok vannak, de akad egy Nspire TI
Basic is. A dolog most is zajlik, mai bejegyzés is van. Érdemes
átbogarászni a topikot, el lehet lesni belőle egy-két dolgot.
Úgy látszik nem csak nálunk divat a csemegézés. ;-)

http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=169450#169450

Sanyi

unread,
Jul 23, 2010, 12:15:26 AM7/23/10
to számológép
Köszi Pipás, ez tényleg szép feladat!
Próbálom leprogramozni a Casio FX-7400G-men, mert úgy látom Casio
Basic kód eddig még nincs :)
(bár nyilván RPL-ben lehet rá a "legtrükkösebb" kódokat írni)

Sanyi

unread,
Jul 23, 2010, 9:32:14 AM7/23/10
to számológép
Megvan a megoldásom :)
Igaz, kb. másfél órát "ketyegett" a program, de megérte :)
Magát a megoldást nem árulom el, hogy ne lőjem le a poént, de a
forráskódomat megosztom Veletek:

Prog "FELADAT"
ClrText
0 -> I
{1,3,7,9 -> List 2
{0,0,0,0,0,0,0 -> List 1
For 1 -> A To 9
For 0 -> B To 9
For 0 -> C To 9
For 0 -> D To 9
For 1 -> K To 4
List 2[K] -> E
10000A + 1000B + 100C + 10D + E -> P
If P = A! + B! + C! + D! + E! + A + B + C + D + E
Then "OSSZEG OK"
I + 1 -> I
P -> List 1[I
Prog "PRIMKER"
IfEnd
Next
Next
Next
Next
Next


Prog "PRIMKER"
1 -> M
1 -> T
Lbl 1
M + 1 -> M
Frac (P/M) = 0 => 0 -> T
(T=1)(M<400 => Goto 1
If T = 1
Then "MEGVAN"
P
IfEnd
Return

Megjegyzés: látható, hogy a legbelső ciklus nem pörög végig 0-tól 9-
ig, hanem egy lista segítségével csak 1,3,7 vagy 9 értéket vesz fel,
mivel csak ezekkel a számokkal végződhet egy többjegyű prímszám.
A legkülső lista nem 0-tól, hanem csak 1-től indul, mivel nem
kezdődhet 0-val (mert akkor nem lenne ötjegyű).

Erre nem figyeltem fel, de gyorsítható a program úgy is, ha csak 8-ig
pörögnek a ciklusok, nem 9-ig, mivel 9! már hatjegyű, tehát nem
tartalmazhat 9-est - ezt a HP fórumon olvastam utólag.

A List 1 arra szolgált, hogy abba gyűjtsem azokat a számokat, amiknél
a számjegy-összeg képlet stimmel, de nem biztos, hogy prímek. Végül
ilyen szám a megoldáson kívül nem akadt több.




Sanyi

unread,
Jul 23, 2010, 11:59:38 AM7/23/10
to számológép
Na....
A ciklusokat 9 helyett csak 8-ig állítottam, és egyszerűsítettem egy
kicsit a legbelső ciklusmagon, így a másfél órás futásidőt sikerült
levinnem kb. a felére, 48 percre ;)

A gyorsabb, új változat:

Prog "FELADAT"
ClrText
0 -> I
{1,3,7,9 -> List 2
{0,0,0,0,0,0,0 -> List 1
For 1 -> A To 8
For 0 -> B To 8
For 0 -> C To 8
For 0 -> D To 8
For 1 -> K To 4
List 2[K] -> E
9999A + 999B + 99C + 9D = A! + B! + C! + D! + E! + A + B + C + D + E
=> Prog "PRIMKER"
Next
Next
Next
Next
Next


Prog "PRIMKER"
"OSSZEG OK"
I + 1 -> I
10000A + 1000B + 100C + 10D + E -> P
P -> List 1[I
1 -> M
1 -> T
Lbl 1
M + 1 -> M
Frac (P/M) = 0 => 0 -> T
(T=1)(M<400 => Goto 1
If T = 1
Then "MEGVAN"
P
IfEnd
Return


Sanyi

unread,
Jul 23, 2010, 12:00:46 PM7/23/10
to számológép
Ja igen, és annyira tetszett a Casio FX-7400G-mnek a program, hogy
"meggyógyult" a kijelzője :)
(ez volt pixel-hibás, de most újra jó ;)

Pipás

unread,
Jul 24, 2010, 1:45:40 PM7/24/10
to számológép
Naszóval Sanyi... :-)

Láttam a programjaidat, szép megoldások. Eddig azért nem regáltam,
mert állandóan a HP-t bújom. Tegnap lettek kész a kézikönyveim, ezért
igencsak el voltam foglalva más irányban. ;-) (Mióta megjött a HP,
azóta egyébként is időnként különös tünetek jelentkeznek rajtam.
Gyakran beüvegesedik a szemem és ilyenkor nehezen reagálok a külvilág
ingereire. :-) Ma aztán végül is nekiduráltam magam és én is
kipróbáltam a feledatot.
Mivel a Pluszon és az 50g-n is van " isPrime " fügvény, nemes
egyszerűséggel az Nspire CAS megoldást vettem alapul egy kicsit
átjavítgatva a Pluszra:

:Local i,a,b,j
:For i,10007,99999,2
: If isPrime(i) Then
: i->a: 0->b
: For j,1,5
: b+mod(a,10)+(mod(a,10))!->b
: iPart(((a)/(10)))->a
: EndFor
: If i=b Then
: Disp i
: Stop
: EndIf
: EndIf
:EndFor

Ez a változat kerek 1 órás futásidőt eredményezett az Nspire 1 perc
23 másodpercével szemben...

Lassan kezdett derengeni, amit a 9!-ról írtál, ezért ezt a változatot
is lefuttattam.

:Local i,a,b,j,k,l,m,n,p
:For n, 1, 8
For m, 0, 8
For l, 0, 8
For k, 0, 8
For i, 1, 7, 2
nE4+mE3+lE2+kE1+i->p
: If isPrime(i) Then
: p->a:0->b
: For j,1,5
: b:=b+mod(a,10)+(mod(a,10))!
: a:=iPart(((a)/(10)))
: EndFor @ j
: If p=b Then
: Disp p
: Stop
: EndIf
: EndIf
EndFor @ i
EndFor @ k
EndFor @ l
EndFor @ m
:EndFor @ n

46 perc alatt oldotta meg a feledatot. Az alacsony órajel (12 Mhz)
ellenére valószínű hogy az isPprime() függvénynek köszönhető a tűrhető
futásteljesítmény.

Mivel mostanában az én kedvenc kalkulátorom az 50g, rajta is
kipróbáltam a dolgot. Itt azért enyhén szólva még vékony jégen
táncolok, ezért egyenlőre az első változatot fordítottam le RPL-re. A
futásidő: 31 perc 16 másodperc. Mikor első próbálkozásra luftot
rúgtam és üresen futott végig a ciklus, az kb. 37 percig tartott.
Általában nem szoktam debuggert használni, de itt a HP-n nagyon
hasznos dolog. Bal felső sarok: végrehajtott utasítás, jobb alsó: a
verem tartalma. Így aránylag hamar kiderül hogy hol értettük félre
egymást a géppel. ;-)

A lista:

10007 99999
FOR I
I
IF ISPRIME? THEN
I 'A' STO 0 'B' STO
1 5
FOR J
A 10 MOD A 10 MOD ! +
'B' STO+
A 10 / IP 'A' STO
NEXT
I
IF B == THEN
I "RESULT" ->TAG
HALT
END
END
2 STEP

A meggyógyult kijelzőhöz gratulálok.

Sanyi

unread,
Jul 24, 2010, 2:55:06 PM7/24/10
to számológép
A kijelző gyógyulása nem az én érdemem, inkább "paranormális
tevékenység" :)
(üröm az örömben, hogy már volt ilyen gyógyulás, de aztán újra
elromlott... de most hátha tartósabb lesz:)

Most, hogy írtad a kódjaidat, leesett, hogy a legbelső ciklusnál az
1,3,7,9 listát használom, azaz 4 különböző értéket vesz fel a ciklus
közben, közben meg ugye a 9 innen is elhagyható, tehát csak 3-at
pörögne 4 helyett, ami jelentős gyorsulás lenne... na majd kipróbálom
ezt is ;)

Sanyi

unread,
Jul 24, 2010, 3:03:50 PM7/24/10
to számológép
Ja igen: ez alapján a
For i, 1, 7, 2
ciklust Nálad is lehetne "optimalizálni", hiszen az 5-öt is felveszi,
pedig 5-re nem végződhet prímszám (kivéve magát az 5-öt, de az
egyjegyű;)

Pipás

unread,
Jul 24, 2010, 3:42:48 PM7/24/10
to számológép
"hiszen az 5-öt is felveszi,
pedig 5-re nem végződhet prímszám (kivéve magát az 5-öt, de az
egyjegyű;) "

Mondjuk ez se egy utolsó szempont... ;-)

Sanyi

unread,
Jul 26, 2010, 5:32:01 AM7/26/10
to számológép
Sikerült 35 percre szorítani a futási időt úgy, hogy a legbelső ciklus
nem 4-et "fordul", hanem csak 3-at (tehát az utolsó számjegy az 1, 3,
7 értékeket veszi fel).
Az előző forráskódban a feltételt kicsit elírtam, íme a legfrissebb,
elvileg helyes kód:
http://szamologep.blog.hu/2010/07/26/primszam_keres

(A legjobban meg úgy lehetne felgyorsítani a programot, ha - az
eredmény ismeretében :) - nem 1-től menne a külső ciklus 8-ig, hanem 8-
tól lépkedne visszafelé :))
(na jó, ez már "csalás" lenne :)

Pipás

unread,
Jul 26, 2010, 3:25:46 PM7/26/10
to számológép
"(na jó, ez már "csalás" lenne :) "

Ez már másnak is eszébe jutott... Itt a 67-es számú hozzászólás
(Gerson W. Barbosa ):

Message #67 Posted by Gerson W. Barbosa on 17 July 2010, 6:59 p.m.,
"Quote: ... a tremendous speed gain can be achieved by starting from
the other end? "
(Idézet: ... félelmetes sebességnövekedést okozna ha a másik végén
kezdenénk?)

Indeed! Even my last-hour very inelegant solution on the 50g below
finds the solution in less than 73 seconds .
(Gerzson: Valóban! Az én legutolsó (?) nem épp elegáns megoldásom 50g-
re kevesebb mint 73 másodperc alatt találta meg a megoldást.) (Approx
fordítás:-)

Azért a Te 35 perced is szép eredmény a kezdeti másfél órás
"ketyegéshez" képest ;-) Ebből is látszik hogy érdemes eltörpölni a
feladaton. (Meg az én For i, 1, 7, 2 ciklusomból is. :-D)

ZilogR

unread,
Aug 4, 2010, 4:41:48 PM8/4/10
to számológép
:D Pipás

> Ne tedd közzé egy pár napig a helyes megoldást, csak a
> programlistádat, hadd lássa a világ vagy legalább mi tuskók. "
>
> (? :-) (Most itthon van a fiam, szerinte szó szerint ezt jelenti:  for
> the world to see, or at least us nerds. )

Na, a nerd témához offolok egyet, aztán holnap reagálok én is erre a
faktoriálisos parádéra ;) (Szoktam én ezeket szeretni, anno,
egyetemista koromban a 15C-mmel rengeteget éjszakáztam egy-egy ilyen
kis szarságon. A Valentin Albillo féle Challenge-k nagyon jók voltak -
nameg Ő is 15C-t favorizálja, ami talán nem is véletlen... Sok haszna
is volt, például a tetszőleges N-edfokú polinom solverem 32SII-re is
ennek a weboldalnak köszönheti, hogy megszületett - és erre rém büszke
is voltam anno... :P )

Tehát nerd:

http://www.sg.hu/galeria/1140072667/11400726671280952900.JPG

és még (hogy a Hé haver hol a kocsimból idézzek):

http://en.wikipedia.org/wiki/Nerd

Nerdnek lenni életforma és ezt sokan nehezen értik meg. Nameg nerdnek
nem lesz az ember, a nerd az nerd.

Pl.: Én magamat kimondottan a klasszikus nerd fajba sorolnám a
rendszertanban a szivárgós pattanásoktól eltekintve. ;) :D XD

Saját nerdizmus, hogy jól körülírjam a dolgot: A villamosmegállóban az
eldobott csikkek eloszlásából megmondani, hol lesz az ajtó (a régi
villamosok elég nagy szórással álltak meg, nem úgy mint a "kombinók").
Már meséltem, de: programot írni arra, hány kiló uborkát kell venni
kovászoláshoz (igaz nem futott jól, de egy hatszöges rácsba pakolta az
ubikat (de azt se jól)). Orvosnál várakozási időre eloszlásfüggvényt
becsülve kiszámoltam, mikor kell megérkezni, hogy minimális legyen a
várakozási időm. És a pizzériában előkapott 48SX, ami kiszámolja
mennyi borravalót kell adni :D (soha nem mertem élesben... :o )

Nerd ismerősöktől: Egyetemi gyakorlaton megvolt egy baromi nehézkes
számítás eredménye, mindenki bemondja a végeredményt, szór mint a
rossznyavaja - mit tegyünk? Nerd haver: átlagoljuk! Tanár: na, ez jó
ötlet! (Elkezdi szummázni...) Nerd: De tanárúr! Nem úgy!!!
JEGYENKÉNT!!! (HP48GX-et használt, de nála volt egy 28C is, biztos ami
biztos... A 48-ast a kabátja belső zsebében hordta, azt mondta, lehet,
hogy egyszer még megmenti az életét :D XD )

Hát ilyenek a hétköznapok.

Sanyi

unread,
Aug 5, 2010, 12:24:01 AM8/5/10
to számológép
Köszi a belinkelt cikket ZilogR!
Na igen, a "nerd" meghatározása elég összetett dolog... Majdnem
mindenkiben van több-kevesebb "nerdség", olyan ez, mint mondjuk a
testalkatok vagy a különböző fokú extro- vagy introvertáltság.
Amennyire én tudom, régebben pl. a rosszul öltözködő, esetlen, de
feltűnően jótanuló diákokat (is) nerdnek tekintették, tehát nem volt
feltétlenül pozitív jelző. Aztán egyre divatosabb dolog lett a
"nerdség", és egyre több pozitív dolog társult hozzá.
Lényegében egyfajta beszűkültséget jelent, amikor az ember túlzottan
egy területre koncentrál, de arra nagyon. A legtöbbször ez valamilyen
természettudományos, illetve informatikai terület (pl. programozás).
De - szerintem - némi nerd beütés van pl. Stifler szerepében is az
Amerikai pite esküvős részében is, amikor látszólag "jógyerek" lesz.
Ez esetben persze a méregdrága Lacoste póló nem rosszulöltözöttségre
utal, de van benne valami pedáns, jótanulós.

Sanyi

unread,
Aug 5, 2010, 12:29:04 AM8/5/10
to számológép
Ja igen, klasszikus nerd dolog a számológépes óra is (
http://szamologep.blogspot.com/search/label/%C3%B3ra )
Ez is jó példa arra, hogy hogyan hullámzik a divat, vagy a nerdség
megítélése: a 70-es, 80-as években menőnek számított, a kilencvenes
évek végére egyre cikibb lett, aztán napjainkban újra divatos
kiegészítőnek számít.

Pipás

unread,
Aug 5, 2010, 2:28:18 AM8/5/10
to számológép
:-D
Kösz, ZilogR!
"...egyszerűen beszúr egy sort, mely szerint ha a végeredmény 2*2=5,
akkor a helyes válasz a 4."

Néha én is rajtakapom magam ilyesmin.... ;-)

Pipás

unread,
Sep 25, 2010, 4:00:23 PM9/25/10
to számológép
Megint egy komoly feladat a HP fórumról, avagy egy misztikus szám:
http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=172316#172316

Vagyis:
1. Végy egy 4 jegyű számot. (Itt svájci irányítószám.)
2. Vedd a számjegyeiből képezhető legkisebb
3. és legnagyobb számot.
4. Vond ki a nagyobbikból a kisebbet.

Például:
1432 -> 4321-1234= 3087

Írj a műveletek elvégzésére egy programot. Futtasd meg többször a
kapott eredményekkel. (A kimenet legyen a bemenet. :-) Mit
tapasztalsz? Mi lehet az oka?

Nahát én írtam egyet. (Változó nélkül, csak a veremben... :-P )
Zárójelben a verem tartalma.
(n.szint, n-1.szint, ... 1.szint)

Prg. ZCODE:
Bemenet pl.: 1432

<<
DUP (1432, 1432)
1 3
FOR N
10 IDIV2
SWAP
NEXT (1432, 2, 3, 4, 1)
4 LIST (1432, {2 3 4 1})
SORT (1432, {1 2 3 4})
DUP (1432, {1 2 3 4}, {1 2 3 4})
REVLIST (1432, {1 2 3 4}, {4 3 2 1})
EVAL (1432, {1 2 3 4}, 4, 3, 2, 1)
NBUILD (1432, {1 2 3 4}, 4321)
SWAP (1432, 4321, {1 2 3 4})
EVAL
NBUILD (1432, 4321, 1234)
- >> (1432, 3087)

Prg. NBUILD:
Input: (1, 2, 3, 4)

<<
1 3
FOR N
SWAP (1, 2, 4, 3)
10 N ^ (1, 2, 4, 3, 10)
* (1, 2, 4, 30)
+ (1, 2, 34)
NEXT >>

A negyedik-ötödik de max. a 7. futtatás után az eredmény 6174 lett,
ami aztán nem változott. Ez bármilyen négyjegyű számra igaz kivéve ha
a 4 számjegy egyező, mert akkor az eredmény 0.

Mint közben kiderült ez a Kaprekar-féle szám, amiről pl. itt is
olvashattok:
http://plus.maths.org/issue38/features/nishiyama/index.html


Sanyi

unread,
Sep 26, 2010, 3:06:41 PM9/26/10
to számológép
Érdekes feladat Pipás, holnap szerintem megírom a kis FX-7400G-mre,
aztán lehet hogy a többire kalkulátorra is megpróbálom ;)
Még nem hallottam a Kaprekar-féle számról, de ennek is utána járok
kicsit.

On szept. 25, 22:00, Pipás <litauszky_gyo...@t-online.hu> wrote:
> Megint egy komoly feladat a HP fórumról, avagy egy misztikus szám:http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=17231...

Pipás

unread,
Sep 26, 2010, 5:09:56 PM9/26/10
to számológép
> Még nem hallottam a Kaprekar-féle számról, de ennek is utána járok
> kicsit.

Én is most hallottam róla először, de ott a fórumon kapásból ketten is
ismerték.
Message has been deleted

Pipás

unread,
Sep 26, 2010, 5:19:37 PM9/26/10
to számológép
> 4 LIST (1432, {2 3 4 1})

Most látom hogy itt kimaradt valami. Helyesen:

4 ->LIST

Sanyi

unread,
Sep 28, 2010, 12:12:00 AM9/28/10
to számológép
Egy basic megoldás, Casio FX-7400G-re:

? -> A
{0,0,0,0 -> List 1
For 1 -> B To 4
Frac (A / 10)*10 -> List 1[5 - B
Int (A / 10 -> A
Next

For 1 -> B To 3
For 1 -> C To B
If List 1[C] < List 1[C+1
Then List 1[C -> S
List 1[C+1 -> List 1[C
S -> List 1[C+1
IfEnd
Next
Next

999*List 1[1] + 90*List 1[2] - 90*List 1[3] - 999*List 1[4] (output)

Sanyi

unread,
Sep 28, 2010, 12:19:36 AM9/28/10
to számológép
Az utolsó sor elsőre egy kicsit furán néz ki:
999*List 1[1] + 90*List 1[2] - 90*List 1[3] - 999*List 1[4] (output)

Ezt úgy kaptam, hogy
1000*List 1[1] + 100*List 1[2] + 10*List 1[3] + List 1[4]
-ből kivontam a "fordítottat", azaz
1000*List 1[4] + 100*List 1[3] + 10*List 1[2] + List 1[1] -et.

Pipás

unread,
Sep 28, 2010, 5:41:20 AM9/28/10
to számológép
Na ezt átbogarászom.
Közben Thomas Klemm (a topik indítója) feltett többek között egy HP 48
megoldást is, ami enyhén szólva durva:

\<<
SORT DUP REVLIST
SWAP -
IF DUP 2 GET
THEN { 0 -1 9 10 }
ELSE { -1 9 9 10 }
END ADD
\>>

A bemenet egy négy elemű lista, valamint a kimenet is. Ezen még el
kell rágódnom hogy miért pont ennyit von ki belőle ha a 2. elem 0 vagy
nem. (Listaműveletek)

Feltett még egy HP 15C megoldást is (amihez még nem igazán tudok
hozzászagolni:-), valamint kiderült hogy a kérdéses hely Svájcban:
6174 Sörenberg
http://www.biosphaere.ch/de.cfm/tourism/offer-TourismusSFT.html
Szép hely az biztos.

Érdemes elolvasni ezt a hozzászólását:
http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=172474#172474
Jól belemászott a témába. Ez ügyben indított egy új topikot is:
http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=172487#172487

Pipás

unread,
Sep 28, 2010, 2:04:57 PM9/28/10
to számológép
> Az utolsó sor elsőre egy kicsit furán néz ki:
> 999*List 1[1] + 90*List 1[2] - 90*List 1[3] - 999*List 1[4] (output)

Ez ötletes megoldás Sanyi, gratulálok.

Thomas Klemm is trükközött a HP 48 programban. Ő a számjegyekkel (a
lista elemeivel) számolt egyenként.

Bemenet pl.:
1 4 3 2
Ebből:
4 3 2 1
- 1 2 3 4
---------------
3 1 -1 -3
+0 -1 9 10 Korrekció, a 2. elem nem 0
---------------
3 0 8 7

Vagy:
1 2 2 3

3 2 2 1
- 1 2 2 3
---------------
2 0 0 -2
+-1 9 9 10 Korrekció, a 2. elem 0.
---------------
1 9 9 8

Mondjuk ez a módszer egyenlő számjegyekre (pl. 5555) 0 helyett -1 9 9
10-et ad, a mienk meg jól működik :-)
Próbáltam kivédeni: ha a kivonás utáni lista elemeinek összege 0
(sumlist) akkor ne csináljon semmit. Kiderült h. ez mindig 0.
( { 3 1 -1 -3 }, { 2 0 0 -2 } ). Ez végül is logikus. Aztán nem túl
elegánsan azt találtam ki h. ha az első szint tartalma { -1 9 9 10}
akkor dobja el. A fene ezeket a korrekciós tényezőket. Valami olyasmi
lehet h. kiegészítés 10-re, meg h. mennyi a maradék. Egyenlőre nem
akar beugrani. :-(

Sanyi

unread,
Sep 29, 2010, 1:35:36 AM9/29/10
to számológép
Köszi Pipás ;)
Végül is nem volt nagy kunszt, csak elvégeztem a lista elemein a
kivonást.
Viszont a Casio beépített függvényeit, funkcióit jobban is ki lehetne
használni, és így tömöríteni a kódot. Pl. megírtam a "buborék-
rendezést" az elemek (számjegyek) rendezésére, de arra azt hiszem
létezik egy beépített parancs is.
Úgyhogy még lehet majd csinosítani ezt a Casio-basic kódot is ;)

Majd én is tanulmányozom a Te kódodat, meg a többi HP kódot (jó lenne
megírni a 28C-re is ;)

Pipás

unread,
Sep 29, 2010, 12:24:16 PM9/29/10
to számológép
Sztem az én programom is és a Thomas Klemm verzió is jó eséllyel futna
a HP-28C-n..

Sanyi

unread,
Sep 30, 2010, 12:17:41 AM9/30/10
to számológép
Délután kipróbálom ;)
Ami a Casio-kódot illeti, rosszul emlékeztem, nincs beépített utasítás
a tömbök (listák) rendezésére (vagy csak nem találtam...).

Sanyi

unread,
Oct 1, 2010, 12:34:09 AM10/1/10
to számológép
REVLIST és NBUILD utasítás nincs a 28C-n.... :(
Majd megnézem, hogy ezek mit csinálnak, és hogy mivel lehetne
helyettesíteni.
(hétvégén lehet hogy beleásom kicsit magam)

Pipás

unread,
Oct 1, 2010, 2:13:41 AM10/1/10
to számológép
> REVLIST és NBUILD utasítás nincs a 28C-n.... :(

A REVLIST egy adott lista elemeit rakja fordított sorrendbe. (Nem
rendez! Pl. {1 3 2 5} REVLIST = { 5 2 3 1} )

Az NBUILD nem utasítás, hanem egy alprogram amit én írtam. A lista
elemeiből készít számot.

Prg. NBUILD:
Input: (1, 2, 3, 4), Outp: 1234

Pipás

unread,
Oct 1, 2010, 2:18:46 AM10/1/10
to számológép
Sztem ezek helyett próbáld meg a saját módszeredet (műveletek
elvégzése a listán) leprogramozni RPL-ben is.

Sanyi

unread,
Oct 1, 2010, 2:19:39 AM10/1/10
to számológép
"Az NBUILD nem utasítás, hanem egy alprogram amit én írtam. A lista
elemeiből készít számot."

:)) Hát igen, szórakozott és figyelmetlen vagyok....

Sanyi

unread,
Oct 1, 2010, 2:20:57 AM10/1/10
to számológép
Köszi Pipás, szerintem most hétvégén szánok rá időt, mert szép feladat
- jó lesz kicsit gyakorolni az RPL-t.
Message has been deleted

Pipás

unread,
Nov 1, 2010, 7:31:15 AM11/1/10
to számológép

Sanyi

unread,
Nov 1, 2010, 12:27:52 PM11/1/10
to számológép
Jópofa ;)
Bár nem RPN, ezt találtam:
http://www.flickr.com/photos/barabass/3350881311/
(hamarosan lesz logarlec.lap.hu is, ha minden igaz ;)

On nov. 1, 12:31, Pipás <litauszky_gyo...@t-online.hu> wrote:
> Na, ha majd én is így számolok fejben! :-Dhttp://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/forum.cgi?read=17410...

ZilogR

unread,
Nov 15, 2010, 4:03:47 AM11/15/10
to számológép
Egy ideje érdekel, hogy mennyi ideig NEM használom a
számológépemet. :)
Ez a kis program, ami 48SX-re íródott, de valszeg elfut minden RPL-es
gépen, szépen kiírja másodpercben, mennyi ideig volt kikapcsolva a
gép.
Használata igen egyszerű (és maga a program is): ezt futtatva
kapcsolod ki a gépet, csak kikapcsolás előtt a stack-be teszi az
aktuális rendszeridőt, majd bekapcsoláskor tovább fut a program és a
bekapcsolási rendszeridőt kérdezi le. A kettő különbségéből csinál egy
egész számot, majd ebből 8192-vel osztva másodpercet.

Enjoy! :)


TCKSOFF
<< TICKS OFF TICKS SWAP - B->R 8192 / >>

Pipás

unread,
Nov 15, 2010, 5:07:45 AM11/15/10
to számológép
Kösz ZilogR! Egyből ki is próbáltam, működik. Hozzá is írtam a végéhez
egy kicsit, hogy óra-perc-másodpercben adja meg az eredményt.

TCKSOFF
<< TICKS OFF TICKS SWAP - B->R 8192 /
3600 / ->HMS >>

ZilogR

unread,
Nov 15, 2010, 5:19:34 AM11/15/10
to számológép
:) jó ötlet! Tied a kopirájt! :)
Át is írom a sajátomat!

ZilogR

unread,
Nov 15, 2010, 5:25:34 AM11/15/10
to számológép
Még az is eszembe jutott, h ezzel lehet "érzelgős" számológépet
csinálni. Annyit kellene, h a rendszeridő kiírása helyet megnézi, h
eltelt-e már egy egész perc vagy óra, kinek mi tetszik és ha igen,
akkor egész részét veszi, majd a következőt pakolja a stackbe:

Már több mint ... perce/órája rám se néztél, te szívtelen mocsok
állat! Tudom, hogy megint egy másik számológépet "nyomkodtál"...!

Vagy:

Mit cseszegetsz már megint, alig ... perce kapcsoltál ki...!

:D


On nov. 15, 11:07, Pipás <litauszky_gyo...@t-online.hu> wrote:

Pipás

unread,
Nov 15, 2010, 5:49:58 AM11/15/10
to számológép
Ja. Meg mondjuk kéne csináltatni valakivel egy adaptert hogy be is
nyomjon egyet a tulaj szeme alá ha már régen kapcsolta be szeretett
kalkulátorát. (Ez megint vicc akart lenni... :-)

Megjavult az SX-ed kijelzője? Vagy nem ez volt rossz?

Sanyi

unread,
Nov 15, 2010, 1:24:51 PM11/15/10
to számológép
Nálam a 28C-n vmitől nem működik (vagy csak elrontottam vmit).
Érdekes, hogy TICKS nem okoz hibát, de mintha nem csinálna semmit.

Pipás

unread,
Nov 15, 2010, 1:29:46 PM11/15/10
to számológép
Sanyi, a kézikönyvem szerint a TICKS csak a 48 SX-től kezdve
létezik. :-( Lehet h. egyszerűen csak változónévnek veszi a géped?

Sanyi

unread,
Nov 15, 2010, 1:33:34 PM11/15/10
to számológép
Ez elképzelhető ;))

A HP-19B II videóhoz mit szólsz?
http://www.youtube.com/watch?v=tUCf4N_ln10
(ha valaki le nem csap rá / túlságosan fel nem pörög az ára, akkor
lehet hogy lesz "testvérkéje" a HP-28C-mnek - és köszönöm Dexternek,
hogy felhívta a készülékre a figyelmem ;)

Pipás

unread,
Nov 15, 2010, 1:39:03 PM11/15/10
to számológép
Épp az előbb szóltam hozzá én is. Esetleg ha összejön az üzlet, nem
akarod a 28C-t elkótyavetyélni? :-)

On nov. 15, 19:33, Sanyi <cs...@freemail.hu> wrote:
> Ez elképzelhető ;))
>
> A HP-19B II videóhoz mit szólsz?http://www.youtube.com/watch?v=tUCf4N_ln10

Sanyi

unread,
Nov 15, 2010, 1:43:54 PM11/15/10
to számológép
Hát Pipás.... bevallom nem nagyon... ;)
De ideiglenes cseréről, vagy kölcsönadásról lehet szó természetesen.
;)

Dexter

unread,
Nov 15, 2010, 1:48:02 PM11/15/10
to számológép
Ja ja. Ha kiraknád aukcióra, én is biztos licitálnák rá :)

Ha kis szerencséd van, nem pörög, már másodszor van kint. Az enyémet
kettő-félért vettem itt, igaz elemek nélkül. Ott sem volt más
licitáló. Drukkolunk.

On nov. 15, 19:33, Sanyi <cs...@freemail.hu> wrote:
> Ez elképzelhető ;))
>
> A HP-19B II videóhoz mit szólsz?http://www.youtube.com/watch?v=tUCf4N_ln10

Pipás

unread,
Nov 15, 2010, 2:07:18 PM11/15/10
to számológép
Tuttam én! Na nem baj, majd egyszer szerzek egy olyan igazi 4 szintű
vermeset.

Sanyi

unread,
Nov 15, 2010, 2:17:53 PM11/15/10
to számológép
Pipás, azért nagyon szívesen kölcsönadom Neked, akár 1-2 hónapra is,
ha gondolod.
Az a baj, hogy túlságosan kötődök tárgyakhoz (már kiskoromban is
mindenhová magammal hurcoltam egy játékmackót...:)), hiába próbálom
"diogenészibb" üzemmódra állítani az agyam :)

ZilogR

unread,
Nov 15, 2010, 3:22:48 PM11/15/10
to számológép
ebay?
most már van "magyarul" is!

Pipás

unread,
Nov 15, 2010, 4:46:34 PM11/15/10
to számológép
Hát az Ebay elég húzós. Ott igen magasan szállnak a 15C árai. Hátha
lesz egyszer a Vaterán is valami hasonló.
Message has been deleted

Pipás

unread,
Nov 16, 2010, 9:27:41 AM11/16/10
to számológép
" TCKSOFF
<< TICKS OFF TICKS SWAP - B->R 8192 /
3600 / ->HMS >> "

Szóval ZilogR, továbbfejlesztettem a közös projektünket. Na nem az
érzelgős irányba, mert nekem egy számológép ne magyarázzon. :-)

De:
Átneveztem STARTOFF névre. Ez egy lefoglalt változónév. Az ilyen nevű
program akkor fut le, ha a gép időtúllépés miatt magától kapcsol ki.
Vagyis akkor is mér ha elméláztál. :-)

Nade:
Így egy kicsit még sántított a dolog mivel bekapcsolás után semmit nem
írt ki. Egy Enter után viszont kiírta kétszer is. (Beleszorult a szó
szegénybe.) Próbáltam előcsalogatni így hogy EVAL meg 105.1 KEYEVAL
(ez lenne az ENTER), rá se bagózott. Végül aztán az lett a jó, hogy az
eredményt stringgé alakítottam és így írattam ki vele. Nekem az MSGBOX
bejött, de az csak 48GX-től létezik a könyvem szerint. Ezért maradt a
DISP.

Vagyis Közös Projekt V.1.1:

STARTOFF
<< TICKS OFF TICKS SWAP - B->R 8192 /
3600 / ->HMS
->STR 1. DISP 7. FREEZE >>

Ebben a formában kéne hogy fusson az SX-en is.
Reply all
Reply to author
Forward
0 new messages