Авторизация
Регистрация

Напомнить пароль

Программируемый микрокалькулятор Uniel US-54: «Игры разума»

  1. Цена: 658 ₽ (куплен за 475  ₽)
  2. Перейти в магазин

И снова здравствуйте, достопочтенные читатели. Сегодняшний мой обзор пройдёт под девизом «Я купил это за доллар!» Ну, положим, не за доллар, а за шесть, но всё равно на удивление дёшево. Героем же сегодняшнего обзора станет программируемый микрокалькулятор. И это не винтаж, десятилетия ожидавший своего часа в лавке антиквара, а современное и общедоступное электронное вычислительное устройство с качественной локализацией.

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

 

И вот, увидев на «Озоне» программируемый калькулятор за немыслимые 475 рублей, я не поверил глазам своим и принялся искать подвох. А когда выяснилось, что никакого подвоха нет, сгрёб деньги в охапку и бросился покупать это чудо, пока кто-нибудь другой не сделал это прежде и вместо меня. И вот шесть дней спустя дрожащими от вожделения лапками я распаковываю свою новую прелесть.

 

 

Да-да, достопочтенный читатель, это и есть тот самый Uniel US-54, самый настоящий программируемый микрокалькулятор по цене коробки конфет. Что же я получил в обмен на скромную денежную сумму? А главное – зачем вообще человеку такое счастье?

 

Начнём с первого пункта. Итак, перед нами яркая глянцевая коробочка с изображением микрокалькулятора и живописанием его достоинств: двухстрочный дисплей, 279 функций, натуральная запись и – вот оно – «программирование»! Программируемых калькуляторов вживую я не видел уже очень и очень давно, и, кабы не эта строчка, покупка бы определённо не состоялась. Согласно надписи на коробке, предназначен сей калькулятор «для инженерных работников и студентов». Правда, «инженерные работники» с калькуляторами мне не встречались почти столько же лет, сколько и сами калькуляторы. А вот насчёт студентов – тут я готов поверить. Раздел инструкции про линейную регрессию немедленно пробудил воспоминания об университетских лабораторных по математической статистике и об очереди к единственному компьютеру, чтобы не закатывать Солнце вручную.

 

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

 

 

 

Единственный недостаток руководства – размер шрифта. Если вы найдёте его слишком мелким, всегда можно скачать руководство от японского Casio fx-3950P, клоном которого Uniel US-54, собственно, и является.

 

Хоть калькулятор и адресован интеллектуально развитым слоям населения, изготовлен он отнюдь не из премиальных материалов. Электронно-вычислительная начинка заключена в пластиковый корпус тёмно-се… извиняюсь, цвета «Black Titanium».

Uniel US-54, вид спереди
 

 

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

 

 

При этом его размеры составляют 160×84×18 миллиметров, что приблизительно соответствует габаритам смартфона с диагональю экрана 6,9 дюйма.

 

Питается устройство от двух батарей типа LR44 и, согласно инструкции, срок непрерывной работы от одного комплекта составляет 15000 часов. Индикатором разряда батарей калькулятор не оборудован, определять необходимость их замены предлагается по снижению контраста жидкокристаллического индикатора. Батареи спрятаны надёжно: чтобы их заменить, придётся открутить четыре винтика и снять заднюю крышку.

 

Uniel US-54, вид сзади
 

 

Также на тыльной стороне калькулятора присутствует логотип производителя, надпись «Made in China», бумажная наклейка с числами неизвестного смысла и назначения и небольшое отверстие с подписью «RESET», в глубине которого скрывается кнопка. Нажимать на неё нужно, если калькулятор наглухо «завис» (мне такого добиться пока не удавалось) либо сразу после замены батареек.

 

Калькулятор комплектуется пластиковой защитной крышкой, которая в «походном» состоянии защищает клавиатуру и экран, а в «рабочем» – прикрывает заднюю сторону калькулятора.

 

 

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

 

Увидев на коробке надпись про «279 функций», на которые способен Uniel US-54, достопочтенный читатель наверняка подумал что-то вроде «Вот это мощь! Да мне за всю жизнь столько не использовать!». Жаль вас разочаровывать, но «функции» в калькуляторах совсем не таковы, как многие их себе представляют. Если подойти к вопросу с умом, окажется, что «ввести цифру 1» — вполне себе функция, а цифр на клавиатуре целых десять. Да что там, даже включение/выключение калькулятора тоже функция, причём важнейшая. А при творческом осмыслении – даже целых две.

 

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

 

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

 

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

 

Включить калькулятор несложно, кнопка «ON» расположена справа ниже дисплея. А вот выключить… Самый простой способ это сделать — заглянуть в инструкцию, и узнать, что сначала надо нажать «Shift», а потом — «AC». Кстати, если не нажимать никаких кнопок, примерно через 6 минут калькулятор выключится сам.

 

