Калькулятор через терминал линукс

GNU bc — калькулятор командной строки для Linux

Оригинал: What is a good command-line calculator on Linux
Автор: Dan Nanni
Дата публикации: 21 октября 2014 года
Перевод: А. Кривошей
Дата перевода: октябрь 2015 г.

Любой современный дистрибутив Linux включает графический калькулятор. С другой стороны, если вашим обычным рабочим окружением является терминал, то вы скорее будете искать себе калькулятор, который бы работал в командной строке. В этой категории программ, по моему мнению, единоличным лидером является GNU bc (сокращение от «basic calculator»). Это очень мощная и полезная утилита.

Еще до наступления эры GNU, bc исторически был известным языком для вычислений, первая реализация которого относится к старым добрым временам Unix 70-х годов. Изначально bc был больше известен в качестве языка программирования с синтаксисом, похожим на C. Со временем оригинальный bc эволюционировал в POSIX bc, а затем и в GNU bc.

Возможности GNU bc

Сегодняшний GNU bc является результатом многочисленных усовершенствований предыдущих реализаций, и сегодня он представляет собой стандарт для всех главных дистрибутивов GNU/Linux. bc поддерживает стандартные арифметические операции с числами произвольной точности и различных систем счисления (двоичные, десятеричные, шестнадцатеричные).

Если вы знакомы с языком C, вы увидите, что в bc используются те же или похожие математические операторы. Среди поддерживаемых операций арифметические (+,-,*,/,%,++,—), сравнения ( ,==,!=, =), логические (!,&&,||), побитовые (&,|,^,

, >), составного присваивания (+=,-=,*=,/=,%=,&=,|=,^=,&&=,||=, >=). bc имеет много полезных встроенных функций, таких как извлечение квадратного корня, тригонометрические и обратные тригонометрические функции, логарифмы, экспонента и так далее.

Использование GNU bc

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

За исключением случая запуска ранее написанного скрипта, обычно bc используется в интерактивном режиме, где каждая строка, содержащая выражение или оператор, интерпретируется и выполняется на лету. Чтобы перейти в интерактивную сессию bc, введите приведенную ниже команду. Для выхода из сессии введите «quit» и нажмите Enter.

Во всех приведенных в данном руководстве примерах подразумевается, что они вводятся внутри сессии bc.

Типы выражений

Для расчета арифметического выражения просто введите выражение и нажмите Enter. Если хотите, можете сохранить промежуточный вариант в переменной, чтобы затем использовать его в других выражениях.

В пределах одной сессии bc сохраняет всю историю введенных строк. Для возврата к предыдущим выражениям используется курсорная клавиша со стрелкой вверх. Если вы хотите ограничить число строк, сохраняемых в истории, присвойте нужное вам число переменной по имени history. По умолчанию ее значение -1, что соответствует «unlimited».

Переключение между системами счисления ввода/вывода

Часто может потребоваться вводить числа и выводить на экран результаты в двоичном или шестнадцатеричном формате. Для этого bc позволяет определить систему счисления для ввода и вывода. Они хранятся в переменных ibase и obase соответственно. По умолчанию значение этих специальных переменных равно 10, а диапазон допустимых значений от 2 до 16 (или значения переменной окружения BC_BASE_MAX в случае obase). Все, что вам нужно для смены системы счисления — изменить значения ibase и obase. Например, ниже пример суммирования двух шестнадцатеричных/двоичных чисел:

Читайте также:  Код ошибки 80073712 центра обновления windows как исправить

Обратите внимание, что я задал сначала obase=16, затем ibase=16, а не наоборот. Если бы задал сначала ibase=16, то выражение obase=16 интерпретировалось бы уже в шестнадцатеричном формате (то есть мы присваивали бы obase значение 22 в десятеричной форме).

Точность

В bc точность чисел хранится в специальной переменной под названием scale (количество десятичных цифр после точки). По умолчанию ее значение равно 0, что соответствует хранению всех цифр результата. Вы можете изменить точность, присвоив перменной scale соответствующее значение.

Использование встроенных функций

Помимо простых арифметических операций GNU bc предлагает большой набор продвинутых математических функций, как встроенных, так и находящихся во внешней математической библиотеке. Для использования этих функций запустите bc с опцией «-l».
Ниже проиллюстрированы некоторые из этих встроенных функций.

Квадратный корень из N:

Синус от X (X в радианах):

Косинус от X (X в радианах):

Арктангенс от X (возвращаемое значение в радианах):

