Jak používat bc kalkulačku pro výpočty

1085__130x130_linux-terminalDnes 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“.

Štítky , .Záložka pro permanentní odkaz.

Autor: archiv

články, jejichž autoři požádali o smazání účtu

Komentáře jsou uzavřeny.