Расширения Writer. Мини‑Калькулятор (MiniCalc.oxt)

From Wiki
Revision as of 15:09, 1 November 2011 by Sancho (talk | contribs) (Промежуточное сохранение)
Jump to navigationJump to search


Мини‑Калькулятор
Тип

 Расширение
Разработчик

 Н. Е. Гарбуз. Инфра-Ресурс
Язык программирования

 StarBASIC
Модуль

 Writer
ОС

 независимо
Последняя версия

 1.0.4
Лицензия

 GNU LGPL v. 3.0
Сайт

 i-rs.ru

Описание

«Мини‑Калькулятор» создан для вставки в документ результата, рассчитанного по формуле. Работает без Java в пакете InfraOffice.pro.



«Мини-Калькулятор» может быть использован для арифметических, финансовых и инженерных расчётов, предоставляя пользователю соответствующие интерфейсы и системы ввода данных.


Новое в «Мини‑Калькуляторе» 1.0.4

  1. Добавлен «научный» калькулятор, позволяющий выполнять три вида вычислений:
    1. «Логические» - оптимизация логических выражений;
    2. «Алгебраический» — инженерные расчёты с тригонометрией и логарифмами:
    3. «Бинарный» — битовые операции с целыми числами.
  2. Добавлена настройка шрифтов дисплея;


Установка

Установка в первый раз

Установка «Мини-Калькулятора» производится штатными средствами через меню Сервис → Управление расширениями или при помощи утилиты командной строки unopkg:

  • установка для одного пользователя:
echo yes | unopkg add -f MiniCalc.oxt
  • установка для всех пользователей:
echo yes | unopkg add –-shared -f MiniCalc.oxt


Обновление с версии 0.9.x

При обновлении «Мини-Калькулятора» с версии 0.9.x в пакете InfraOffice.pro 3 возникает ошибка несовместимости кеша параметров расширения. Эта ошибка проявляется в том, что последнее состояние и настройки не восстанавливаются между сессиями.


Для устранения этой ошибки необходимо и достаточно перезагрузить InfraOffice.pro. Для этого надо просто закрыть все окна InfraOffice.pro, включая QuickStart, а затем открыть снова.


Работа с «Мини‑Калькулятором»

Вызов расширения

Рис. 1: Режим ввода

«Мини-Калькулятор» вызывается из модуля InfraOffice.pro Writer через меню Правка → Мини-Калькулятор или соответствующей кнопкой на главной панели инструментов.


Чтобы закрыть окно «Мини-Калькулятора» нажмите клавишу  Esc , или щёлкните мышкой по кнопке  X  - закрыть окно.


Главное окно

Для арифметических, финансовых и инженерных расчётов «Мини-Калькулятор» предоставляет пользователю соответствующие интерфейсы и системы ввода данных. Переключение между режимами расчётов и и интерфейсов ввода служит блок кнопок в левой части окна под иконкой «Мини-Калькулятора» - Рис. 1.


Кнопка  простой  - вызов арифметического калькулятора;


Кнопка  финансовый  - вызов финансового калькулятора;


Кнопка  научный  - вызов калькулятора для инженерных расчётов;


Кнопка  Дисплей…  служит для точной настройки шрифта экрана.


Точная настройка шрифтов

Видимые размеры окна «Мини-Калькулятора» и его элементов зависят от установленных в системе шрифтов, разрешения экрана и ряда других причин. При этом пропорциональное отношение текста и соответствующих элементов управления, например, кнопок подстраивается автоматически операционной системой.


Рис. 2: Точная настройка шрифтов

Грубая, пропорциональная подстройка отношения текста и размера дисплея производится автоматически при старте «Мини-Калькулятора». Если качество автоматического подбора шрифта неудовлетворительно, пользователь может подстроить этот параметр более точно, нажатием клавиши  Дисплей…  вызвав соответствующее окно настройки - Рис. 2


Изменение параметров окна настройки шрифтов отражается изменением отображения дисплея «Мини-Калькулятора».