Натуральный логарифм от X:

Экспонента от X:

Другие возможности языка

GNU bc поддерживает простые операторы (например присваивание значения переменной, break, return), составные операторы (if, while, for loop), и функции, определенные пользователем. Я не буду детально описывать эти возможности, но вы легко можете научиться пользоваться ними из официального руководства. Ниже пример определения очень простой функции:

Неинтерактивное использование GNU bc

До сих пор мы использовали bc в интерактивном режиме. Однако достаточно часто он используется неинтерактивно, в скриптах оболочки. В этом случае вы можете направить ввод на bc с помощью команды echo, например:

В завершение можно сказать, что GNU bc — это очень мощный гибкий калькулятор командной строки, который соответствует самым высоким требованиям. Предустановленный во всех современных дистрибутивах Linux, bc может значительно упростить ваши задачи, не выходя из терминала.

Источник

Как использовать GNU bc (базовый калькулятор) в Linux

bc (Basic Calculator) – это утилита командной строки, которая предлагает все, что вы ожидаете от простого научного или финансового калькулятора.

Это инструмент, который поддерживает произвольные числа точности с интерактивным выполнением операторов и имеет синтаксис, аналогичный синтаксису языка программирования C.

Его можно использовать обычно как математический язык сценариев или как интерактивную математическую оболочку, как описано в этой статье.

Если у вас нет bc в вашей системе, вы можете установить его с помощью диспетчера пакетов для вашего дистрибутива, как показано ниже:

Чтобы открыть bc в интерактивном режиме, введите команду bc и просто начните вычислять свои выражения.

Следует отметить, что, хотя bc может работать с произвольной точностью, на самом деле он по умолчанию принимает нулевые цифры после десятичной точки, например, выражение 3/5 приводит к 0, как показано на следующем выводе.

Вы можете использовать флаг -l для установки масштаба по умолчанию (цифры после десятичной точки) до 20 и также определяет стандартную математическую библиотеку.

Теперь запустите предыдущее выражение еще раз.

Читайте также:  Как изменить размер шрифта mac os

В качестве альтернативы вы можете указать масштаб после открытия bc, как показано.

Вы также можете использовать следующую команду для общих оболочек, например, в bash, ksh, csh, для передачи аргументов на bc, как показано ниже:

Как использовать bc неинтекративно:

Чтобы точно обрабатывать язык POSIX bc, используйте флаг -s и включите предупреждения для расширений для POSIX bc, используйте параметр -w, как показано ниже:

Источник

Терминал Linux в качестве калькулятора

Если вы предпочитаете терминал Linux графическому интерфейсом и иногда вам надо сделать математические вычисления, тогда у меня для вас хорошая новость, вам для этого не нужно использовать приложение калькулятор. Вы можете выполнять свои расчеты, используя терминал.

В этой статье я покажу вам, как можно использовать терминал Linux в качестве калькулятора. Данная инструкция подойдет для все дистрибутивов Linux.

Расчеты с GNU bc

Элемент bc в GNU bc означает «базовый калькулятор». Сама программа bc появилась в Unix, в далеких 1970-х годах. GNU bc — это более современная, улучшенная версия, которую вы можете найти в своей системе.

Если у вас нет GNU bc, используйте менеджер пакетов, который используется в вашем дистрибутиве, — пакет просто называется bc . После установки, чтобы запустить его, откройте терминал и введите bc . Введите quit для выхода из программы, как только вы закончите.

Для расчета используются символы плюс, минус, косая черта и звездочка. С первыми двумя (плюс и минус) все ясно, косая черта используется для деления, а звездочка — для умножения.

Вы также можете использовать скобки, переменные, массивы, алгебраические выражения и т. д. Подробную информацип найдете в руководстве GNU bc.

Расчеты с Calc

Альтернатива bc является calc . Еще один калькулятор для работы в терминале Linux. Его история как и bc начинается с Unix. Установочный пакет называется apcalc в системах на основе Ubuntu и Debian, в других дистрибутивах его можно найти под именем calc .

Чтобы открыть его, просто введите в терминале calc и нажмите Enter. Как и bc, вам нужно использовать типичные операторы. Например, 5*5 для пяти, умноженных на пять.

После ввода данных нажмите Enter. Ответ появится ниже. Когда вы закончите, введите quit и нажмите Enter.

Прямое использование команд терминала (Echo и Expr)

