АЛГОРИТМЫ

Новости

Рассылка новостей

Форум

AlgoPascal

Редактор блок-схем

Статьи

О сайте

Контакты



Содержание - Работа с формулами

Работа с формулами

Прочесть введение в раздел (обычно там есть полезная информация)

Преобразование выражения в постфиксную форму (4 операции)

Преобразование выражения в постфиксную форму

Вычисление выражения, представленного в постфиксной форме (4 операции)

Преобразование выражения из постфиксной формы в стандартную форму

Введение

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

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

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

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

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

Если кто-то знает алгоритмы решения описанных выше задач, и хочет поделиться ими, присылайте буду весьма признателен.

Если нашли ошибку в алгоритме - сообщите!


 


Бочканов Сергей, Быстрицкий Владимир
Copyright © 1999-2004
При поддержке проекта MANUAL.RU