Dnes si představíme malý nástroj s názvem bc, což je v podstatě kalkulačka, běžící v terminálu. Je pravda, že výpočty lze snadno provádět pomocí bash na příkazovém řádku, ale tento způsob není příliš intuitivní. bash funguje dobře pro jednoduché výpočty, ale v případě, že chcete provádět výpočty složitější, stává se z toho v bashi skutečná hádanka. A to je právě důvod, proč je bc lepší nástroj, který vám umožní provádět výpočty prostřednictvím příkazového řádku. V nástroji bc můžete dělat mnohem víc, než v bashi a i jeho syntaxe je mnohem jednodušší.
Jestli se nemýlím, nástroj bc je součástí všech linuxových distribucí, Linux Mint nevyjímaje, tudíž jej můžete použít kdykoliv, aniž byste museli cokoliv instalovat. Existují tři způsoby použití nástroje bc:
První z nich je spustit jej ze shellu, kde vložíte zadání a hned získáte výsledek. Stačí jen otevřít terminál, zadat
Příkaz terminálu: |
---|
bc |
a poté můžete počítat co hrdlo ráčí. Pro ukončení stačí zadat příkaz:
Příkaz terminálu: |
---|
quit |
Druhý způsob použít bc je pomocí STDIN. Tady je jednoduchý příklad:
Příkaz terminálu: |
---|
echo ‚1+2*3/4‘ | bc |
Poté, co stisknete Enter, tak v terminálu hned dostanete výsledek.
Třetí způsob, jak používat bc je použití souboru. Stačí zapsat svůj bc skript do souboru:
Příkaz terminálu: |
---|
bc /cesta/k/souboru |
Základní matematické operace v bc
V nástroji bc můžete používat všechny základní matematické operace. Pro základní funkce, jako je sčítání, odčítání, násobení, dělení … stačí otevřít bc jako shell a provádět své výpočty jako s jednoduchou kalkulačkou.
Povšimněte si jedné věci, a sice že ve výchozím nastavení je počet číslic za desetinnou čárkou ve výsledku vždy 0. Což znamená, že pokud se chcete vypočítat např. druhou odmocninu z 10 pomocí tohoto příkazu:
Příkaz terminálu: |
---|
echo ‚sqrt(10)‘ | bc |
Výsledkem bude „3“. Chcete-li získat přesnější výsledek, budete muset jako první změnit počet proměnných. Chcete-li tedy získat druhou odmocninu z 10 s 10 desetinnými místy, zadejte tento příkaz:
Příkaz terminálu: |
---|
echo ‚scale=10;sqrt(10)‘ | bc |
v tomto případě bude výsledek „3,1622776601“
Pokud používáte bc jako shellu, budete muset spustit příkaz s počtem proměnných ještě před provedením výpočtu.
ibase & obase
ibase a obase jsou speciální proměnné, které definují vstupy a výstupy. Obvykle používají pro převody čísel. Chcete-li například převést desítkové číslice na binární v shellu nástrojem bc, zadejte:
Příkazy terminálu: |
---|
ibase = 10 |
obase = 2 |
23 |
A dostanete výsledek „10011“
Chcete-li převést decimální číslo na hexadecimální pomocí metody STDIN, použijte příkaz:
Příkaz terminálu: |
---|
echo ‚ibase=10;obase=16;42‘ | bc |
A dostanete výsledek „2A“
Předdefinované matematické funkce
Nástroj bc má také několik základních matematických funkcí, jako je funkce sinus – s(x), cosinus – c(x), (x) pro arctangens, l(x) pro přirozený logaritmus, e(x) pro Eulerovu konstantu a J (n, x) pro Besselovy funkce. Avšak před prvním použitím těchto funkcí, musíte spustit potřebné knihovny (-l). Jinak dostanete chybný výsledek. Chcete-li tedy použít tyto matematické funkce, stačí místo bc
zadat bc -l
. Tyto matematické funkce vypočítají výsledky ihned po jejich volání.
Chcete-li například vypočítat sinus 3 (v radiánech), bude příkaz vypadat takto:
Příkaz terminálu: |
---|
echo ‚s(3)‘ | bc -l |
Definování vlastních funkcí
Stejně jako každý normální programovací jazyk, tak i nástroj bc umožňuje definovat vlastní funkce. Například v shellu bc, si můžete nadefinovat funkci, řekněme mul3(x), pro násobky 3 takto:
Příkaz terminálu: |
---|
define mul3(x) { return x*3 } |
Pak stačí jen zavolat funkci např. desetinásobku 3:
Příkaz terminálu: |
---|
mul3(10) |
A získáte výsledek „30“.
Ano GUI kalkulačka je jednoduchá a stačí jen klikat, ale proč nezkusit i něco jiného a snažit se přitom přijít na způsob, jak to vlastně funguje. Tento nástroj je určen hračičkům a šťouralům, není to nic pro „klikače“.