Первое, что бросается в глаза после включения калькулятора – непривычно двухстрочный экран. В нижней его части обычные семисегментные индикаторы, а вот сверху ЖК-матрица высотой в 8 пикселей с призывно мерцающим курсором.

 

 

Попробуем посчитать какое-нибудь несложное выражение. Например, наберём «2+2×2». Набранное на клавиатуре тут же отобразится в верхней строке. Кнопки «=» у Uniel US-54 нет; на привычном месте вместо неё находится клавиша «EXE». Если, руководствуясь интуицией (или знанием английского языка), её нажать, выяснится, что эта клавиша заставляет калькулятор вычислить введённое выражение и показать в нижней строке ответ: «6».

 

Простой советский, а также любой бухгалтерский и немало «научных» калькуляторов в такой же ситуации выдадут результат «8», что, очевидно, неправильно. Чуть более сложный «Калькулятор» из Windows 10 посчитает верно, однако если то же самое скормить «Калькулятору» в чуть ином виде – 2(2+2), программа вообще не поймёт, чего от неё хотят.

 

И вот тут будет уместно рассказать про «естественный ввод» арифметических выражений, по моему мнению, являющийся наиглавнейшим достоинством данного калькулятора. Суть его предельно проста: введите с клавиатуры математически корректное выражение, а с порядком выполнения действий калькулятор определится сам. Поверьте, он сможет.

 

Имеет естественный ввод и ещё одно не вполне очевидное применение. Возможность опускать лишние знаки умножения позволяет более компактно записывать математические выражения, что может быть актуально в режиме программирования. Например, выражение «2  tg 360D» на калькуляторе можно записать как «2 × tan (360 × D)», а можно – как «2 tan 360 D». В режиме программирования первый вариант займёт в памяти калькулятора 10 байт, второй – всего 6.

 

По примеру из предыдущего абзаца можно заметить, что тригонометрические функции здесь вводятся не так, как на «обычных» калькуляторах. Например, вычисление синуса 30° на большинстве калькуляторов выглядит так: набираем «30», нажимаем кнопку «sin» и получаем ответ. На Uniel US-54 нужно сначала нажать «sin», потом ввести число 30 и, наконец, нажать «EXE», чтобы в нижней строке появился результат. При этом в верхней строке вы будете видеть выражение, которое вы только что посчитали.

 

И не только видеть! Uniel US-54 запоминает некоторое количество последних вычислений с их результатами на случай, если вы захотите к ним вернуться, что-нибудь исправить и пересчитать заново. Перемещаться по «ленте расчётов» можно при помощи джойстика, расположенного под экраном калькулятора. Правда, история прошлых вычислений не безгранична, обычно памяти хватает на 4-6 строк, но обычно большего и не требуется.

 

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

 

Впечатляет и возможность работать с угловыми мерами, представленными в градусах, минутах и секундах дуги. Допустим, мне понадобилось посчитать разность широт между Красноярском и Паттайей. Широта первого города – 56°00′43″, второго – 15°55′23″. Есть несколько способов сделать это с помощью обычного калькулятора, однако удобными их не назовёшь. А вот на Uniel US-54 для ввода углов в таком виде имеется специальная кнопка «° ❜ ❞», которую нужно нажимать после ввода градусов, минут и секунд. В нашем случае надо набрать

 

«56» «° ❜ ❞» «0» «° ❜ ❞» «43» «° ❜ ❞» «−» «15» «° ❜ ❞» «55» «° ❜ ❞» «23» «° ❜ ❞» «EXE»

 

и прочитать на экране ответ: 40°5′20″.

 

 

Некоторым недостатком можно считать то, что градусы, минуты и секунды на экране калькулятора отображаются одним и тем же символом — квадратиком сверху (в более продвинутых калькуляторах Casio вместо квадратиков отображаются символы градусов, минут и секунд). Если же вам нужны не минуты и секунды, а доли градуса, последовательность «Shift» «° ❜ ❞» выполнит преобразование угла из одного представления в другое.

 

Но что будет, если сделать на калькуляторе что-нибудь запретное? Например, разделить на ноль, извлечь квадратный корень из -64 или посчитать арксинус 10. Ничего страшного не случится: калькулятор не «зависнет», не отключится и не вызовет наряд Тьюринг-копов. Он в таких случаях просто выдаёт сообщение «Math ERROR». Впрочем, для любителей извлекать квадратные корни из чего попало есть режим расчётов в комплексных числах, где эта операция полностью корректна:

 

 

Ну а другую популярную ошибку, «Syntax ERROR», калькулятор выдаёт, если предложить ему посчитать математически некорректное выражение.

 

Есть две трубы…

 

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

 

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

 

Условием задачи пусть будет «Смерть после полудня» – ультимативно декадентский напиток, изобретение которого приписывается самому Эрнесту Хемингуэю. Канонический его рецепт выглядит следующим образом:

 

  • Абсент: 40 мл
  • Шампанское (брют): 100 мл
  • Сахарный сироп: 10 мл

 

