Как написать на калькуляторе
Перейти к содержимому

Как написать на калькуляторе

Программирование на калькуляторе

Здравствуйте, хабражители. Думаю, многие из вас слышали о программируемых калькуляторах (а некоторые даже использовали их). Как ни странно, здесь я не нашел ни одной статьи, рассказывающей о такой интересной вещи, и поэтому решил восполнить этот пробел и рассказать об основах программирования на калькуляторах.

Некоторое время назад я нашел у себя в кладовке старый «Электроника МК-61», принадлежавший моему папе. Естественно, я не мог упустить такой шанс освоить не совсем «стандартное» программирование на калькуляторе. (В случае, если у вас нет программируемого калькулятора, вы можете скачать эмулятор здесь)

Память

Прежде всего необходимо понять, как устроена память в этом калькуляторе. В распоряжении пользователя имеется 4 стековых регистра: X, Y, Z, T. Содержимое регистра X всегда показывается на экране (в режиме расчетов), ввод чисел тоже идет в него. По сути, стековая память после включения калькулятора выглядит так:

Для помещения чего-либо в стек используется клавиша [В↑] . Она копирует содержимое регистра X в регистр Y, значение регистра Y в Z, Z в T, а значение, находившееся в T теряется. То есть, если перед нажатием на кнопку [В↑] в регистрах были значения

то после значения станут

Кроме того существует команда, позволяющая циклически сдвинуть все значения регистров: T в Z, Z в Y, Y в X, X в T. Для этого нужно нажать [F] [.] .

Команда [] меняет содержимое регистров X и Y местами.

Команда [CX] стирает содержимое регистра X.

Помимо стековой памяти, в калькуляторе есть 15 адресуемых регистров (RG0-RGE). Для работы с ними используются клавиши [X→П] и [П→X] . Первая команда помещает содержимое регистра X в соответствующий адресуемый регистр. Например, последовательность команд [4] [X→П] [0] помещает в регистр RG0 число 4. Вторая команда, как вы уже догадались, копирует содержимое адресуемого регистра в регистр X. То есть [П→X] [0] поместит в X число 4.

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

Расчеты

Главное, что необходимо знать перед началом расчетов — в МК-61 используется обратная польская нотация (ОПН). Если нам нужно совершить какую-либо унарную операцию, она совершается над числом, находящимся в регистре X. При этом значения других регистров не меняются. Бинарные операции осуществляются над содержимыми регистров Y и X (именно в таком порядке). Значение результата помещается в X, Z помещается в Y, T копируется в Z. Предыдущее значение регистра X помещается в служебный регистр X1. Таким образом, если нам нужно посчитать банальное 2 + 3 (в ОПН 2 3 +), то нужно нажать на калькуляторе клавиши: [2] [В↑] [3] [+] . При этом значения регистров меняются следующим образом:

До всех операций:

После нажатия клавиш [2] [В↑] [3] :

Попробуем провести чуть более сложные вычисления, например, (15 + 2 / 5) * 7 + 10. В ОПН это выражение можно записать так: 15 2 5 / + 7 * 10 +. Для того, чтобы это посчитать на калькуляторе, мы должны нажать клавиши: [15] [В↑] [2] [В↑] [5] [/] [+] [7] [*] [10] [+] .

Программирование

Так, ну а это уже интереснее :). Для перехода в режим программирования нужно нажать [F] [ВП] . На дисплее появятся 00. Это означает номер текущей команды. Вообще, программа в МК-61 представляет собой последовательность команд, необходимых для решения задачи. Обычно это арифметические операции, цифры, иногда специальные коды циклов и ветвлений. Всего программа может состоять не более чем из 105 команд, которые нумеруются от 00 до 99. Для ввода команды необходимо нажать соответствующую ей клавишу. Вот таблица соответствия кодов и клавиш калькулятора:

  1. 06 — адрес следующей вводимой команды
  2. 0E, 01, 02 — три последовательные команды, расположенные соответственно по адресам 03, 04, 05.
Основы

Разберем простейшую задачу нахождения площади круга по формуле πr 2 . Для того, чтобы калькулятор решил эту задачу, введем следующие команды в режиме программирования ( [F] [ВП] ) (будем считать что радиус окружности находится в регистре RG1):

