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

проект

 

Существует множество программных калькуляторов. Наиболее полным является, к примеру, программный калькулятор фирмы Microsoft, входящий в стандартное программное обеспечение операционных систем WINDOWS.

Несмотря на большое количество функций, возможности его недостаточны для практики. К примеру, использовать его для бухгалтерских вычислений неудобно, так как ведет к большой шумовой информации. При использовании его как инженерного калькулятора в нем есть только работа с рациональными числами. Но широко используемые на практике приближенные и метрологические числа ими вообще не могут обрабатываться. Таким образом, стоит задача создания более адекватного потребностям практики калькулятора.

 Универсальный десятичный программный калькулятор (УДПК) предназначен для вычисления в десятичном представлении практически всех видов чисел, используемых на практике в настоящее время, и работает со следующими классами чисел:

1.      Целые числа.

2.      Бухгалтерские числа.

3.      Рациональные числа.

4.      Приближенные числа.

5.      Метрологические числа.

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

Целые числа

Целые числа вводятся как обычные целые числа без всяких помет Результат операции представляется в виде целого числа.

Если в результате операции происходит переполнение выходного формата, то результат выдается в виде сообщения: «переполнение выходного формата» или мигания поля вывода.

При делении результат выдается в виде частного и остатка.

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

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

Бухгалтерские числа

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

В большинстве мировых денежных систем имеется основная единица, разделенная на 100 более мелких ─ сантимальные денежные системы. Например, рубль и копейка, доллар и цент и т.д. Исключением, известным автору, является денежная система Великобритании. В дальнейшем мы будем использовать сантимальную денежную систему и для простоты иллюстрировать на примере денежной системы России.

Так как имеется наименьшее значение денег ─ копейка, цент и т.д., то, казалось бы, для бухгалтерских вычислений можно использовать целочисленные вычисления. На самом деле это не хорошо, так как потребуются очень большие форматы данных. Представим, что мы рассчитываем бюджет США в центах. Потребуется использовать форматы с 20-25 десятичными разрядами или 75 двоичных. И, естественно, мы получаем громадный избыток информации. На самом деле в бухгалтерии в зависимости от размера организации балансы составляются в рублях, тысячах, миллионах и даже миллиардах рублей. И бухгалтерская система вычислений должна гибко приспосабливаться к потребностям пользователей, давать им нужную информацию и предотвращать поступление избыточной, шумовой.  

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

Бухгалтерское число, состоящее из рублей и копеек записывается в виде:

255:37=255 руб. 37 коп.

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

255:=255 руб. 00 коп.

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

255::237=255 тыс. 237 руб.      255::=255 тыс. руб.

Три двоеточия означают денежную сумму в миллионах рублей. За тремя двоеточиями могут следовать также максимально три разряда.

255:::237=255 млн.237 тыс. руб.

Четыре двоеточия соответственно означают представление в миллиардах, а пять ─ в триллионах рублей.

При операциях сложения и вычитания формат результата представляется с наименьшим числом двоеточий, имеющихся у операндов. Например:

100::: + 200::=100200::  (100 млн. руб. + 200 тыс. руб. = 100200 тыс. руб.)

100:: + 2000:35=102000:35  (100 тыс. руб. + 2000 руб.35 коп.=102000 руб.35 коп.)

При делении и умножении бухгалтерского числа на целое или нецелое число результат представляется с таким количеством двоеточий, что перед ними стоит не менее одного и не более трех значащих разрядов. Пример: вычислим среднюю заработную плату в организации с численностью 800 человек, общая зарплата равна 10 миллионов.

10::: / 800 = 12::5 (12.5 тыс. руб.)

Второй пример. Проконвертировать 600 тысяч долларов в рубли по курсу 29 руб. 30 коп за доллар:

600:: * 29:3 = 17:::58 (17.58 млн. руб.)

Таким образом, обработка бухгалтерских чисел осуществляется в формате чисел, наиболее близком к используемому в бухгалтерском учете. Знаки :, :: и др. легко при выводе на печать программно заменить конкретно используемыми в данной денежной системе выражениями, например, $, тыс. песо и т.д.

Рациональные числа

Рациональное число есть число, представленное конечным числом разрядов. Особенностью рационального числа есть многозначность представления. Например:

23.1=23.10=23.100 и т.д.

1E10=10E19=0.000100E14=100000000000Е0 и т.д.

Признаком рационального числа является десятичная точка или  знак основания десятичной степени E.

Например, 120., 0.345, 0.2Е20=2E19=0.2*10^20 есть рациональные числа.

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

Для рациональных чисел определены все арифметические операции и  элементарные функции.

Обработка рациональных чисел в компьютере сопровождается погрешностями, связанными с конечностью формата данных. В настоящее время эта погрешность остается неизвестной. В УДПК рациональное число преобразуется в приближенное бинарное число максимально возможной точности, обработка этих чисел ведется по правилам обработки двоичных приближенных чисел. Результат представляется в виде десятичного приближенного числа, который учитывает точность входных данных в компьютере и погрешности, связанные с выполняемыми действиями.

