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)
</blockquote>
Вывад на экран табліцы памнажэння 10х10.
$bc -q
   for (i=1; i<=10; ++i){
      for (j=1; j<=10; ++j)
         print i*j, "\t"
      print "\n"
   }
Катэгорыя:Unix
Катэгорыя:Праграмнае забеспячэнне