Olyan számológépet keresnék linuxra, ami, ha nyomom az egyenlőség gombot, akkor folyamatosan ismétli az utolsó műveletet, az előző végeredményéből.
Tehát 100+25 és ha lenyomom és nyomva tartom az egyenlőséget, akkor nem a 125 villog, hanem 125,150,175 stb.
Létezik ilyen? Vagy csak beállítás kérdése?
- 449 megtekintés
Hozzászólások
Kcalc -> Beállítóablak -> Általános -> Repeat operation for each result (ez a 20.04-el shippeltben még nincs lefordítva).
Annyi kitétel van, hogy nem nyomva kell tartani, hanem nyomkodni kell.
- A hozzászóláshoz be kell jelentkezni
sőt! nálam működik már úgy is, ha lenyomva tartom! Köszönöm!
- A hozzászóláshoz be kell jelentkezni
Felteszed a calc nevű CLI alkalmazást. Ez nem a LibreOffice Calc, hanem a C-style Artibrary-precision Calculator rövidítése, és egy 23 KiB-os progi. Egyfajta C-script interpreter, amiben sok beépített matekfüggvény van. Én ezt használom, akárhányszor ismételhető benne a művelet, meg írhatók benne scriptek mindenféle loop-pal, eredmények és műveletsorok visszahívhatók historyból. De lehet ilyen célra Python-t vagy Octave-ot is használni, esetleg R-t, azok is ugyanez a kategória, csak más szintaxissal. Illletve SageMath vagy Matlab, de azok már overkill kategória számológépnek. Ezek jobbak, mint egy számológépalkalmazás, mert többet tudnak (komplex számokkal, vektorokkal, mátrixokkal végzett műveletek, deriválás, integrálás, diffegyenletek megoldása, numerikus módszerek), az arbitrary precision miatt akár millió tizedesjegyig is simán köpködik az eredményeket, meg gigantikus hatványokat, faktoriálisokat (amiktől a legtöbb számológép kiakad, mint a taxióra), historyból csomó minden menthető, programozhatók, GNU plottal interface-elhetők, nem csak egérrel tudsz bevinni műveletsort (ami akkor kínos, ha félrekattintottál, és csak későn veszed észre, kattintgathatod végig újra az egészet), látod mit vittél be, eredményeket továbbgördítheted, újrafelhasználhatod, visszagörgethetsz, stb.. Ezek nagy részét átlag számológépalkalmazásban nem tudod megtenni.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
Sőt, a bc elméletileg alapból telepítve van, hasonló okosságokat tud. (Igaz, a kérdés nem ez volt.)
Debian - The "What?!" starts not!
http://nyizsa.blogspot.com
- A hozzászóláshoz be kell jelentkezni
Sok megoldás van, ha ki akarsz írni sorozatokat. Akár az imént említett bc, akár más alapból telepített szkript nyelv. Főleg ha van interaktív módja.
$ bc -l
for (x=0; x<30; x++) { 100 + 25 * x; }
$ python3
>>> for x in range(30):
... print (100 + 25 * x)
<enter>
De a webes interaktív kód demózó szolgáltatások is jól használhatóak erre.
- A hozzászóláshoz be kell jelentkezni
Python és bc nélkül elképzelhető egy Linux rendszer. Node bash nélkül? :-)
bash$ for i in {0..29} ; do echo $(( 100 + 25 * i )); done
De gyanítom a kérdező valami kliketi-klikk eszközt keres. (Sőt már meg is találta.)
- A hozzászóláshoz be kell jelentkezni
Jut eszembe: float-tal hogyan lehet bash-ban számolni?
- A hozzászóláshoz be kell jelentkezni
Sajnos sehogy. Nem véletlenül szoktam (nem annyira) finoman utalni arra, hogy ksh-t kell használni. A ksh93-ban typeset -E f egy float tipusú f változót eredményez (hasonlóan a typeset -i i integerjéhez).
- A hozzászóláshoz be kell jelentkezni
Ja, ez is jó, de a Bash csak integer műveleteket tud. A Pythont meg nem azért ajánlottam, mert az a legjobb, én magam egy bloat lámanyelvnek tartom, de az is egy alkalmas eszköz erre, sokan nem tudják, és általában a legtöbb desktop rendszeren fent van, mert valami behúzza függőségnek, vagy mert alapból telepítve van. És ha már ott van, használható ilyenre, van hozzá egy csomó library (math, numpy, sympy, stb.), akkor miért ne használjuk valamire alapon lehet azzal is próbálkozni. De bármilyen fordított vagy interpretált nyelv jó erre, C, awk is, meg Bashon kívül PHP, Perl, Lua, lisp, nagyon webfetisisztáknak valami JS-es megoldás, vagy online is vannak erre webes számológépek, wolframalpha (ebben nem lehet mondjuk ismételni műveletet), online Python interpreter, stb.. Kinek mi áll kézre, ennek csak a fantázia szab határt, ha valaki nem ragad le windowsos mentalitással a hagyományos számológépappoknál.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
Nem minden disztrón, meg minimal installokon általában nem, de abban igazad van, hogy az egy még alapabb tool, a bc-n alapul a calc is. De ha valaki nagyon RPN-fetisiszta, akár a dc-vel is próbálkozhat. Rettenet sok ilyen alap alternatíva van erre, pár soros CLI toolok, scriptelhetők, interaktívan használhatók. Igaz ezek általában alapabb matekra valók, de fel lehet bennük építeni összetettebb függvényeket is.
A kolléga problémájára visszatérve, calc-ban 100 Enter, majd .+25 Enter, és innen historyból lehet hívogatni, de az is jó, amit a kolléga írt, for vagy while ciklus, és ott végigfuttatni. Ez a jó ezekben a megoldásokban, sokkal rugalmasabbak, mint egy számológép vagy táblázatkezelő.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
Én RPN fetisiszta vagyok.
Nagyságrendekkel közelebb áll az RPN az emberi gondolkodáshoz. Csak le kell győzni a kezdeti lustaságot, és felülkerekedni a rossz beidegződésen (algebraic notation).
Egy HP 50g-vel élem napjaim, ami ráadásul Reverse Polish Lisp-ben programozható. Ha egy ilyen gépet megtanulsz használni (kezdetben kemény a learning curve), egy idő után olyan, mintha az agyad kiterjesztése lenne. Meg se fogalmazod már szavakkal a problémát, csak csapkodod be a stack-re a változókat és hívod sorban az operátorokat. És annyira természetesen békés az egész folyamat. Csodálatos vele dolgozni.
bc-hez annyit tennék hozzá, hogy alapban integer aritmetikával számol. Ha float-ban kell az eredmény, az '-l' opcióval kell hívni. Ezt kezdetben sokan benézik, aztán van nagy csodálkozás.
- A hozzászóláshoz be kell jelentkezni
Te valamit keversz. A bc -l opciója betölt egy extra függvénykönyvtárat (ebben van néhány fv: sin / cos / exp / log / arctan / Bessel ), de minden további nélkül lehet floattal számolni. Ha az kell, akkor a pontosságát kell állítani:
$ bc
scale
0
7/3
2
17/28
0
scale=2
7/3
2.33
scale=22
17/28
.6071428571428571428571
- A hozzászóláshoz be kell jelentkezni
Így van, a scale is megy. De ha betöltődik a math library akkor a float lesz a default (valamekkora default scale-lel), így ha úgy tetszik, side effect-et használok. Egyszerűbb ennyit hozzátenni a parancssorhoz.
$ bc
5/2
2
quit$ bc -l
5/2
2.50000000000000000000
quit
- A hozzászóláshoz be kell jelentkezni
Nem tudom, lehet az én hibám, de nem bírom megszokni. Mindig fejben kell tartani, hogy milyen tagok vannak stackben, és hogy mikre fog vonatkozni a műveleti jel. Valahogy nagyon kitekert logikája van. Azt tudom, hogy a HP nagyon favorizálta.
bc -l trükköt jó tudni, elteszem későbbre.
“Windows 95/98: 32 bit extension and a graphical shell for a 16 bit patch to an 8 bit operating system originally coded for a 4 bit microprocessor, written by a 2 bit company that can't stand 1 bit of competition.”
- A hozzászóláshoz be kell jelentkezni
Pont hogy nem kitekert a logikája, hanem az emberi gondolkodást követi. Ha ráérzel, milyen sorrendben vágyik a stack-re az adat, onnantól villámgyors. A balról-jobbra logikát kell elfelejteni, végeredményben az agyunk sem így működik. Először szokatlan, azt aláírom. De ha erőt veszel magadon és elkezded használni, egyszer csak nagyon jó és gyors lesz. Nekem olyan, mintha csak gondolnom kéne valamire és máris bent van a gépben.
A stack kezelés már egyénfüggő. Valaki szeret kevés operandusra meghívni operátorokat, valaki először felvisz egy csomó mindent, aztán tolja be az operátorokat. A stack tetejének rotálását kell még megszokni (SWAP és ROT a HP terminológiában), mert erre néha szükség van, főleg amikor az ember még gyakorlatlan.
Ha keveset számolsz géppel, talán nem érdemes belevágni, le tudod élni az életedet e nélkül is.
Számomra a sok számoláshoz brutál változást hozott. Megtanultam a számológéppel gondolkodni. Mintha kapott volna az agyam egy ko-processzort. Az RPL programozhatóság pedig már csak hab a tortán. Valamint hpcalc.org-on van hozzá rengeteg solver és funkció, ami másoknak a munkájukhoz kellett. Speciálisabb területeken ez nagyon jól jön.
Hőn szeretett TI-89-emet fájó szívvel nyugdíjaztam. Mert be kellett látnom, hogy bármilyen jó gép is, sosem lesz olyan, mint a HP. Ráadásul a HP-n az SD slot megoldja a backupolás problémáját is.
- A hozzászóláshoz be kell jelentkezni
Ha már RPN:
forth-tal megbarátkoztam már (gyakorlásnak ott a gforth) - print itt a pont
(ciklusok, saját parancsok, ... oké)
dc jelölőkarakteres szintaktikájával még nem vagyunk barátok
- A hozzászóláshoz be kell jelentkezni