Нажатие кнопки  Сохранить  или клавиши  ↵ Enter / Return  приводит к тому, что выставленные параметры будут хранится между сессиями вызова «Мини-Калькулятора».


Нажатие кнопки  X  (закрыть) на верхней панели окна или клавиши  Esc  сохраняет пользовательские настройки только до конца сеанса.


Окно «О программе»

Рис. 3: Информационное окно "О программе"

Окно о программе содержит информацию о версии приложения и среды исполнения - Рис. 3.


Для вызова этого окна необходимо и достаточно щёлкнуть мышкой по значку «Мини‑Калькулятор» - Рис. 1.


Чтобы закрыть информационное окно «О программе» достаточно щёлкнуть мышкой по значку «Мини‑Калькулятора», или логотипу «Инфра‑Ресурса», или нажать клавишу  Esc .


«Мини-Калькулятор» [простой]

Рис. 4: «Мини-Калькулятор» [простой]

Это самый простой интерфейс «Мини-Калькулятора», который наиболее удобен для простейших арифметических расчётов - Рис. 4.


Архитектура, метод ввода

Простой «Мини-Калькулятор» основан на методе разложения формулы в древовидную структуру, сбалансированную по критерию приоритета вычислений.


Метод ввода — классическая арифметическая формула. Длина формулы (число членов) и вложенность скобок ограничены разумной достаточностью и размерами дисплея.


Кнопка  C  — сброс результата ошибочного ввода.


Выпадающий список ниже — точность расчёта, измеренная в десятичных знаках после запятой. Значение списка  F  — автоматическая точность.


Ввод данных с клавиатуры

Клавиши клавиатуры, в основном, имеют строгое соответствие с клавишами калькулятора.


Кнопка  =  реагирует на клавиши  ↵ Enter ,  Returm ,  = ;


Кнопка  C  реагирует на клавиши  Delete ,  ← Backspace ,  C ;


Кнопка  C  удаляет ошибочно введённые данные с конца по одному символу. Для удаления формулы сразу, нажмите одновременно клавишу  Ctrl .


Вставка результата в документ

Для вставки формулы и результата её расчёта в документ служат комбинации клавиш:


 Ctrl  +  ↵ Enter  — при вводе с клавиатуры;


 Ctrl + Mouse  — при щелчке мышкой по клавише  = .


Операторы и приоритеты

Операторы в формуле выполняются согласно правилам арифметики слева на права, с учётом приоритетов - Таблица 1.


Операторы с одинаковым приоритетом выполняются последовательно с лева на право:

1+2-3 = 3-3 = 0


Если последующий оператор выше по приоритету, то он выполняется первым:

1+2*3 = 7


Для изменения приоритета выполнения операторов применяются скобки:

(1+2)*3 = 9


Таблица 1: Операторы и приоритеты

Оператор Действие Пример Приоритет
() Повышение приоритета
2*(3+4) = 14
5
- Унарный минус
-(2^-2) = -0.25
4
^ Возведение в степень
3^2 = 9
3
× Умножение
2*3 = 6
2
÷ Деление
12/3 = 4
2
\ Остаток деления
8\3 = 2
2
+ Сложение
6+7 = 13
1
- Вычитание
6-7 = -1
1


Вычисление корней

«Мини-Калькулятор» [простой] позволяет выполнять все арифметические действия, включая извлечение корней любой степени.


Для того, чтобы извлечь корень из числа, необходимо и достаточно вспомнить, что извлечение корня, это возведение в степень, обратную единице. Таким образом, извлечение квадратного корня — это возведение в степень ½ или 0.5.


Отсутствие клавиши квадратный корень расширяет возможности «Мини-Калькулятора», позволяя извлекать любые корни из любых чисел:

81^(1/4) = 3 27^(1/3) = 3 9^(1/2) = 3


Примеры выше демонстрируют извлечение корней 4-й, 3-й и 2-й степени (гиперкубический, кубический и квадратный). Операция деления единицы на коренную степень вынесена в скобки, т.к. приоритет оператора деления ниже приоритета оператора возведения в степень.


