bc (basic calculator) — інтерактивний інтерпретатор Сі-подібної мови, що може виконувати обчислення із довільною заданою точністю. Часто використовується як калькулятор командного рядка у UNIX-подібних операційних системах. Традиційна реалізація bc була оболонкою до калькулятора dc, що виконував обчислення у польському інверсному записі. Вона виконувала перетворення з інфіксного запису в інверсний польський[1]. Сучасна версія GNU bc [Архівовано 24 квітня 2011 у Wayback Machine.] є окремою програмою.

Синтаксис ред.

 bc [ -hlwsqv ] [long-options] [  file  ]

 -l : викликає стандартну бібліотеку математичних функцій.
 -w : виводить попередження щодо Posix-розширень bc.
 -s : використовує мову Posix bc.
 -q : не виводить привітання bc.
 -v : вказує версію програми і завершує роботн.
 -h : викликає довідку

Оператори та ключові слова ред.

Більшість операторів bc (окрім ^) повторюють аналогічні у мові Сі.

  • +,-,*,/ : додавання, віднімання, множення, ділення
  • % : знаходження остачі від цілочисельного ділення
  • ^ : піднесення до степеня
  • sqrt(i) : видобування квадратного кореня від числа i
  • <, >, <=, >=, !=, == : порівняння
  • = : оператор присвоєння
  • ++, -- : інкремент, декремент
  • +=, -=, *=, /=, ^=, %= : обчислення з присвоєнням
  • scale = i : встановлення точності обчислень, де i – кількість цифр після коми
  • ibase = i : встановлення основи системи числення для вхідних даних, де i є базисом (2 <= i <= 16)
  • obase = i : встановлення основи системи числення для вихідних даних, де i є базисом (2 <= i <= 16)
  • last : виведення останнього обчисленого значення
  • if(E)[S1…] else [S2…] : оператор вибору (якщо твердження E істинне, виконується S1, інакше — S2)
  • while(E)[S…] : оператор циклу, що виконує S, доки твердження E істинне
  • for(E1;E2;E3)[S…] : оператор циклу
  • break : зупинка виконання циклу
  • continue : завершення поточної ітерації циклу
  • halt : завершує роботу bc
  • return : повертає код 0 при виході з функцій
  • return i : повертає код змінної i при виході з функції
  • define a(b) : визначає символьне ім'я, іменовану константу чи функцію
  • print <список> : вивід даних на екран

Функції математичної бібліотеки ред.

За необхідності, можна використати бібліотеку математичних функції.

Приклади використання ред.

 $ 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

Примітки ред.

Посилання ред.