Сам я, когда готовил это зелье, на роль абсента выбрал относительно недорогой зелёный «Jacques Senaux» крепостью 60°. Шампанское подойдёт любое, тратиться на благородные сорта нет нужды. В моём случае под рукой оказалась 200-граммовая бутылочка какого-то итальянского игристого крепостью 10,5%, оно и пошло в дело. Ну а сахарный сироп я намешал собственноручно, взяв сахар из сахарницы, а воду – из чайника.

 

Типовой подход к решению такого рода задач предполагает, что сначала нужно посчитать объём спирта в каждом из ингредиентов, просуммировать их и разделить на общий объём получившейся смеси. С учётом того, что один алкогольный «градус» означает одну объёмную часть из ста, общее количество алкоголя в напитке составит 40(60/100) + 100(10,5/100) миллилитров.

 

Для ввода натуральных дробей в калькуляторе предусмотрена кнопка «а b/c», причём вводить с её помощью можно и правильные, и неправильные, и даже смешанные дроби. Первые два типа дробей вводятся очень просто: если мы хотим ввести дробь «4/5», нужно последовательно нажать «4» «a b/c» «5». На экране оно отобразится как

4⯾5

 

Смешанную дробь 2¾ ввести ненамного сложнее «2» «a b/c» «3» «a b/c» «4»; на экране в этом случае мы увидим

2⯾3⯾4

 

Более того, с дробями можно выполнять любые действия, как с обычными числами. При этом калькулятор старается держаться «натурально-дробной» нотации до последнего, однако если результат получается неудобоваримым, он всё же перейдёт на десятичные дроби. К примеру, если бы мы хотели умножить 2¾ на ⅘, сделать это можно было бы так:

 

 

Однако нам для решения задачи нужно посчитать выражение посложнее:

40(60⯾100)+100(10,5⯾100) «EXE»

 

Результатом будет 34,5: именно столько миллилитров чистого алкоголя содержится в нашем коктейле. И тут мы вспоминаем, что всё это нам теперь нужно разделить на полный объём, который составляет (40+100+10) миллилитров. Неужели, чтобы сделать всё правильно, придётся набирать выражение заново?!

 

К счастью, специально для таких случаев Uniel US-54 оборудован «устройством запоминания последнего результата» и кнопкой «Ans» (от английского «Answer» – «ответ»), позволяющей подставить в новый расчёт результат предыдущего. Так что набираем:

Ans ÷ (40 + 100 + 10) «EXE»

 

Результатом будет число 0,23 – именно такую долю занимает спирт в получившемся коктейле; чтобы перейти к привычным «градусам», её нужно умножить на 100. Однако существует способ получить результат сразу: вместо «EXE» нужно нажимать «%» («Shift» «EXE»), эта операция вычисляет, какой процент делимое число составляет от делителя. В этом случае на экране сразу появится требуемый ответ: «23».

 

Теперь название коктейля в дальнейших разъяснениях вряд ли нуждается: эффект от пары бокалов 23-градусного напитка с анисом, сахаром и волшебными углекислотными пузырьками превзойдёт все ваши ожидания.

 

Вычисляем коэффициент температурного расширения светлого времени суток в Красноярске

 

Прочитав заглавие раздела, половина достопочтенных читателей, ещё не забывших школьный курс физики, наверняка впала в ступор, пытаясь осмыслить прочитанное, другая половина нервно засмеялась, а третья – принялась шарить по столу в поисках чего-нибудь тяжёлого. Но не беспокойтесь, я не собираюсь шокировать почтенного читателя откровениями из альтернативной физики. Это всего лишь аллюзия на детскую загадку: «Отчего летом дни длиннее, а зимой – короче?»

 

Поскольку загадка – детская, то и ответ предполагается шуточный: «летом от жары день расширяется, а зимой от холода сжимается». Однако мы подойдём к вопросу со всей звериной серьёзностью: если день ведёт себя как физическое тело, стало быть, у него есть коэффициент температурного расширения. И, если набрать достаточно статистики, этот коэффициент можно вычислить!

 

За статистикой придётся прогуляться в интернет. Данные по среднемесячным температурам в Красноярске за последние 10 лет я взял с http://www.pogodaiklimat.ru/history/29570.htm, продолжительность дня – с https://timewek.ru/citysun.php?sID=24. Усреднив и то, и другое, я свёл результаты в следующую табличку:

 

 

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

 

Для тех, кто не знает, что это за зверь такой — «линейная регрессия», попробую объяснить вкратце. Допустим, мы предполагаем линейную зависимость некой величины Y от величины X. Точные параметры этой зависимости мы не знаем, однако имеем набор наблюдений, то есть пар точек (X₁, Y₁ ), (X₂, Y₂), (X₃, Y₃)  и т. д. Наблюдения сделаны с некоторой погрешностью, поэтому просто взять и провести через все эти точки одну-единственную прямую не получится. Однако при помощи довольно утомительных вычислений можно рассчитать коэффициенты уравнения прямой, проходящей таким образом, что сумма среднеквадратичных отклонений реально зафиксированных значений от тех, которые «предсказывает» прямая, будет минимальна. Сведение набора наблюдательных данных к некой прямой, которая наилучшим образом их аппроксимирует, и есть та самая «линейная регрессия».

 