Для сокращения длины формулы можно использовать десятичные дроби вместо обычных:

4^.5 = 2 3125^.2 = 5


Последовательные вычисления

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


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


Пример. Вычислите формулу:

-3+4*2^(3*(-4-2))-2+(2+3)*3-5^0.3


Разбиваем формулу на две части, связанных оператором вычитания:

-3+4*2^(3*(-4-2)) - 2+(2+3)*3-5^0.3

Вычисляем первую и вторую части последовательно:

-3+4*2^(3*(-4-2)) = -2.99998474121094 -2.99998474121094-2+(2+3)*3-5^0.3 = 8.3793586620963


«Мини-Калькулятор» [финансовый]

Рис. 5: «Мини-Калькулятор» [финансовый]

Это интерфейс «Мини-Калькулятора» создан для удобства финансовых расчётов и повторяет логику и функциональность офисных калькуляторов - Рис. 5.


Архитектура, метод ввода

Финансовый «Мини-Калькулятор» построен на простой 4-х регистровой схеме, управляемой конечным автоматом, что позволило реализовать логику работы простого офисного калькулятора, привычного большинству пользователей.


Список регистров:

  • X — аккумулятор. Содержание всегда отображается на экране.
  • Y — накопитель. Служит для хранения последнего операнда в циклических расчётах.
  • M — память. Служит для временного хранения промежуточных результатов вычислений.
  • T — налог. Служит для хранения ставки при расчёте налогов.


Значения во всех регистрах хранятся только в течении сессии. Все регистры обновляются после закрытия окна калькулятора или смены режима (Простой-Финансовый-Научный).


Для упрощения понимания приёмов работы с Финансовым «Мини-Калькулятором», далее будут рассмотрены основные элементы и примеры вычислений.


Индикатор состояния

Индикатор состояния находится между кнопкой  Дисплей…  и кнопками операций с налоговой ставкой. Индикатор состояния отражает:

  • Установленную налоговую ставку, измеренную в процентах;
  • Знак M*, если регистр памяти отличен от 0.


Если налоговая ставка не установлена и регистр памяти обнулён, индикатор состояния пуст.

Назначение клавиш

Кнопки финансового «Мини-Калькулятора» разбиты для удобства по группам - Таблица 2.


Таблица 2: назначение клавиш и их соответствие с клавиатурой

Кнопка Действие Ввод с клавиатуры
Управление вводом
 C 
Очистка регистра/регистров
 C ;  ← Backspace ;  Del 
 F 
Точность счёта в десятичных знаках после запятой
 - 
 {{{1}}} 
Окончание ввода, вычисление результата
 {{{1}}} ;  ↵ Enter ;  Returm 
Поразрядный ввод чисел
 0  -  9 
Ввод цифр
 0  -  9 
 00  ]; [ 000 ]
Ввод серий из 2-х и 3-х нулей
 Ctrl  +  0 ;  ⇧ Shift  +  0 
 . 
Разделитель дробной части
 , ;  . 
[ -\+ ] Смена знака числа
 ⇧ Shift  +  - 
Арифметические операции
 + 
Операция сложения
 + 
 - 
Операция вычитания
 - 
 × 
Операция умножение
 × 
 ÷ 
Операция деления
 ÷ 
 % 
Операция извлечение доли в процентах
 % 
 √ 
Извлечение квадратного корня
 \ 
Операции с регистром памяти
 MC 
Очистка регистра памяти
 Crtl  +  ⇧ Shift  +  C 
 M^ 
Извлечение числа из регистра на дисплей
 Crtl  +  ⇧ Shift  +  ^ 
 M+ 
Прибавление к регистру значения на дисплее
 Crtl  +  ⇧ Shift  +  + 
 M- 
Вычитание из регистра значения на дисплее
 Crtl  +  ⇧ Shift  +  - 
Операции с налоговой ставкой
 TAX % 
Установка налоговой ставки
 Alt  +  ⇧ Shift  +  % 
 TAX + 