Вот и все. Теперь мы должны перейти в режим вычислений с помощью команды [F] [/-/] , а затем нужно нажать клавишу [В/О] для перехода к началу программы. Занесем число 5 в регистр RG1 ( [5] [X→П] [1] ) и нажмем [С/П] для начала выполнения. После того, как калькулятор пройдет все шаги, на экране должно появиться число 78,539815 — площадь круга с радиусом 5.

Безусловный и условный переходы

С помощью команды [БП] (51) можно осуществить безусловный перезод (goto) по нужному адресу. Для этого в режиме программирования нужно нажать [БП] а затем две цифры адреса, по которому мы хотим перейти. Когда калькулятор при выполнении программы дойдет до этого оператора, он продолжит выполнение уже с команды по указанному адресу. Например:

В данном случае после шага 12 калькулятор перейдет сразу к шагу 42.

Условный переход гораздо полезнее. Для осуществления условного перехода существует 4 команды: [X >= 0] , [X < 0] , [X = 0] и [X != 0] . С помощью этих команд проверяют содержимое регистра X на выполнения условия. В случае, если условие не выполняется, управление переходит к адресу, указанному после оператора, иначе (если условие выполняется) адрес игнорируется и программа продолжает нормально выполняться далее. Например:

Циклы

Циклы можно реализовать с помощью команд условного перехода, но, кроме того, для организации циклов в МК-61 используются команды L0-L3 ( [F] [П→X] , [F] [X→П] , [F] [БП] и [F] [ПП] ). Эти команды оперируют с содержимым регистров RG0-RG3 соответственно. При каждом выполнении команды цикла из содержимого соответствующего регистра вычитается 1 и производится сравнение с нулём. Если содержимое регистра не равно нулю, происходит переход по адресу, записанному после команды цикла, если равно, то происходит переход к команде, следующей за адресом перехода цикла. Чтобы было понятнее, посмотрим на примере. Будем считать факториал числа, находящегося в регистре X.

Заключение

Конечно, эта статья — далеко не полное руководство по программированию на МК-61. Интересующимся в более глубоком освоении этой темы рекомендую почитать инструкцию (pdf, 6 MB) к этому замечательному калькулятору.

Как печатать слова на калькуляторе

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

Метод 1 из 3: Печатаем слова на калькуляторе

  1. 1 Запомните, какие цифры соответствуют определенным буквам английского алфавита в перевернутом виде. Ниже приведен список:
    • 0=O/D
    • 1=I
    • 2=Z
    • 3=E
    • 4=h
    • 5=S
    • 6=P
    • 7=L
    • 8=B
    • 9=G
  2. 2 Используя доступные буквы, напишите слово на листе бумаги.
  3. 3 Подпишите соответствующие цифры под каждой буквой вашего слова.
  4. 4 Напечатайте эти цифры на калькуляторе справа налево (т.е. начинайте вводить соответствующие цифры с последней буквы слова.)
  5. 5 Переверните калькулятор. Вуаля!

Как написать «лох» на калькуляторе?

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

На калькуляторе мы набираем комбинацию символов — «НО7». Пока никакого «Лоха» мы не видим. Но если повернуть калькулятор к верху ногами и снова посмотреть на экран, то мы обнаружим на нем другое сочетание — «LOH». Прочитать такую комбинацию можно только как «лох», если нас попросят именно прочитать изображенное на экране.

Как написать на калькуляторе ЛОХ?

Такое «задание» с калькулятором содержит в себе небольшую хитрость.

Итак, мы берём в свои руки наш калькулятор, набираем на нём сочетание «H07″ (только без кавычек». После этого ничего больше не потребуется набирать. Остаётся совсем малое — взять и перевернуть наш калькулятор. Имеется в виду, что его нужно повернуть на 180 градусов, чтобы и экран перевернулся.

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

Например, если калькулятор не перевёртывать, но смотреть на него будет человек, сидящий за партой перед нами (то есть который напротив), он, обернувшись, увидит L0H. И засмеётся, наверное.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *