[[oktatas:linux|< Linux]]
====== Számológép ======
* **Szerző:** Sallai András
* Copyright (c) 2019, Sallai András
* Licenc: [[https://creativecommons.org/licenses/by-sa/4.0/|CC BY-SA 4.0]]
* Web: https://szit.hu
===== bc =====
A bc alap a parancssoros felületeken. A bc egy interaktív parancssor, amely várja
hogy begépeljük a kifejezéseinket, amelyet az kiértékel.
Indulás után ehhez hasonlót kell lássunk:
$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
A kifejezések utánt -t nyomva, kiértékeli azokat.
3+5
8
3*5
15
Az "+", "*" stb. operátorok előtt és utána tehetünk szóközt is.
==== Osztás ====
Az osztás a "/" jellel lehetséges. Beírom 8/4 kiírja az eredményt:
8/4
2
De egy 3/2 osztás esetén marad tört rész is ami alapból nem jelenik meg.
3/2
1
A kijelezett tizedesrészeket a scale változó beállításával szabályozhatjuk:
scale=2
3/2
1.50
scale=2
1/3
.33
==== Maradékképzés ====
Maradékképzéshez a % operátort használjuk. A scale=0 beállítás szükséges (ez az alapértelmezés),
mert másként nem egész osztást történik.
5%3
2
==== Hatványozás ====
2^3
==== Gyökvonás ====
sqrt(9)
==== Szabványos matematikai könyvtárak ====
A szabványos matematikai könyvtárakat a -l kapcsolóval használhatjuk.
bc -l
Így használhatók például trigonometriai függvények. 1° szinusza például:
s(1*3.14/180)
==== Szabványos bemenet ====
A bc képes használni a szabványos bemenetet is, így használható akár
scriptekben is.
echo "3+5" | bc
echo "scale=2; 1/3" | bc
Ha egy változóban szeretnénk eltárolni az értékét:
a=`echo "3+5" | bc`
vagy:
a=$(echo "3+5" | bc)
Ügyeljünk arra, hogy a bc tizedes pontokkal dolgozik tört számok esetén.
==== Formázott kimenet ====
Ha printf utasítást használjuk a bc kimenetét formázva is kiírathatjuk.
A tizedes vesszők és a tizedes pontok azonban gondot okozhatnak.
Amíg a bc tizedes ponttal dolgozik, a printf a magyar környezet esetén
tizedes vesszőt használ. A bc kimenetében így a tizedes pontot le kekll
cserélnünk tizedes vesszőre; ezt a tr parancs megoldja számunkra:
printf "%f\n" $(echo "scale=2; 5/4" | bc | tr . ,)
printf "%010.2f\n" $(echo "scale=2; 5/4" | bc | tr . ,)
printf "%08d\n" $(echo "ibase=16;obase=2;32" | bc)
00110010
printf "%08d\n", $(echo "ibase=16;obase=2;2B" | bc)
00101011
===== wcalc =====
==== Telepítés ====
apt install wcalc
==== Indítás ====
Indítás után a következő képernyő fogad minket:
$ wcalc
Enter an expression to evaluate, q to quit, or ? for help:
->
==== Egyszerű aritmetika ====
-> 3+5
= 8
->
==== Hatványozás ====
-> 2^4
= 16
->
==== Trigonometria ====
A wcalc fokban várja az értékeket, így nem szükséges átszámítani
radiánba azt.
-> sin(1)
= 0.0.174524
->
Használható függvények:
* sin cos tan cot asin acos atan acot
* sinh cosh tanh coth asinh acosh atanh acoth
==== Szabványos bemenet ====
Szabványos bemenet is használható:
echo 1/3 | wcalc
Az egyenlőség jel a kimenetben kikapcsolható:
printf "%.2f\n" $(echo 1/3 | wcalc -q | tr . ,)
===== concalc =====
Telepítés:
apt install concalc
Szabványos operátorok:
+ - * / ^ % sin cos tan
asin acos atan sinh cosh tanh
asinh acosh atanh
ln log & | ! && || ~ >> << x rnd sqrt curt root
integ d/dx
Négyzetgyök és köbgyök:
sqrt12 curt8
Trigonometriai függvények és logaritmus:
sin3.64+ln5
Más gyök:
9 a negyedik gyök alatt: 4root9
Differenciál számítások:
2x^2-3x+3 ha x=9:
d/dx(2x^2-3x+3,9)
Integrálás:
sinx+cosx integrálása -1 és 3.2 között:
integ(sinx+cosx,-1,3.2)
Állandók:
* e euler állandó
* pi PI értéke
==== Aritmetika ====
echo "3+5" | concalc
==== Trigonometria ====
echo "sin(1*pi/180)" | concalc
===== sc =====
Az sc valójában **táblázatkezelő**. vi szerű parancsokkal használható.
Azonnali számításokhoz:
sc -n
A függvények neve elé szüksges egy @ karakter:
=@sum(a0:a5)
A sorok számozása 0-val kezdődik.
Mentés:
P
Nagy p betűt kell írni, majd begépelni a mentés nevét.
Kilépés:
Ctrl+C
===== apcalc =====
Telepítés:
apt install apcalc
Indítás:
calc
Trigonometria:
sin(1*3.14/180)