Комментарии 27
Игрался с написанием калькулятора когда Lubuntu перешла с LXDE на LXQT (а штатный калькулятор и вовсе потянул за собой тяжёлые KDEшные библиотеки). Начал с классической обработки событий от кнопок, пришёл к тому что на десктопе удобнее просто иметь строку ввода и скармливать её в питоновый eval.
Если сегодня попросить любого уважающего себя разработчика ПО реализовать простой кнопочный калькулятор (но с обратной совместимостью), он, наверно, закатит глаза и скажет, что сможет это сделать за один обеденный перерыв. Но он потерпит неудачу. Я точно знаю это, ведь когда-то я разработал калькулятор с моим дизайном, и это приключение оказалось очень непростым.
статью не читал (но прочитаю) но вот в этом месте закрались у меня сомнения. Дело в том что я вёл у детей 10-12 лет занятия по программированию на Делфи (1999-2000) и мы делали калькулятор за 120 минут (2 академических часа).
и стали первыми цифровыми вычислительными устройствами, добравшимися до миллионов домов
возможно в западных странах так и было, но в СССР калькулятор в середине 80-х был экзотикой в доме, точно такой же как и ПК любого формата. У нас в доме ПК ATARI 130XE появился в 1988-1989 гг, а калькулятор в 90-91 - покупать его задорого, когда легко можно всё посчитать в уме или на листке бумаги, как-то народ не торопился, массовость у калькуляторов появилась когда их в 90-е стали закупать в бухгалтерии и то это скорее вторая половина 90-х. А у обывателей калькуляторы появлялись благодаря китайским встроенным во всякие ежедневники или во что-то еще с рынка, цены были весьма доступные ну и народ созрел лениться посчитать в уме.
Но тот что у нас появился в 90-м до сих пор жив, кажется или CASIO или CITIZEN, на солнечном питании.
Интересно, что технологии ушли далеко вперёд, а интерфейс калькуляторов, что большинства аппаратных, что многих из программных, которые их копируют, остался таким же примитивным как 50 лет назад, когда это было обусловлено аппаратными ограничениями. А ведь примитивный интерфейс совсем неудобен, удобен интерфейс, в котором можно вводить и редактировать формулы и создавать переменные. Даже если это не инженерные расчёты, а простые, с четырьмя арифметическими действиями. И калькуляторы до сих пор бывают нужны, например в школе, где замена их смартфонами может отвлекать учеников от занятий, и мешать контролю их знаний.
А большинство бытовых калькуляторов используются только для двух базовых действий. Просуммировать последовательность, либо выполнить одну из 4 арифметических операций с двумя числами.
В подавляющем количестве случаев, если это не профессиональное использование, дальнейшие усложнения расчетов производятся с записью на бумажку промежуточных результатов. И такой человек покупая очередной калькулятор выберет привычный ему по интерфейсу.
Какие именно бытовые расчёты вы имеете в виду? Для бухгалтерии гораздо удобнее использовать компьютер с электронными таблицами. А для простых инженерных расчётов, вроде применяемых при ремонтах помещений или определения количества каких-либо рулонных материалов, уже удобнее интерфейс с формулами. Так что для них человек скорее использует смартфон с программным калькулятором, который такой интерфейс предоставляет. То же относится и к любым учебным задачам. Основной недостаток примитивного интерфейса - при любой ошибке весь расчёт приходится повторять заново. Добавление кнопки Backspase решает эту проблему только частично. Плюс необходимость записывать промежуточные результаты на бумагу, и вводить их потом заново в новых этапах расчётов - это странно для нынешних времён.
На смартфоне тыкать в большие кнопки с цифрами удобнее, чем редактировать формулу. На десктопе/ноуте да, со строчкой проще (под виндой, скажем, пользуюсь плагином в Far).
Одно другому не мешает - формулу тоже можно вводить большими кнопками, но она должна отображаться, должна быть возможность её редактирования, и она должна сохраняться в истории с возможностью её использования в новом расчёте путём её редактирования. Но даже стандартный калькулятор Windows не обеспечивает такую функциональность.
Для полноценной работы с формулами надо разделить переменные и собственно формулу. Это делает, например, MathCAD, где мы можем сначала накидать переменных, а потом записать несколько формул с этими переменными. А также записать в эти переменные или формулы размерности, подставить константы типа pi или g, и так далее. И вот у нас уже не калькулятор, а намного более сложный продукт.
Добавить в калькулятор с графическим экраном и физическими кнопками переменные с однобуквенными обозначениями можно довольно просто - нужно добавить ему кнопку-модификатор "переменная" и присвоить 10 цифровым кнопкам и 6 кнопкам операций наиболее ходовые однобуквенные идентификаторы переменных. Тогда начав расчёт с "переменная" "X" "=" можно присвоить переменной значение, а нажав в расчёте "переменная" "X" - использовать его, вставив в формулу переменную. При этом достаточно небольшого графического экрана на 3 строки. Дополнительно нужны курсорные клавиши для прокрутки истории и редактирования формул. С этим справится любой средний энергоэффективный микроконтроллер.
Какие именно бытовые расчёты вы имеете в виду?
Сложить расходы по чекам за месяц.
Разделить счет на всех в кафешке.
Поделить километры на скорость, чтобы посчитать сколько дней ехать.
Перевести рецепт на килограмм мяса исходя из веса имеющегося куска в морозилке.
Ну и классика, в каком магазине набрать на 15 кг стирального впрок - в первом, где они по 1.25кг или во втором, где они по 2.75кг в пачке. Причем известно, что поскольку магазины разные, то не факт что приведенная цена на 1кг порошка большими пачками будет выгоднее. И набрать, допустим, нужно именно 15кг впритык, ибо ограничение по весу багажа.
Все остальное - это профессиональное использование, люди знают что им надо и особенности работы каждой имеющейся у них модели.
Плюс необходимость записывать промежуточные результаты на бумагу, и вводить их потом заново в новых этапах расчётов - это странно для нынешних времён.
"Мы едем к морю по дороге в 3500км, сколько нам брать туалетной бумаги на 4 человек?" 2 водителя, дороги не платные, ночью спим. Ну как бы прикидочный расчет понятен. Проведите эксперимент, какой процент людей выполнит прикидочный расчет сразу в одну последовательность на калькуляторе не пользуясь кнопкой сброса результата. И какой процент потянется за бумажкой для записи промежуточных результатов. Заранее не ограничивайте людей в способах расчетов - можно пользоваться всем что человеку привычно.
Сложить расходы по чекам за месяц - это типичная домашняя бухгалтерия. Калькулятор для неё использовать очень неудобно по сравнению с любой электронной таблицей по уже озвученной причине - любая ошибка в суммировании большого количества чисел искажает результат, и в лучшем случае заставляет пересчитывать заново, в то время как в таблице ошибку легко увидеть.
Если нужно выполнить всего одно арифметическое действие - интерфейс калькулятора действительно не имеет особого значения. Но уже для кулинарного рецепта действий часто больше одного - в рецепте ингредиенты указаны на один выход готового продукта в граммах, а хочется получить другой. И в результате для каждого из ингредиентов в простом калькуляторе нужно заново вводить коэффициент пропорциональности (и вводить в расчёт само понятие коэффициента пропорциональности) вместо того, чтобы просто отредактировать формулу.
Очень много домов, где во-первых не на чем запустить электронную таблицу, и во-вторых смартфонами пользуются как смотрелками соцсетей и для мессенджеров.
Я сознательно отсекаю продвинутую часть населения (у нее и калькуляторов-то дома нет). Поэтому выборка автоматически строится по владельцам именно простых калькуляторов (у профи навороченные, они тоже выпадают).
Но в любом смартфоне есть встроенный программный калькулятор, и в любой кнопочном телефоне - тоже. Что то из этого есть практически у каждого взрослого даже в бедных странах. Но интерфейс у этих встроенных программных калькуляторов почему-то копирует аппаратные калькуляторы 50-летней давности. Наверное это так потому, что они копируют массово выпускаемые до сих пор аппаратные калькуляторы, чтобы избежать необходимости обучать пользователей. А аппаратные калькуляторы просто остановились в развитии, массово выпускаются модели со схемотехникой 80-х и 90-х годов с минимальными изменениями.
Вы рассуждаете с точки зрения своего развития. Но, очень большая часть населения не будет (и не хочет) разбираться с программируемыми калькуляторами. Им нужно простое устройство, в котором они используют минимум функций - сложить, вычесть, поделить, умножить, иногда проценты.
Я говорю не про программируемые калькуляторы, а про калькуляторы, интерфейс которых близок к способу записи простых арифметических выражений 5 класса школы, с теми самыми простыми действиями:
S=2*3 =6
V=S*2.5 =15
L=S/0.63 =9.5238095
И в которых сохраняются только что введенные подобные формулы, чтобы их можно было редактировать для новых расчётов. Такой интерфейс интуитивно более понятен. Отличие от применяемого в основном в том, что он изначально ориентируется на графический экран, на котором помещается намного больше информации, чем на семисегментных индикаторах - как минимум одна целая формула.
Большинство населения успело забыть основы алгебры из пятого класса, использование переменных - повод удалить приложение и больше на него не смотреть.
Переменные использовать никто не заставляет - можно просто ввести с использованием редактирования формул
2*3 =6
2*3*2.5 =15
2*3/0.63 =9.5238095
А переменные - это просто более удобная альтернатива чудовищно неудобному интерфейсу с кнопками MC, MR, M+, M-, MS, который почему-то сохранился до сих пор даже в стандартном калькуляторе Windows
В смартфонах дано уже калькуляторы поддерживают отображение всей введенных данных. Поэтому сложить много чисел можно относительно комфортно
Я и привел суммирование как пример одной из бытовых операций. Хочешь лупи подряд не глядя, хочешь держи перед глазами последовательность. Вы правы. Но в одно действие разбить счет в кафе по еде на всех, а выпивку только на пьющих может далеко лишь не каждый.
Это вам интерфейс неудобен, а бизнесу он очень даже удобен потому что к нему привыкло большинство населения, а значит и больше шанс, что этим калькулятором будут пользоваться.
Более того, сейчас и не пользуется особо никто стандартным калькулятором, если только нет необходимости произвести точные, но весьма базовые вычисления в 2-3 этапа (ну вот по типу кто сколько должен за еду после того как один заплатил за всех), а значит и мудрить с калькулятором нет смысла.
На полном серьезе в 2025 обсуждать суммирование чеков за месяц это нужно уметь. Это когда даже пенсионеры уже давно картами платят и могут в приложении посмотреть сколько потратили на еду, а сколько на лекарства. Ага, давайте "кулькулятор" для этого проапгрейдим😀
Я не предлагал суммировать чеки на продвинутом калькуляторе - это предлагал в качестве примера типичного использования калькулятора Mishootk, а я наоборот, говорил, что он для этого малопригоден, это лучше делать в электронной таблице на компьютере или в крайнем случае в электронной таблице на смартфоне, если есть такая необходимость. У меня она, кстати, есть, и банковские приложения тут не помогут, хоть это и нетипичный случай.
Sharp EL-8
Сложение: 1+2 -> 1 [+=] 2 [+=]
Вычитание: 1-2 -> 1 [+=] 2 [-=]
Умножение: 1×2 -> 1 [×÷] 2 [+=]
Деление: 1÷2 -> 1 [×÷] 2 [-=]
Честно говоря, моя мечта - иметь калькулятор, который имеет не одну строчку, а более-нормальный экран, на строк пять. Можно черно-белый. И считает он пусть в стиле Jupiter-а. Пару строк написал - прогнал. Добавил несколько строк - прогнал. Поменял исходные параметры - прогнал. И так далее. С нормальной компьютерной клавиатурой, небольшим экраном, экономный. С функционалом, как у pandas, sklearn и прочих библиотек. И чтобы никаких больше программ, браузеров, игр и прочей чепухи на нем не было. Разве что "Проводник" с файлами и папками. Ну я не знаю, еще можно подключение к usb и Dropbox.
TI 85 или его современный аналог не подойдёт?
Клавиатуры норм нет. Четыре слоя функций на ней. Как вводить выражения и вычислять - это прям учиться надо.
Калькуляторы с четырьмя функциями, или Ад UI