Прибавление налоговой ставки
 Alt  +  ⇧ Shift  +  + 
 TAX - 
Вычитание налоговой ставки
 Alt  +  ⇧ Shift  +  - 


Примеры вычислений

Операции в Финансовом «Мини-Калькуляторе» просты, что демонстрирует нижеследующая таблица - Таблица 3.


Таблица 3: Примеры вычислений

Пример Клавиши Экран
Корректировка ошибочного ввода
2 + 3 = 5
 2   +   2   C   3   {{{1}}} 
5
7 × 9 = 63
 7   ÷   ×   9   {{{1}}} 
63
Вычисления долей (проценты)
300 × 27% = 81
 3  0  0   ×   2  7   % 
81
11.2 ÷ 56 * 100% = 20%
 1  1  .  0  2   ÷   5  6   % 
20
300 + (300 × 40%) = 420
 3  0  0   +   4  0   % 
420
300 - (300 × 40%) = 180
 3  0  0   -   4  0   % 
180
Последовательные вычисления
6 + 4 + 7.5 = 17.5
 6   +   4   +   7  .  5   {{{1}}} 
17.5
5 × 3 ÷ 0.2 = 75
 5   ×   3   ÷   .  2   {{{1}}} 
75
8 ÷ 4 × 3.7 + 9 = 16.4
 8   ÷   4   x   3  .  7   +   9   {{{1}}} 
16.4
Степени и корни
5 ^ 4 = 625
 5   x   {{{1}}}   {{{1}}}   {{{1}}} 
625
√169 = 13
 1  6  9   √ 
13
√2 + √3 = 3.14
 {{{1}}}   2   √   +   3   √   {{{1}}} 
3.14
Операции с регистром памяти
√(3^2 + 4^2) = 5
 MC   3   x   {{{1}}}   M+   4   x   {{{1}}}   +   M^   √ 
5
Операции с налоговой ставкой
ТАX = 18%
 1  8   TAX%   {{{1}}} 
-
100 - TAX(18%) = 84.75
 1  0  0   TAX- 
84.75
100 + TAX(18%) = 118.00
 1  0  0   TAX+ 
118.00


Фискальная запись

Последовательные вычисления на Финансовом «Мини-Калькуляторе» несут риск накопления ошибки в силу опечатки или иного человеческого фактора.


Для проверки вычислений Финансовый «Мини-Калькулятор» предоставляет возможность вести фискальную запись последовательности вычислений.


Для активации этого режима достаточно держать нажатой клавишу [ Ctrl ] при нажатии клавиш [ Enter ], [ Return ], [ = ], [ % ], [ √ ].


Фискальная запись отражает все вычислительные операции последовательно в открытом, активном документе Writer, начиная с текущей позиции курсора:


√2 = 1.41√3 = 1.731.41 + 1.73 = 3.145 + 6 = 11.0011.00 * 4 = 44.005 * 5 = 25.0025.00 * 5 = 125.00125.00 * 5 = 625.00100 / (1 + 18.00 / 100.) = 84.75100 * (1 + 18.00 / 100.) = 118.00500 + 500 * 30 / 100. = 650.0012 / 60 * 100. = 20.00


«Мини-Калькулятор» [научный]

Рис. 6: «Мини-Калькулятор» [Научный]

Научный «Мини-Калькулятор» создан для пользователей с высшем техническим образованием, которые понимают его функциональность и умеют её применять для решения практических инженерных задач - Рис. 6.


Научный «Мини-Калькулятор» будет полезен:

  • в инженерных расчётах;
  • в решении логических уравнений;
  • в побитовых двоичных операциях.


Архитектура, метод ввода

Научный «Мини-Калькулятор» использует различные схемы ввода/вывода и управления, зависимые от режима работы.


Индикатор состояния

Рис. 7: Индикатор состояния

Индикатор состояния Научного «Мини-Калькулятора» выполнен в виде ряда кнопок, расположенных ниже дисплея - Рис. 7.


