mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк 

Златоуст.Ru

 

 

      BC(1)                                                     BC(1)

      НАЗВАНИЕ
              bc  - арифметический язык для вычислений с произвольной
              точностью

      СИНТАКСИС
              bc  [-c] [-l] [файл ...]

      ОПИСАНИЕ
              Bc - интерактивный  процессор  для  C-подобного  языка,
              позволяющий оперировать числами неограниченной  точнос-
              ти. Ввод производится из указанных файлов, а  затем  со
              стандартного ввода. На самом деле bc  является  препро-
              цессором к команде dc(1), которая вызывается  автомати-
              чески, если только не указана опция -c.

              Смысл опций:

              -c   Только компилировать.  Результат  направляется  на
                   стандартный вывод.

              -l   Подключение математической библиотеки для операций
                   произвольной точности.

              Ниже описывается синтаксис языка bc; L обозначает любую
              из букв [a-z], E - выражение, S - оператор.

              Комментарии
                   заключаются между /* и */.

              Переменные
                   простая переменная: L
                   элемент массива: L [ E ]
                   слова ibase, obase, scale.

              Другие операнды
                   числа произвольной длины, возможно со знаком и де-
                   сятичной точкой;
                   (E)
                   sqrt(E)    корень квадратный;
                   length(E)  количество значащих десятичных цифр;
                   scale(E)   количество десятичных  цифр  в  дробной
                              части;
                   L(E,...,E)

              Операции
                   +  -  *  /  %  ^  (% - остаток, ^ - степень);
                   ++  --  (префиксные  и  постфиксные, применяются к
                           переменным);
                   ==  <=  >=  !=  <>
                   =  =+  =-  =*  =/  =%  =^

              Операторы
                   E
                   {S;...;S}
                   if (E) S
                   while (E) S
                   for (E; E; E) S
                   пустой_оператор
                   break
                   quit

              Определения функций
                   define L (L,...,L) {
                      auto L,...,L
                      S;...;S
                      return (E)
                   }

              Функции, определенные в математической (-l) библиотеке:

                   s(x)    синус;
                   c(x)    косинус;
                   e(x)    экспонента;
                   l(x)    натуральный логарифм;
                   a(x)    арктангенс;
                   j(n,x)  функция Бесселя.

              Все аргументы функций передаются по значению.

              Значение оператора, являющегося выражением, печатается,
              если он не является оператором присваивания.  Операторы
              могут разделяться как точками с запятой, так и  перево-
              дами строк. Присваивание  переменной  scale  определяет
              точность выполнения операций.  Присваивание  переменным
              ibase и obase определяет систему счисления для ввода  и
              вывода соответственно.

              Одна и та же буква может быть одновременно использована
              как имя простой переменной, имя массива и имя  функции.
              Все переменные являются глобальными. Автоматические пе-
              ременные  (описанные  как auto) размещаются в стеке при
              входе в функцию. При использовании массивов в  качестве
              аргументов  функций  или  автоматических  переменных за
              именем массива должны следовать пустые квадратные скоб-
              ки.

      ПРИМЕР
              Выдать корень квадратный из целых чисел от 1 до 10.

              /*   Определяется точность вычислений  */
                   scale = 20
              /*   Определяется функция  */
                   define r(a) {
                      auto x, y
                      y = a + 1
                      x = y + 1
                      while (y < x) {
                         x = y
                         y = 0.5 * (x + a / x)
                      }
                      return (x)
                   }

              /*   Вычисляется значение  */
                   for ( i = 1; i <= 10; i++ ) r(i)
              /*   Выход  */
                   quit

              В  качестве  примеров  можно  использовать  определения
              стандартных функций, хранящиеся в файле /usr/lib/lib.b.

      ФАЙЛЫ
              /usr/lib/lib.b  Библиотека математических функций.
              /usr/bin/dc     Встроенный калькулятор.

      СМ. ТАКЖЕ
              dc(1).

      СЮРПРИЗЫ
              Не обрабатываются логические операции && и ||.

              Оператор for должен содержать все три выражения.

              Оператор quit интерпретируется при вводе, а не при  вы-
              полнении.



 

 

Бернадинер Марк Абрамович

Мое резюме

Компьютерная страничка

Ресурсы сети

Фотоальбом

 

 

 

mark.zlatoust.ru Послать письмо Webmaster-у Web-Master © Бернадинер Марк