Приближенные числа

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

Имеются два представления приближенных чисел:

1. Нормальное представление. Нормальное представление состоит из целой мантиссы и степени, указывающей на последний разряд мантиссы.

Например, 2040Е-5’. Здесь мантисса 2040, степень –5. все разряды мантиссы являются значащими. Поэтому 204E-4’, 2040E-5’, 20400E-6’ есть разные приближенные числа. К примеру, если мы пользуемся четырехзначными таблицами, то мантисса имеет только четыре разряда, при использовании семизначных таблиц мантисса имеет семь разрядов. Рациональное число, получающееся отбрасыванием апострофа, называется нормой приближенного числа. Например, для 204Е-5’ норма равна 204Е-5=204*10^-5.

2.Обычное представление. Для чисел с дробной частью приближенные числа записываются в виде 0.02550’, 245.66’. В этом представлении все разряды после стоящей слева цепочки нулей являются значащими. Если последний значащий разряд имеет степень равную нулю или большую, то в обычном представлении незначащие разряды обозначаются цифрой X (неизвестное значение разряда). Например: 204ХХХ’, 20400Х’, 204000’. В первом числе три последних разряда незначащие, а значащие разряды только первые три, в последнем числе все разряды являются значащими.

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

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

Погрешность приближенных чисел по умолчанию равна половине последнего значащего разряда ─ крайне правого разряда мантиссы со степенью, равной степени приближенного числа. Например, приближенное число 2040E-5’ имеет по умолчанию погрешность ±0.5Е-5, 100ХХХ ─ ±500.

Метрологические числа

Метрологические числа ─ это числа, полученные в результате измерения. Фактически все нецелые числа имеют своим реальным источником либо измерение (первичные метрологические числа), либо есть результат их обработки (вторичные метрологические числа). Метрологическое число является двухкомпонентным и имеет номинал и метрологическую характеристику (погрешность, точность и т.п.). При этом нужно учитывать закон метрологии: метрологической характеристики не должна иметь высокой точности. Например, ошибочно выражение: «погрешность измерения 5.235 мм». Правильное значение погрешности в этом случае 5 мм. Именно поэтому существует весьма ограниченный набор классов точности измерительных приборов.

Имеется два представления метрологических чисел:

1.      Представление с указанием абсолютной погрешности.

2.      Представление с указанием точности.

Представление с указанием абсолютной погрешности

Абсолютная погрешность указывается с одним значащим десятичным разрядом. Представление с указанием абсолютной погрешности имеет формат:

235Е5’2.

Номинал метрологического числа равен 235E5, а абсолютная погрешность равна ±2Е5. Таким образом, абсолютная ошибка указывается в виде одного разряда после знака ‘. Ее степень равна степени номинала.

Отметим, что приближенные числа есть частный случай метрологических и между ними имеется соотношение: mEp’=10mE(p-1)’5. Например: 245Е3’=2450E2’5.

Представление с указанием точности

Точность есть метрологическая характеристика равная обратной величине относительной погрешности. Относительная погрешность, в свою очередь, есть отношение абсолютной погрешности к номиналу.

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

Но в технике для описания взаимоотношения чисел используется такая единица, как децибел. Поэтому измерять точность лучше в децибелах или просто в числах точности.

Число точности метрологического числа определяется выражением:

  

Здесь А ─ метрологическое число, Т ─ число точности, О ─ относительная погрешность, Δ ─ абсолютная погрешность, U ─ номинал. Квадратные скобки означают округление до ближайшего целого числа. Метрологическую характеристику нам не требуется знать с большой точностью.

Числа точности всегда целые, с которыми легко оперировать. Например, Т=10 означает относительную погрешность в 10%, Т=20 → 1%, Т=30 → 0.1%, Т=15 → 3%, Т=25 → 0.3% и т.д. Несложно написать таблицу, в которой относительная погрешность переводится в числа точности.

Формат метрологического числа с указанием точности имеет вид:

234\15, 0.5674\38, 1000Е-5\31.

При этом строгих требований к виду представления нормы числа уже нет. Например, метрологическое число в представлении погрешности 10000Е-4’3 может быть записано и в виде 1.0000\33, и в виде 1\33.

Метрологические числа в таком виде могут вводиться в калькулятор. С ними могут осуществляться любые арифметические операции и вычисляться любые функции. На выходе мы будем иметь метрологические числа, причем можно задавать формат выходных метрологических данных ─ с погрешностью или с точностью.

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

Вычислительный процесс в калькуляторе

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

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

Аппроксиметика, т.е. математика аппроксиметов, разработана ─ см. www.yur.ru/science/computer/. В ее основе лежат проверенные временем вычислительные технологии докомпьютерной эпохи.

Процессор рациональных чисел современных электронных процессоров не используется. Аппроксиметический процессинг использует исключительно процессор целых чисел.

Перспективы

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

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

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

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

 

В.М.Юровицкий

v.yurovitsky@mail.ru