Все статистические расчёты Uniel US-54 выполняет в специально предназначенных для этого режимах. Режим вычисления линейной регрессии включается, если дважды нажать «MODE», затем — «2» (выбор режима регрессионного анализа) и, наконец, «1» (тип регрессии — линейный). После этого инструкция рекомендует очистить область статистических данных, нажав «Shift» «CLR» «1» «EXE».

 

Теперь можно приступать к вводу данных для анализа. Тут всё просто: вводим независимое значение, нажимаем клавишу «,», вводим зависимое значение, нажимаем «DT» (она же «M+»); на экране после этого появится надпись «n=1», означающая, что мы только что благополучно ввели первую пару значений.

 

Однако в качестве зависимого значения нам нужно вводить время, выраженное в часах и минутах. Что же делать? Можно при помощи всё того же калькулятора перевести эти значения в часы. Или в минуты. А можно пойти на небольшую хитрость: воспользоваться уже знакомой нам кнопкой «° ❜ ❞» и вводить время так, как будто это угловые меры. Почему так можно делать, предоставлю читателю догадаться самостоятельно. Так или иначе, чтобы ввести первое значение (-16,7°C, 7ч 41м), нужно набрать:

 

«(-)» «16.7» «,» «7» «° ❜ ❞» «41» «° ❜ ❞» «DT»

 

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

 

Когда данные будут введены, можно запросить параметры линейной регрессии A и B. Мы привыкли, что уравнение прямой описывается уравнением ax+b = 0, однако на родине калькуляторов Casio всё наоборот: японское уравнение прямой выглядит как A + Bx = 0. Чтобы получить первое из нужных значений, нажимаем «S-VAR» («Shift» «2»), дважды «вправо» на джойстике и цифру «2» («B») и «EXE». На экране появится:

 

B = 0,273553716

 

Это — коэффициент наклона прямой, и, одновременно, «коэффициент теплового расширения светлого времени суток», означающий, что повышение средней температуры на 1 градус увеличивает среднюю продолжительность дня на 0.2736 часа, или на 16 минут 25 секунд.

 

Схожим образом можно получить и второй коэффициент A, нужный для построения прямой; он равен 11,59442149. А ещё можно запросить коэффициент корреляции r, показывающий, насколько хорошо построенная прямая аппроксимирует экспериментальные данные. В нашем случае r = 0,93507198, и это очень хороший результат: коэффициенты корреляция выше 0,9 указывает на наличие сильной взаимосвязи между параметрами.

 

Положим, регрессию мы выполнили, что делать дальше? Всю эту хитрую математику изобрели не праздного любопытства ради (хотя, читая об иных научных достижениях, я начинаю в этом сомневаться): знание параметров аппроксимирующей функции позволяет ответить на ряд вполне обыденных вопросов. Например, «Когда включат/выключат отопление?» или «Какая будет среднесуточная температура в день равноденствия?»

 

У нас отопление включают, когда среднесуточная температура опускается ниже +8°C, а отключают — когда оно поднимается выше той же величины. Поскольку все коэффициенты зависимости продолжительности дня температуры калькулятору уже известны, можно вычислить, какая продолжительность дня соответствует заданной средней температуре. Для этого набираем: «8» «Shift» «S-VAR» «вправо» «вправо» «2» (на экране эта операция обозначена как «ŷ») «EXE», и на экране появляется ответ: 13.78 часа, которые тут же можно перевести в более привычные 13ч 47м. Приблизительно такая продолжительность дня в Красноярске бывает 3 сентября и 10 апреля. Если первая дата похожа на правду, то вторая отличается от реальности на месяц: отопление обычно включают в середине сентября и выключают во второй половине мая.

 

Можно выполнить и обратную операцию, то есть по известной продолжительности дня вычислить среднюю температуру. Возьмём продолжительность дня равной 12 часам; как вы можете помнить, равноденствие случается два раза в год, 22 марта и 22 сентября. Вводим «12» «Shift» «S-VAR» «вправо» «вправо» «1» (на экране калькулятора это символ «x̂»). Результат операции — 1.48°C. И вот опять: если для 22 марта это вполне реалистичное значение, то 22 сентября обычно гораздо теплее. Впрочем, странно было бы ожидать серьёзный результат от расчёта, изначально основанного на шутке.

 

Вайб-кодерам здесь не место

 

И вот мы подошли к ключевой особенности, выделяющей Uniel US-54 среди множества присутствующих на рынке инженерных калькуляторов: возможности самостоятельно создавать программы расчётов и исполнять их на микрокалькуляторе.

 

