Formila Calculator

Скачать программу можно здесь: fcalc.zip

Назначение программы

Программа Formula Calculator v1.1 (fcalc.com) предназначена для вычисления сложных математических выражений с использованием табличных данных.

Описание работы

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

Необходимые файлы

Для нормальной работы программы необходимы файлы: fcalc.com, fcalc.hlp, explain.txt, fcalc.msg – в одном каталоге; tv.com в каталоге SHELL быстрого или системного устройства.

Файлы fcalc.msg и fcalc.hlp не являются обязательными. Описание строения файла explain.txt смотри далее в тексте.

Запуск программы

Запуск осуществляется из командной строки или из командного файла командой

calc [ключи] <входной файл>

Удобно для входных файлов использовать одно расширение (например *.exp) и добавить в файл extent.txt строку:

exp: <путь>fcalc
<путь> – путь к файлу fcalc.com

Тогда можно будет запускать программу, просто наведя курсор на входной файл и нажав [ENTER].

Если имя входного файла не указано, Вы попадете в информационное окно. Нажав [H] Вы сможете прочитать этот текст.

Формат входного файла

Максимальная длина входного файла 64k. Входной файл состоит из нескольких операторов, разделенных символом ";". В конце файла тоже должна быть ";". Каждый оператор является оператором присваивания. Различные типы операторов описаны ниже.

Примеры входных файлов поставляются вместе с программой.

Математическое выражение

Формат записи выражения следующий:

<переменная> = <выражение> [:комментарий];

Здесь и далее <переменная> – это переменная, которой присваивается результат выражения. Правила записи переменной аналогичны правилам записи числовых переменных Spectrum-BASIC'а. Для пояснения смотри [1]. Максимальная длина переменной 10 символов. Русские буквы, естественно, не разрешены.

<Выражение> представляет из себя обыкновенное математическое выражение. В нем допускается использовать действия:

Также разрешается использовать стандартные функции Spectrum-BASIC'а, полный список которых Вы найдете в [1].

В выражении можно использовать другие переменные, причем они не обязателно должны быть вычислены до вычисления этого выражения. Ссылки вроде a=b; b=a; не допускаются по понятной причине.

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

E=m*c^2:;

Числа записываются в десятичной системе счисления как в обычной, так и в экспоненциальной форме. Для отделения дробной части используется десятичная точка. Например:

2e4=20000
23e-3=0.023

ВНИМАНИЕ. Убедительная просьба при записи чисел в экспоненциальной форме не использовать русские буквы "Е" и "е". Для того чтобы не путать их, вместе с программой поставляется специальный шрифт, в котором написание этих букв различно. Шрифт можно подключить к драйверу ttyin.key при помощи программы junc:

junc /m font_e.tab ttyin.key

Просьба не «склеивать» названия функций. Например, для вычисления синуса числа "пи" можно записать y=sin pi; y=sin(pi); но не y=sinpi.

Запрос у пользователя

Формат запроса:

<переменная>:<название>;

Если компьютер встретит такую строку (слово «строка» здесь не совсем верно, т.к. несколько таких «операторов» могут размещаться в одной строке, но другого слова мне, к сожалению, не придумать), то пользователю будет задан вопрос

<название>?

и предложено ввести значение, которое будет присвоено переменной. На запрос можно вводить и выражение. При ошибке ввода Вам будет предложено ввести снова. Если здесь нажать [SS/A], то можно выйти из программы.

Если <название> начинается с заглавной буквы, то оно будет искаться в файле explain.txt, и, если его там нету, Вам придется собственноручно вводить значение с клавиатуры. Таким образом в файле explain.txt можно хранить наиболее часто используемые константы. В файле explain.txt каждая константа должна начинаться с новой строки, причем первая строка файла не анализируется (в ней может быть комментарий или она должна быть пуста).

Пример файла explain.txt:

<незначащая строка>
постоянная Планка= 6.63e-34;
элементарный заряд=1.6e-19;
гравитационная постоянная =6.67e-11;

Если <название> имеется в файле explain.txt, то переменной без лишних вопросов присваивается требуемое значение, причем эта переменная не выводится в выходной файл.

ЗАМЕЧАНИЕ: во всех поставляемых вместе с программой примерах подразумевается использование системы единиц СИ. Чтобы не запутаться (и не запутать компьютер) в порядках, рекомендую и Вам того же.

Поиск по таблице.

Формат строки:

<переменная>:<название таблицы> (<строка таблицы>);

Пример:

rho:плотность (вода);

В таблице <название таблицы> ищется строка <строка таблицы>, и значение, указанное в этой строке присваивается <переменной>. Так в случае, приведенном в примере, в таблице с названием "плотность" ищется строка "вода", и число, указанное в строке, присваивается переменной rho.

В первой строке таблицы обязательно должно находиться название таблицы. Формат остальных строк таков:

<элемент таблицы>: <значение>;

Например в таблице плотностей:

вода: 1000;

Если в таблице нет указанного элемента, то он будет расценен, как групповое название. Например, если Вы во входном файле написали

rho: плотность (жидкость в сосуде);

то Вам будет задан вопрос «Жидкость в сосуде?» и предложены для выбора все строки таблицы «плотность», из которых Вы сможете выбрать ту жидкость, которая Вам нужна. Если среди предложенных нет нужной жидкости, то нажмите [SS/A]. Вам будет задан вопрос:

Плотность (жидкость в сосуде)?

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

Для того, чтобы компьютер знал, где ему искать таблицу, в файле explain.txt (в том самом, в котором Вы храните константы) для каждой таблицы необходима строка:

<название таблицы> :<путь и имя файла, содержащего таблицу>;

Например:

плотность: T:\TAB\plotn.tab;

Если Вы во входном файле указали таблицу, например

rho:плотность (керосин);

а в explain.txt не указана таблица "плотность", то Вам просто будет задан вопрос: плотность (керосин)?

Ключи

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

Используются следующие ключи:

/n
при указании этого ключа запрещается использовать в выражениях функции. Можно использовать только действия +,-,*,/,^. (В записи чисел по-прежнему можно использовать символ "e" для отделения порядка). Такие меры приведут к небольшому увеличению скорости обработки. А так как функции нужны относительно редко, этот ключ может оказаться полезным.
в этом случае в выходной файл будут выводиться значения всех переменных, а не только тех, к которым имеется комментарий.

Настройка цветов

Настройка цветов осуществляется программой unicolor.com:

Литература:

1. Диалекты Бейсика для ZX Spectrum – СПб.: Питер, 1992


Автор программы: Михаил Уланов. Санкт-Петербург. Россия. 1995. mulanov@gmail·com

Hosted by uCoz