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
<, >, <=, >=, !=, == : сравнение
= : присвaивание
++, -- : инкремент, декремент
+=, -=, *=, /=, ^=, %= : присваивание с вычислением
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

Примеры использования[править | править код]

[vpupkin@hostname ~]$ bc -lq
for(i=0;i<5;i++) e(i) 
1.00000000000000000000
2.71828182845904523536
7.38905609893065022723
20.08553692318766774092
54.59815003314423907811
[vpupkin@hostname ~]$ bc -lq
scale = 10
for(i=5;i<10;i++) j(i,1)
.0002497577
.0000209383
.0000015023
.0000000942
.0000000052
[vpupkin@hostname ~]$ bc -lq
if ((2+2)==4)print "2+2 = 4" else " 2+2 !=4 "
2+2 = 4
if ((2+2)==5)print "2+2 = 4" else "2+2 != 4 "
2+2 != 4

Вычисление числа Пи:

[vpupkin@hostname ~]$ bc -lq
scale=100
4*a(1)
3.141592653589793238462643383279502884197169399375105820974944592307\
8164062862089986280348253421170676

Примечания[править | править код]