Несмотря на то, что его японские предшественники Casio fx-3650P и Casio fx-3950P начали выпускаться ещё в 2002-м, то есть более двадцати лет назад, следы жизнедеятельности их владельцев в интернете крайне малочисленны. Если у советских МК и американских HP была и своя фан-база, и некоторое число печатных источников, посвящённых их использованию, то изделия Casio и их клоны подобной популярностью похвастать не могут. Возможно, в японоязычном интернете дела обстоят иначе, но нам это вряд ли чем-то поможет. В общем, готовых реализаций даже широко известных алгоритмов, не говоря уже о различной экзотике, вы не найдёте.

 

Программируется Uniel US-54 на своём совершенно особенном языке программирования, более развитый (или менее урезанный?) диалект которого известен под названием «Casio BASIC». С привычным Бейсиком, впрочем, он имеет очень мало общего. В основе этого «птичьего языка» лежит всё та же естественная запись математических выражений, дополненная операторами для ввода значений ввода с клавиатуры, сравнения, условного выполнения команд, метками, переходами и командой останова для просмотра промежуточных результатов. В результате тексты программ для этого калькулятора получаются предельно плотными. Вот, к примеру, программа, по диаметру объектива телескопа, а также фокусному расстоянию объектива и окуляра вычисляющая его увеличение, разрешающую способность по критерию Рэлея и проницание по формуле Боуэна:

 

? → D : ? → X : ? → Y : X ÷ Y → M ◢ 140 ÷ D ◢ 2.5 ( 1 + log DМ )

 

Обратной стороной минимализма, однако, стал ограниченный выбор управляющих конструкций. Циклы? Подпрограммы? Сделай сам, если сможешь. И не забывай, что в твоём распоряжении всего 7 ячеек памяти, 10 меток на каждую программу и 360 байт – на все программы вместе. Да и «всех» программ, как оказалось, не может быть больше четырёх одновременно. Но они хотя бы не пропадают из памяти при выключении калькулятора.

 

Самое неудобное в режиме программирования — то, что программа целиком выводится в одну строку, по которой можно перемещаться влево-вправо при помощи джойстика. Разумеется, есть режимы вставки и замены, и удаление символов, но когда из начала программы нужно перейти в конец, единственный способ — зажать джойстик и ждать, пока курсор доползёт в нужное место. А ещё калькулятор поощряет идеи open source: единственный способ обмена программным обеспечением с внешним миром – вручную переписать текст программы и так же вручную набрать его с клавиатуры.

 

Разобравшись в основах, я попытался выйти за границы и нарушить правила, соорудив конструкцию «Goto X». Увы, на попытку перехода к метке с вычисляемым номером калькулятор отреагировал сообщением «Syntax ERROR». Не нашли понимания у калькулятора и некоторые другие радикальные идеи. Однако кое-что всё же удалось. В частности – написать кусок кода, выполнявший отсутствующую операцию взятия целой части (правда, только для неотрицательных чисел, но мне и такой было достаточно). Для числа, хранящегося в ячейке памяти A, соответствующий код умещается в 13 байт:

 

Fix 0 : A : Rnd : Ans – ( Ans > A ) → A

 

Если же нужное значение находится в ячейке M, за счёт использования операции «M–» можно сэкономить ещё три байта.

 

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

 

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

 

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

 

Однако прежде — совершенно необходимое медицинское предупреждение:

 

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

 

Конечно, было бы занимательно написать программу для расчёта дней шестидневной недели «рокуё», без которой совершенно невозможно представить мир современных японских суеверий. Однако стоящая за японским лунно-солнечным календарём математика настолько громоздка, что адаптировать её к возможностям Uniel US-54 было нереально. Поэтому я взялся за менее амбициозную календарную задачу: запрограммировать расчёт всех пятниц, приходящиеся на 13-е число, начиная с заданного года и месяца. Кстати, генеральным спонсором программы согласился выступить Джейсон Вурхиз.

 

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

 

W = (D+〚13(M+1)/5〛+Y+〚Y/4〛−〚Y/100〛+〚Y/400〛) mod 7

 

В этой формуле символы 〚〛 означают взятие целой части числа, D – номер дня в месяце, mod — остаток от деления, а результат W — день недели. Причём дни недели по Зеллеру нумеруются несколько неожиданным образом: 0 — суббота, 1 — воскресенье, 2 — понедельник, ну и так далее.

 

Другая особенность формулы Зеллера в том, что коэффициенты M и Y – «модифицированные» номер месяца и года. От обычных они отличаются тем, что для января и февраля к номеру месяца нужно прибавить 12, а от номера года отнять единицу. Ограничив область допустимых дат 13-м числом месяца, а также 20-м и 21-м веком, формулу можно сильно упростить. А ещё по некоторой причине, которую я назову позже, было бы удобно, чтобы пятнице соответствовало W, равное нулю, а не шести. Поразмыслив над формулой, я вывел такой вариант проверки «приходится ли 13-число в таком-то месяце такого-то года на пятницу»:

 

