< Linux

Számológép

Szerző: Sallai András

Copyright © Sallai András, 2019

Licenc: CC Attribution-Share Alike 4.0 International

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 <Enter>-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)