Режим работы Научного «Мини-Калькулятора» индицируется состоянием кнопок. Другие кнопки на панели калькулятора могут быть в активном или пассивном состоянии в зависимости от режима работы «Мини-Калькулятора» - Таблица 4.


Таблица 4: Индикатор режимов «Мини-Калькулятора» [научный]

Кнопка/Индикатор Режим Комментарий
Основные режимы работы
[ Bool ]
основной
Логические вычисления
[ Dec ]
основной
Инженерный расчёты
[ Hex ]
основной
Битовые операции с шестнадцатеричными числами
[ Oct ]
основной
Битовые операции с восьмеричными числами
[ Bin ]
основной
Битовые операции с двоичными числами
Вспомогательные режимы работы [ Dec ]
[ Inv ]
[ Dec ]
Ввод обратных гипер/тригонометрическийх функций
[ Hyp ]
[ Dec ]
Ввод гиперболических функций
[ Rad ]
[ Dec ]
Ввод угловых мер в радианах
[ Deg ]
[ Dec ]
Ввод угловых мер в градусах
[ F ]
[ Dec ]
Точность отображения результата
Вспомогательные режимы работы [ Hex ], [ Oct], [ Bin ]
[ 8 ]
[Hex ], [ Oct], [ Bin ]
Размерность слова - 8 бит
[ 16 ]
[Hex ], [ Oct], [ Bin ]
Размерность слова - 16 бит
[ 32 ]
[Hex ], [ Oct], [ Bin ]
Размерность слова - 32 бита


Логические вычисления

Рис. 8: Логические вычисления

Перевод в режим логических вычислений осуществляется нажатием кнопки на панели состояния [ Bool ] - Рис. 8.


В этом режиме доступны следующие команды:


Таблица 5: Логические функции

Команда Значение Описание
0
FALSE
Логический 0
1
TRUE
Логическая 1
A, B, C, D, E, F
A, B, C, D, E, F
Логические переменные
~
not
Отрицание
&
and
Конъюнкция
|
or
Дизъюнкция
#
xor
Строгая дизъюнкция
()
-
Оператор смены приоритета вычислений

Кнопка [ = ] - инициирует расчёт введённой формулы. Для вставки формулы и результата в документ, следует одновременно нажать кнопку [ Ctrl ].


Кнопка [ C ] удаляет ошибочно введённые данные с конца по одному символу. Для удаления формулы сразу, нажмите одновременно клавишу [ Ctrl ].


Инженерные расчёты

Рис. 9: Инженерные расчёты

Перевод в режим инженерных расчётов осуществляется нажатием кнопки на панели состояния [ Dec ] - Рис. 9.


Кнопка состояния [ Hyp ] служит для ввода гиперболических функций.


Кнопка состояния [ Inv ] служит для ввода обратных гиперболических и тригонометрических функций.


Кнопки состояния [ Rad ] [ Deg ] определяют режим ввода угловых величин — радианы и градусы, соответственно. Режим ввода угловых величин распространяется только на прямые и обратные тригонометрические функции.


В режиме инженерных расчётов доступны следующие команды - Таблица 6:


Таблица 6: Алгебраические функции