(〚13(M+1)/5〛+〚5Y/4〛 − 1 ) mod 7 = 0

 

Выражение выглядит настолько простым, что кажется: введи его в калькулятор, и программа тут же заработает. Так бы оно и случилось, если бы не отмеченный выше нюанс с выделением целой части числа. Когда нужный кусок кода уже кем-то написан, всё выглядит простым и понятным, однако прежде, чем это случилось, мне пришлось предпринять небольшое исследование команды Rnd и особенностей её работы.

 

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

 

Потратив с полчаса на эксперименты, я выяснил: Rnd вполне работоспособна, но лишь в режиме «Fix N», где она округляет числа до N-го знака после запятой. Однако просто взять и увидеть результат работы этой функции на экране не получится, поскольку в Fix-режимах результат отображается на экране и без того округлённым (что, однако, не затрагивает его внутреннее представление, хранимое в регистре Ans). После такого открытия реализация недостающих команд становилась задачей не просто разрешимой, но даже не особо сложной.

 

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

 

Известно, что древние люди не садились за программирование, не совершив перед этим ритуал, известный под именем «флоучартинг». Вооружившись карандашом и терпением, они вычерчивали на листе бумаги блок-схему (то бишь «flow chart») будущей программы. Чем точнее и подробнее была блок-схема, тем легче было по ней написать программу и тем надёжнее она работала. Так людям древности удалось слетать в космос, высадиться на Луну и совершить много других удивительных деяний.

 

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

 

Но знаете, вычислительные алгоритмы, что бы они ни вычисляли, и программируемые микрокалькуляторы, что бы на них ни программировали — превосходная возможность вернуться к истокам. Так что я нашёл в шкафу лист бумаги в клеточку и со второй попытки изобразил на нём рабочую блок-схему. Вот такую:

 

«Пятницы, 13-е». Блок-схема.
 

 

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

 

В моём исполнении текст программы, для вящего удобства понимания разбитый на строки и уснащённый отступами, вышел таким:

? → M :
? → Y :
Lbl 0:
 3 > M → C :
 M + 12 C → A : Y – C → B :
 2.6 A + 2.6 → A :
 5 B ÷ 4 – 1 → B :
 Fix 0:
 A : Rnd : Ans – ( Ans > A ) → A :
 B : Rnd : Ans – ( Ans > B ) → B :
 ( A + B ) ÷ 7 → A : Rnd : Ans ≠ A ⇒ Goto 1 :
   Fix 4:
   M + Y ÷ 10ˣ 4 ◢
Lbl 1:
 1 M+ :
 12 ≥ M ⇒ Goto 0 :
 1 → M :  Y + 1 → Y :
Goto 0

 

Объём получившейся программы составил 135 байт, причём в них уместился даже вывод результата в формате «месяц.год». Концепция, лежащая в основе форматирования вывода, проста до крайности: если номер года разделить на 10000 (или, что то же самое, но чуть короче, на 10⁴) и к результату прибавить номер месяца, получится почти то, что нужно. А чтобы получилось в точности то, что нужно, необходимо включить режим округления до 4 цифр после запятой (и не забыть его выключить после того, как вы завершите работу с программой).

 

А теперь — момент истины. Запускаем программу, на запрос «?→M» вводим «11», а на «?→Y» отвечаем «2025». Это значит, что мы хотим искать пятницы, 13-е начиная с ноября 2025-го года. Нажимаем «EXE», калькулятор на мгновение задумывается и выдаёт ответ «2.2026», что означает: следующая пятница, 13-е настанет в феврале 2026-го. Смотрим календарь на следующий год — так и есть.

 

Раз за разом нажимаем «EXE», и получаем: 3.2026, 11.2026, 8.2027, 10.2028, 4.2029, 7.2029, 9.2030 и так далее. Проверяем по календарю — программа не ошиблась!

 

С первой задачкой мы справились блестяще. Теперь давайте попробуем залудить на калькуляторе алгоритм посложнее. Например, построить знаменитый «Квадрат Пифагора». Ну, ныне, может, и не столь знаменитый, однако в 90-е он был знаком всякому купившему в вокзальном ларьке газету с названием то ли «Оракул», то ли «Тайная власть» и, в ожидании автобуса, прочитавшему её «от корки до корки».

 

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

 

Пустой «Квадрат Пифагора»
 

 

Затем все цифры интересующей нас даты выпишем в ряд (нули можно выбросить, ибо они ни на что не влияют): «25101917». Далее эти цифры полагалось сложить и получить второе число (в нашем случае результатом будет «26»). Процесс сложения цифр повторялся до тех пор, пока сумма не становилась однозначной; здесь это случится на третьем шаге, когда «2» и «6» дадут в сумме «8». И, наконец, в соответствующие ячейки квадрата нужно было поставить столько плюсиков, сколько раз соответствующая цифра появилась по ходу вычислений.

 

