Programmable Calculator Программируемый калькулятор. БК-34 кто помнит? Так вот по мотивам. Конечно, по системе команд и еще кое-чем отличается, но идея та. Основная часть управления не должна вызвать удивления у пользователя обычного виндового Calc.exe. Три больших блока кнопок работают как обычно. Надо только пояснить, что Log и root - это операции, а не функции. Например, чтобы посчитать логарифм 35 по основанию 3, надо набрать "35", "Log", "3", "=". Аналогично, корень 4-й степени из 17 - это "17", "root", "4", "=". Функция ">0?" - это функция, возвращающая 1, если аргумент больше нуля, а иначе - ноль (математикам эта функция известна как функция Хевисайда). Cbrt - это корень кубический. Практически все остальное относится к программированию калькулятора. Калькулятор имеет отнюдь не фон-Неймановскую архитектуру ;). Т.е. данные отдельно, команды - отдельно. Стека вообще нет. Зато есть 1024 регистра (действительнозначные, нумерация от 0 до 1023) и программная память на 65536 команд (адресация от 0 до 65535). Одно нажатие на кнопку - одна команда. Только надо учесть, что при работе с программами на много тысяч команд калькулятор может заметно подтормаживать. Все команды калькулятору подразделяются на три класса. Это ввод данных, функции и операции. Функции - это команды, работающие по принципу "X", "Function" (например "3", "Sin" - синус трех радиан). Опрерациями же я называю команды, работающие по принципу "X", "Operation", "Y", "=" (например, "3", "+", "2", "=" - будет пять). Чтобы начать вводить программу, надо набрать адрес, с которого вводить, и нажать кнопку Prog. Дальше вводим программу. Закончить ввод - кнопка End. Запустить программу (всегда с нулевого адреса) - кнопка Run. Кнопка Clear - стереть программу из памяти. Кнопки Load, Save - соответственно загрузить программу с диска/сохранить программу. Программы сохраняются в файлы *.pcalc. В этих файлах хранятся только команды, без всяких заголовков. Поэтому программы можно объединять, просто приписывая один файл *.pcalc к другому. Длинный блок кнопок внизу относится к операциям с памятью и управлению ходом выполнения программы. X>R - сохранить число в регистр; Это операция, т.е. чтобы положить 25 в регистр №3, надо набрать "25", "X>R", "3", "=". +>R - прибавить число к содержимому регистра; Работает аналогично предыдущему. 0>R - обнулить регистр; Это "функция", т.о., чтобы обнулить регистр №25, надо набрать "25", "0>R". Горячая клавиша - Z. R>X - достать число из регистра; Например, "3", "R>X" - достать число из регистра №3. ?>R - запросить число у пользователя: выполнение программы приостанавливается, вверху окна появляется надпись "Введите число", и программа ждет ввода числа до нажатия пользователем кнопки "=". Это Функция. Т.о., "4", "?>R" - запросить число у пользователя и положить результат в регистр №4. Goto - передача управления на заданный адрес; "16", "Goto" - значит, перейти к команде №16 (напомню, команды нумеруются с нуля; текст набираемой программы можно видеть в большом текстовом поле, если нажать на кнопку с двумя треугольничками внизу). Goto [] - передача управления с использованием косвенной адресации; "4", "Goto []" - возьмет число из регистра №4 и перейдет по этому адресу. Wait - подождать 3 секунды. Клавиша Escape или кнопка "C" справа от дисплея в режиме программирования вставляют команду Stop. По ней, как нетрудно догадаться, выполнение программы останавливается. Оно останавливается и само собой при достижении конца программы. Выполнение программы в любой момент можно прервать, нажав Escape. Если нажать кнопку с двумя треугольничками внизу, окно раздвигается и внизу появляются еще элементы управления. Здесь можно задать, какие значения каким регистрам присвоить перед запуском программы. Эта инициализация выполняется только если отмечен флажок Init вверху. В большом текстовом поле справа отображается текущая программа. Программа распространяется на правах Freeware AS IS. Автор и распространители не несут какой-либо ответственности за любой вред, причиненный использованием этой программы. (C) Portnov Ilya 2005 mailto:portnov84@rambler.ru