bc

Поделись знанием:
Перейти к: навигация, поиск

bc (basic calculator) — интерактивный интерпретатор Си-подобного языка, позволяет выполнять вычисления с произвольно заданной точностью. Часто используется как калькулятор в командной строке UNIX-подобных операционных систем. Традиционная реализация bc была оболочкой к непосредственно калькулятору dc, принимавшему выражения в обратной польской записи, и выполняла преобразование из инфиксной записи в обратную польскую[1]. Современная версия [www.gnu.org/software/bc/ 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 E : возврат из функции значения выражения E
define a(b) : определяет символьное имя, именованную константу или функцию.
print <список> : вывод на экран

Функции математической библиотеки

При необходимости можно подключить к калькулятору библиотеку математических функций. Для этого надо указать в командной строке ключ -l

Примеры использования

 $ 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"

Примечания

  1. [www.catb.org/~esr/writings/taoup/html/ch07s02.html Taxonomy of Unix IPC Methods]


Ссылки

  • [www.opengroup.org/onlinepubs/009695399/utilities/bc.html Спецификация bc в Единой спецификации UNIX на сайте The Open Group] (англ.)
  • [www.gnu.org/software/bc/manual/html_mono/bc.html Страница справки man для GNU bc] (англ.)

Отрывок, характеризующий Bc

Когда княжна Марья взошла в комнату, князь Василий с сыном уже были в гостиной, разговаривая с маленькой княгиней и m lle Bourienne. Когда она вошла своей тяжелой походкой, ступая на пятки, мужчины и m lle Bourienne приподнялись, и маленькая княгиня, указывая на нее мужчинам, сказала: Voila Marie! [Вот Мари!] Княжна Марья видела всех и подробно видела. Она видела лицо князя Василья, на мгновенье серьезно остановившееся при виде княжны и тотчас же улыбнувшееся, и лицо маленькой княгини, читавшей с любопытством на лицах гостей впечатление, которое произведет на них Marie. Она видела и m lle Bourienne с ее лентой и красивым лицом и оживленным, как никогда, взглядом, устремленным на него; но она не могла видеть его, она видела только что то большое, яркое и прекрасное, подвинувшееся к ней, когда она вошла в комнату. Сначала к ней подошел князь Василий, и она поцеловала плешивую голову, наклонившуюся над ее рукою, и отвечала на его слова, что она, напротив, очень хорошо помнит его. Потом к ней подошел Анатоль. Она всё еще не видала его. Она только почувствовала нежную руку, твердо взявшую ее, и чуть дотронулась до белого лба, над которым были припомажены прекрасные русые волосы. Когда она взглянула на него, красота его поразила ее. Анатопь, заложив большой палец правой руки за застегнутую пуговицу мундира, с выгнутой вперед грудью, а назад – спиною, покачивая одной отставленной ногой и слегка склонив голову, молча, весело глядел на княжну, видимо совершенно о ней не думая. Анатоль был не находчив, не быстр и не красноречив в разговорах, но у него зато была драгоценная для света способность спокойствия и ничем не изменяемая уверенность. Замолчи при первом знакомстве несамоуверенный человек и выкажи сознание неприличности этого молчания и желание найти что нибудь, и будет нехорошо; но Анатоль молчал, покачивал ногой, весело наблюдая прическу княжны. Видно было, что он так спокойно мог молчать очень долго. «Ежели кому неловко это молчание, так разговаривайте, а мне не хочется», как будто говорил его вид. Кроме того в обращении с женщинами у Анатоля была та манера, которая более всего внушает в женщинах любопытство, страх и даже любовь, – манера презрительного сознания своего превосходства. Как будто он говорил им своим видом: «Знаю вас, знаю, да что с вами возиться? А уж вы бы рады!» Может быть, что он этого не думал, встречаясь с женщинами (и даже вероятно, что нет, потому что он вообще мало думал), но такой у него был вид и такая манера. Княжна почувствовала это и, как будто желая ему показать, что она и не смеет думать об том, чтобы занять его, обратилась к старому князю. Разговор шел общий и оживленный, благодаря голоску и губке с усиками, поднимавшейся над белыми зубами маленькой княгини. Она встретила князя Василья с тем приемом шуточки, который часто употребляется болтливо веселыми людьми и который состоит в том, что между человеком, с которым так обращаются, и собой предполагают какие то давно установившиеся шуточки и веселые, отчасти не всем известные, забавные воспоминания, тогда как никаких таких воспоминаний нет, как их и не было между маленькой княгиней и князем Васильем. Князь Василий охотно поддался этому тону; маленькая княгиня вовлекла в это воспоминание никогда не бывших смешных происшествий и Анатоля, которого она почти не знала. M lle Bourienne тоже разделяла эти общие воспоминания, и даже княжна Марья с удовольствием почувствовала и себя втянутою в это веселое воспоминание.