«Квадрат Пифагора» для даты 25.10.1917
 

 

Финалом всей этой низшей математики было толкование полученной фигуры на основе числа плюсиков в каждой из ячеек квадрата. Какая цифра что означала, за давностью лет я уже не помню, но это и несущественно. Как несущественно и то, каким образом за полтысячи лет до нашей эры Пифагор исхитрился изобрести гадательную систему на основе позиционной системы счисления (впервые встречающейся в письменных источниках 5 века н.э.) и оперирующую положительными датами «от Рождества Христова».

 

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

 

У меня получилось. Начал я, опять же, с рисования детальной блок-схемы…

 

«Квадрат Пифагора». Блок-схема.
 

 

…которую потом оставалось лишь «развернуть» в текст программы.

0 → M :
? → X :
9 ≥ X ⇒ Goto 2 :
Fix 0 :
Lbl 0 :
 0 → Y :
 Lbl 1 :
   X ÷ 10 → A : Rnd : Ans – ( Ans > A ) → A : 
   X – 10 A → B :
   B ≠ 0 ⇒ 10ˣ ( –B ) M+ :
   Y + B → Y :
   A → X :
   X ≠ 0 ⇒ Goto 1 :
   Y → X ◢
   X > 9 ⇒ Goto 0 :
Lbl2 :
 Norm 2 :
 10ˣ ( –X ) + M

 

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

 

Пользоваться программой просто до крайности. Запускаем, на вопрос «X?» набираем все цифры даты («25101917»), жмём «EXE» и, мгновение спустя, получаем результат сложения всех цифр: «26». Опять «EXE», и на экране очередной результат сложения: «8». И, наконец, после ещё одного «EXE» получаем окончательный ответ: «0.320011111». Расшифровать его не составит ни малейшего труда: в первом разряде после запятой будет количество единиц в «квадрате Пифагора», во втором — количество двоек, в третьем — троек, и т. д. Можете сравнить с приведённым выше «квадратом», посчитанным вручную — совпадение будет полным.

 

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

 

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

 

Как вы, может быть, помните, в октябре 1917 года там случилась революция, в дальнейшем получившая название Великой Октябрьской Социалистической. Несмотря на достигнутый «в моменте» успех, революционеры со всей отчётливостью осознавали шаткость своего положения. А потому хватались буквально за любую возможность это положение упрочить, прибегая, помимо всего прочего, к практикам, весьма далёким от декларируемой философии материализма. В частности, красные числогадатели раскидали дату революции на «Квадрат Пифагора» примерно так же, как это сделал я несколькими абзацами выше. Программируемых калькуляторов тогда ещё не изобрели, однако они как-то справились. И, согласно всем расчётам, «квадрат» выходил слабый и вялый, предрекая делу революции скорую и бесславную кончину.

 

Казалось бы, поезд ушёл, и с этим уже ничего не поделать. Не исполнять же, в самом деле, взятие Зимнего «на бис» в нумерологически благоприятную дату. И тут кого-то осенило, что, если пересчитать дату революции с юлианского календаря на григорианский, числовое наполнение «квадрата» изменится, суля радикально иное и куда более многообещающее будущее.

 

И ради этого сменили календарь?!
 

 

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

 

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

 

Какая из всего вышеизложенного следует мораль? Я бы сказал, разнообразная. Кто-то, подобно Пифагору, может увериться, что числа и правда правят миром. А кто-то, наблюдая череду «совпадений» и «предсказаний», задастся вопросом, что здесь первично: тайное могущество чисел, или всё же люди, что сверяют каждый свой шаг с нумерологическими расчётами?

 

Однако давайте, наконец, выйдем из астрала и подведём итоги всему, что было сказано касательно обозреваемого микрокалькулятора. В целом об Uniel US-54 я составил самое положительное мнение. Считать что-нибудь по мелочам мне приходится достаточно часто, поэтому держать на столе отдельное и всегда готовое к работе устройство с физическими кнопками оказалось удобнее, чем запускать «Калькулятор» Windows или разблокировать мобильник и искать в нём нужное приложение. Автоматизация повторяющихся расчётов при помощи программ востребована реже, но тоже находит применение. Не говоря уже о том, что программирование на этом калькуляторе со всеми его ограничениями и неочевидными возможностями можно рассматривать не только как практическую дисциплину, но и в качестве вычурной математической головоломки.

 

Покупать или нет? Это, конечно, дело глубоко личное и где-то даже интимное, однако я вижу лишь два серьёзных аргумента «против». Uniel US-54 вам не нужен, если вы не можете припомнить, когда в последний раз пользовались хоть каким-то калькулятором, либо у вас уже есть микрокалькулятор лучше, чем обозреваемый.

 