Команда Режим Описание
0-9
любой
Ввод цифр
[ . ]
любой
Ввод десятичной точки
[ rnd ]
любой
Ввод случайного числа в диапазоне [0..1]
()
любой
Смена приоритета вычислений
[ + ]
любой
Сложение
[ - ]
любой
Вычитание
[ × ]
любой
Умножение
[ / ]
любой
Деление
[ ^ ]
любой
Возведение в степень
[ \ ]
любой
Остаток от целочисленного деления
[ ! ]
любой
Факториал
[ exp ]
любой
Функция Эйлера - e
[ ln ]
любой
Натуральный логарифм
[ lg ]
любой
Логарифм по основанию 2
[ log ]
любой
Логарифм по основанию 10
[ π ]
любой
Магическое Пи
[ sin ] [ Hyp]) Тригонометрический синус
[ cos ] [ Hyp]) Тригонометрический косинус
[ tan ] [ Hyp]) Тригонометрический тангенс
[ asin ]
[ Inv ] & ~[ Hyp]
Тригонометрический арксинус
[ acos ]
[ Inv ] & ~[ Hyp]
Тригонометрический арккосинус
[ atan ]
[ Inv ] & ~[ Hyp]
Тригонометрический арктангенс
[ sh ]
~[ Inv ] & [ Hyp]
Гиперболический синус
[ ch ]
~[ Inv ] & [ Hyp]
Гиперболический косинус
[ th ]
~[ Inv ] & [ Hyp]
Гиперболический тангенс
[ ash ]
[ Inv ] & [ Hyp]
Гиперболический арксинус
[ ach ]
[ Inv ] & [ Hyp]
Гиперболический арккосинус
[ ath ]
[ Inv ] & [ Hyp]
Гиперболический арктангенс
[ abs ]
любой
Абсолютное значение
[ frac ]
любой
Дробная часть
[ int ]
любой
Целая часть
[ round ]
любой
Округление до ближайшего целого


Выпадающий список [ F,0,1,2,3,4 ] задаёт точность расчёта, измеренную в знаках дробной части после десятичной точки.


Кнопка [ = ] - инициирует расчёт введённой формулы. Для вставки формулы и результата в документ, следует одновременно нажать кнопку [ Ctrl ].


Кнопка [ C ] удаляет ошибочно введённые данные с конца по одному символу. Для удаления формулы сразу, нажмите одновременно клавишу [ Ctrl ].


Побитовые операции

Рис. 10: Побитовые операции

Перевод в режим инженерных расчётов осуществляется нажатием кнопки на панели состояния [ Hex ], [ Oct ] или [ Bin ]- Рис. 10.


Кнопки состояния [ Hex ], [ Oct ] и [ Bin ] определяют основание системы вычислений — шестнадцатеричная, восьмеричная и двоичная соответственно.


Кнопки состояния [ 8 ], [ 16 ] и [ 32 ] задают соответствующую размерность регистров в битах.


Двоичный «Мини-Калькулятор» содержит всего 3 регистра — X, Y и Z. Регистр X используется для ввода чисел, регистр Y хранит операнд, регистр Z используется для отображения результата битовых операций. Переполнение разрядов идентифицируется знаком '<' в регистре Z.


X: 1111·1111
Y: 0000·0001
+
Z:<0000·0000


Двоичный «Мини-Калькулятор» допускает последовательные вычисления, когда предыдущий результат используется как операнд в следующей операции. Для перехода в режим последовательных вычислений необходимо и достаточно нажать любую кнопку битовой операции после нажатия кнопки [ = ].


В режиме инженерных расчётов доступны следующие команды - Таблица 7


Таблица 7: Побитовые функции

Команда Описание
[ 0-9, A-F ] Поразрядный ввод чисел, зависящий от основания системы
[ rnd ] Ввод случайного числа, зависящий от основания системы
[ + ] Сложение с переполнением разряда
[ - ] Вычитание с переполнением разряда
[ × ] Умножение с переполнением разряда
[ / ] Деление с переполнением разряда
[ \ ] Остаток целочисленного деления
[ << ] Сдвиг влево на один двоичный разряд
[ >> ] Сдвиг вправо на один двоичный разряд
[ neg ] Дополнение: neg A = not A + 1
[ not ] Побитовое отрицание
[ and ] Побитовая конъюнкция
[ or ] Побитовая дизъюнкция
[ xor ] Побитовая строгая дизъюнкция


Кнопка [ = ] - инициирует расчёт введённой формулы. Для вставки формулы и результата в документ, следует одновременно нажать кнопку [ Ctrl ].


Кнопка [ C ] - очищает регистры X и Y.


Дистрибутив

Скачать текущую версию «Мини-Калькулятора» можно по следующей ссылке: File:MiniCalc.oxt






InfraOffice.pro 3.1.x









К началу страницы