bc
bc — інтэрактыўны інтэрпрэтатар C-падобнай мовы, які дазваляе выконваць вылічэнні з адвольнай дакладнасцю. Нярэдка выкарыстоўваецца ў якасці калькулятара ў камандным радку UNIX-падобных сістэм. Традыцыйная рэалізацыя bc была абалонкай для калькулятара dc, які прымаў выразы ў адваротнай польскай натацыі, і выконвала пераўтварэнні з інфікснай формы ў адваротную польскую. Сучасная версія Gnu bc рэалізаваная як асобная праграма. Большасць аператараў bc паўтараюць аналагічныя аператары C.
Сінтаксіс каманды
правіць bc [ -hlwsqv ] [long-options] [ file … ]
-l : выклікае стандартную бібліятэку матэматычных функцый.
-w : выводзіць папярэджанне наконт Posix — пашырэнняў bc.
-s : ужывае мову Posix bc.
-q : не друкуе звычайнае вітанне bc.
-v : друкуе номер версіі працэсара і завяршае праграму.
-h : выклікае даведку па bc
Аператары і ключавыя словы
правіцьБольшасць аператараў bc
(акрамя ^
) паўтарае аналагічныя аператары мовы Сі.
+,-,*,/ : складанне, адніманне, множанне, дзяленне % : знаходжанне астачы ^ : падвышэнне да ступені sqrt(i) : здабыццё квадратнага кораня з ліка i<
,>
,<=
,>=
,!=
,==
: параўнанне = : прысвойванне ++, -- : інкрэмент, дэкрэмент +=, -=, *=, /=, ^=, %= : прысвойванне з вылічэннем scale = i : вызначаецца дакладнасць вылічэння, i – колькасць лічбаў пася коскі ibase = i : вызначаецца аснова сістэмы злічэння для уваходных даных, дзе i з’яўляецца базісам (2 <= i <= 16) obase = i : вызначаецца аснова сістэмы злічэння для выходных даных last : Вывад апошняга вылічанага значэння
if(E)[S1…] else [S2…] : аператар выбару, калі E сапраўдна, выконваецца S1, калі не, то S2 while(E)[S…] : аператар цыклу, выконвае аператары S, пакуль выраз E сапраўдны for(E1;E2;E3)[S…] : аператар цыклу break : спыняе выконванне for ды while continue : завяршае бягучую ітэрацыю цыкла (працягвае цыкл, пераходзячы да наступнай ітэрацыі) halt : спыняе работу bc return : вяртае код 0 пры выхадзе з функцый return i : вяртае код зменнай i пры выхадзе з функцый define a(b) : вызначае сімвальнае імя, іменаваную канстанту ці функцыю. print <спіс> : друкуе спіс на экран
Функцыі матэматычнай бібліятэкі
правіцьПры неабходнасці можна далучыць да калькулятара бібліятэку матэматычных функцый. Для гэтага трэба пазначыць у камандным радку ключ -l
- s(i) : сінус i, дзе i пазначана ў радыянах
- c(i) : косінус, дзе i пазначана ў радыянах
- a(i) : арктангенс, вяртае радыяны
- e(i) : экспанента
- l(i) : натуральный лагарыфм i
- j(n, x) : функцыя Бэссэля
Прыклады выкарыстання
правіцьЦыклічнае вылічэнне значэнняў функцыі.
$ bc -lq for(i=1;i<=3;i++) 8*e(i)+sqrt(i) 22.74625462767236188288 60.52666235381829686664 162.41634619307021922088
Вылічэнне Пі, 200 знакаў пасля кропкі.
$ bc -lq scale=200 4*a(1)
Вывад на экран табліцы памнажэння 10х10.
$bc -q for (i=1; i<=10; ++i){ for (j=1; j<=10; ++j) print i*j, "\t" print "\n" }