В остальном же он успешно справляется как с бытовыми расчётами, так и с вычислениями в рамках школьной программы, а также может пригодиться студенту не слишком математического ВУЗа. И, конечно же, это просто подарок любителям ретропрограммирования и обширный полигон для «игр разума».

Достоинства

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

 

Недостатки

  • Не самая удачная цветовая гамма
  • Очень мелкие символы режимов работы калькулятора на экране
  • Ограниченный набор управляющих конструкций во встроенном языке программирования
  • Отсутствуют функции взятия целой или дробной части числа а также остатка от деления
  • Невозможность сохранения набранных программ на внешнем носителе
  • Нельзя использовать на ЕГЭ
Планирую купить +1 Добавить в избранное
+38 +44
свернутьразвернуть
Комментарии (19)
RSS
+
avatar
+5
мощно. как говорится «мощнее Фауста Гёте»
+
avatar
+1
  • kven
  • 07 ноября 2025, 17:23
обзор, конечно, монументальный. жаль, что опоздал на десятилетия.
замечу, что за аналогичную сумму можно раздобыть куда более интересный девайс (правда, не «программируемый»), клон одноименного casio:

+
avatar
+1
  • Latte
  • 07 ноября 2025, 18:33
Если не программируемый, то в чем тогда более интересный?
+
avatar
0
  • kven
  • 07 ноября 2025, 18:52
всем остальным
+
avatar
0
  • StoSlov
  • 07 ноября 2025, 18:33
Хотел когда-то купить на замену fx-911w (увы отклеивающийся шлейф болезнь такой техники), но махнул рукой. Что на наём считать «взрослым дядям» (Обратную геодезическую задачу или теодолитный ход — уже давным давно комп считает)? Поставить на полку?
+
avatar
+4
Ну, ностальгия шевельнулась. Полет на Луне, все такое… Но зачем, Холмс? Если смарт в кармане? Так то на столе калькулятор лежит, на нем кнопки давить удобнее, но если что сложнее умножить/разделить, то компьютер включён.
+
avatar
+1
Мне бы такой в моём детстве. Или хотя бы в юности…
+
avatar
+2
Обзор монументален, интерсно было, спасибо.

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

P.S. Долго искал под винду/линь хороший и мощный калькулятор, оставновился на этом
+
avatar
+2
  • advik
  • 07 ноября 2025, 18:09
Поздно они очухались — смартфоны не победить. А там все есть и больше. Однако если у советского калькулятора был сборник игр в которые мы зависали всем двором и ждали днями своей очереди… То тут уже не так интересно все это, а для расчетов есть штучки проще и мощнее.
Даже если тут тоже можно сыграть в «посадку на луну» то уже не тот эффект…
Хотя товар уже давно не нужен, но обзор зачетный!
+
avatar
+1
  • Lenny
  • 07 ноября 2025, 18:19
Помню в 80-х на подобное чудо Техас Инструмент в комиссионке на Апрашке заглядывался. Порядка месячной инженерной зарплаты стоил.
+
avatar
+1
Эх, помню на дедовом калькуляторе вводил эпичный код игр, а потом игрался в них.
Например, посадка космического корабля на Луну.
+
avatar
+3
  • StoSlov
  • 07 ноября 2025, 18:36
По корпусу и функциям узнаётся CASIO fx-95ms.
+
avatar
+1
это он и есть. с института (достался от старшекура) до сих пор работает
+
avatar
0
  • Mice
  • 07 ноября 2025, 18:59
ну разве это калькуляторы? вот что такое калькулятор!
+
avatar
0
  • StoSlov
  • 07 ноября 2025, 19:16
Мне 52я больше нравилась: необычный форм фактор, возможность докупить память (да попробуй её купи, но возможность...).
+
avatar
+1
  • pmaks
  • 07 ноября 2025, 19:01
У меня с 90-х годов вот такой шедевр в столе лежит. Этот даже графики мог строить.
+
avatar
0
  • ABATAPA
  • 07 ноября 2025, 19:03
посчитать разность широт между Красноярском и Паттайей. Широта первого города – 56°00′43″, второго – 15°55′23″. Есть несколько способов сделать это с помощью обычного калькулятора, о
«56» «° ❜ ❞» «0» «° ❜ ❞» «43» «° ❜ ❞» «−» «15» «° ❜ ❞» «55» «° ❜ ❞» «23» «° ❜ ❞» «EXE»
Писец… Что тут считать-то на калькуляторе?! Тут в уме за секунды считается. Это же как время.
56°00′43″
-15°55′23″
(56-1-15)°(00+60-55)'(43-23)"

Я понимаю ещё длину по поверхности по координатам посчитать, но разницу…
+
avatar
0
  • StoSlov
  • 07 ноября 2025, 19:18
Ну не всем же нужно было считать обратную геодезическую задачу или теодолитный ход.
+
avatar
+1
  • ALexus
  • 07 ноября 2025, 19:03
… где то лежит МК-71.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.