- bc
-
bc (basic calculator) — интерактивный интерпретатор Си-подобного языка, позволяет выполнять вычисления с произвольно заданной точностью. Часто используется как калькулятор в командной строке UNIX-подобных операционных систем. Традиционная реализация bc была оболочкой к непосредственно калькулятору dc, принимавшему выражения в обратной польской записи, и выполняла преобразование из инфиксной записи в обратную польскую[1]. Современная версия GNU bc реализована в качестве отдельной программы.
Содержание
Синтаксис команды
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=0;i<5;i++) e(i) 1.00000000000000000000 2.71828182845904523536 7.38905609893065022723 20.08553692318766774092 54.59815003314423907811
$ bc -lq scale = 10 for(i=5;i<10;i++) j(i,1) .0002497577 .0000209383 .0000015023 .0000000942 .0000000052
$ bc -lq if ((2+2)==4)print "2+2 = 4" else " 2+2 !=4 " 2+2 = 4 if ((2+2)==5)print "2+2 = 5" else "2+2 != 5 " 2+2 != 5
$ echo 75*125 | bc 9375
Вычисление числа Пи:
$ bc -lq scale=100 4*a(1) 3.141592653589793238462643383279502884197169399375105820974944592307\ 8164062862089986280348253421170676
Примечания
Ссылки
- Спецификация bc в Единой спецификации UNIX на сайте The Open Group (англ.)
- Страница справки man для GNU bc (англ.)
Команды Unix POSIX.1-2008 Утилиты POSIX.1-2008 admin • alias • ar • asa • at • awk • basename • batch • bc • bg • c99 • cal • cat • cd • cflow • chgrp • chmod • chown • cksum • cmp • comm • command • compress • cp • crontab • csplit • ctags • cut • cxref • date • dd • delta • df • diff • dirname • du • echo • ed • env • ex • expand • expr • false • fc • fg • file • find • fold • fort77 • fuser • gencat • get • getconf • getopts • grep • hash • head • iconv • id • ipcrm • ipcs • jobs • join • kill • lex • link • ln • locale • localedef • logger • logname • lp • ls • m4 • mailx • make • man • mesg • mkdir • mkfifo • more • mv • newgrp • nice • nl • nm • nohup • od • paste • patch • pathchk • pax • pr • printf • prs • ps • pwd • qalter • qdel • qhold • qmove • qmsg • qrerun • qrls • qselect • qsig • qstat • qsub • read • renice • rm • rmdel • rmdir • sact • sccs • sed • sh • sleep • sort • split • strings • strip • stty • tabs • tail • talk • tee • test • time • touch • tput • tr • true • tsort • tty • type • ulimit • umask • unalias • uname • uncompress • unexpand • unget • uniq • unlink • uucp • uudecode • uuencode • uustat • uux • val • vi • wait • wc • what • who • write • xargs • yacc • zcat GNU Coreutils Файловые утилиты chgrp • chown • chmod • cp • dd • df • dir • dircolors • install • ln • ls • mkdir • mkfifo • mknod • mv • rm • rmdir • shred • sync • touch • vdir Текстовые утилиты cat • cksum • comm • csplit • cut • expand • fmt • fold • head • join • md5sum • nl • od • paste • ptx • pr • sha1sum • sort • split • sum • tac • tail • tr • tsort • unexpand • uniq • wc Shell-утилиты basename • chroot • date • dirname • du • echo • env • expr • factor • false • groups • hostid • id • link • logname • nice • nohup • pathchk • pinky • printenv • printf • pwd • readlink • seq • sleep • stat • stty • tee • test • true • tty • uname • unlink • users • who • whoami • yes Категории:- Утилиты UNIX
- Языки программирования
- POSIX
Wikimedia Foundation. 2010.