Вам не нужны никакие дополнительные программы или пакеты для выполнения основных математических вычислений с использованием терминала Linux. Типичные оболочки bash позволяют вам самостоятельно выполнять базовые вычисления с использованием echo . Вы можете сделать это, например, если вы планируете использовать математику как часть сценариев bash.

Вы также можете использовать expr, инструмент, который поставляется с coreutils и встречается почти во всех дистрибутивах на базе Linux и Unix. Expr можно использовать в скриптах bash, как и в случае с echo.

Чтобы использовать echo, введите echo $ ((2*2)) , где 2*2 — выбранный вами расчет, в терминал. Нажмите Enter и появится ответ.

Чтобы использовать expr, введите expr и ваши вычисления. Опять же, это может справиться только с простыми математическими вычислениями, поэтому здесь нет тригонометрии.

Например, expr 33 \* 2 умножит 33 на 2. Обратная косая черта перед звездочкой здесь требуется для умножения.

Echo и expr можно использовать, если вы хотите выполнять только базовые математические вычисления. Если вам нужно что-то более продвинутое, выберите следующий метод.

Читайте также:  Стандартным приложением windows не являются корзина блокнот проводник

Расчеты с Qalc

Если вы предпочитаете что-то с несколькими дополнительными функциями, такими как конвертация валюты, Qalc — это инструмент, который вам понадобится. Это двоюродный брат Qalculate, кроссплатформенный калькулятор с графическим интерфейсом.

Используйте менеджер вашего дистрибутива для установки пакета qalc . Запустите его, набрав в терминале qalc и нажав Enter.

Это наиболее функциональный и удобный калькулятор для терминала Linux. Он также умеет запоминать ваши прошлые вычесления.

Если вы хотите выполнить конвертацию валюты, вам нужно запустить qalc, а затем набрать exrates , чтобы сначала обновить курсы обмена.

Математика в Linux

Математика — не самая простая вещь для освоения, но вы можете избавиться от хлопот быстрых математических вычислений в Linux с помощью терминала. Такие инструменты, как echo и expr, а также простой GNU bc, помогут сделать математические вычесления в консоли Linux.

Напишите в коментариях, какой инструмент вычисления в Linux используете вы.

Источник

Пишем собственный калькулятор в виде скрипта командной оболочки

Скрипты оболочки — это основа мощи Linux. С их помощью мы можем делать самые разные вещи. Если вы до этого никогда не имели дело со скриптами, и первое, что вы увидели — это руководство, я рекомендую вам сначала немного изучить основы скриптов, чтобы понимать, о чем будет идти речь. В этом руководстве мы собираемся написать простой калькулятор, который будет выполнять простые математические операции: сложение, вычитание, умножение и деление. Для этого мы задействуем оператор операторы select и case, а также команду expr. Оператор select поможет нам создать меню. Помните, что оператор select работает только в командной оболочке Korn(ksh). Оператор case поможет нам создать структуру скрипта, а команда expr обеспечит выполнение математических вычислений.

Создание меню

Для начала создадим меню, используя оператор select.

Здесь создается меню, и пользователя будут запрашивать, какую операцию он хочет выполнить: сложение, вычитание, умножение или деление. Выглядеть это будет следующим образом:

Теперь добавим блок кода между do и done, использующий оператор case для реализации полнофункционального калькулятора.

Готовый калькулятор:

Мы создали меню, а теперь добавим операции сложения, вычитания, умножения и деления. После того, как пользователь посчитает то, что он хотел, его необходимо спросить, не хочет ли он еще что-нибудь вычислить. Если хочет, мы должны вернуться к началу. Для этого мы используем цикл while.

Мы использовали цикл while, создали меню, выполнили некоторые математические вычисления. В коде умножения:

используются кавычки («), так как * является ключевым словом в скриптах оболочки, и она не воспринимает * как знак умножения. Таким образом, чтобы дать понять скрипту, что мы используем * для умножения, используются кавычки.

Аналогично для кода деления:

Обратите внимание, что скрипт оболочки игнорирует дробную часть при делении. Например, если мы разделим 10 на 8, ответ будет 1, а остальное будет отброшено. Но, так как мы хотим видеть полный ответ, мы используем для этого утилиту bc. Информацию о ней можно найти на man-странице. Значение scale=2 показывает, что мы хотим получить ответ с точностью до второго знака после запятой. Теперь наш калькулятор выглядит так:

Вы также можете добавить в калькулятор возведение в степень или вычисления по модулю. Скопируйте код и поиграйте с ним.

Источник

Оцените статью