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