Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Функция типа eval()

253
20 мая 2005 года
Proger_XP
1.5K / / 07.08.2004
Нужна функция, которая по строке вида
1+3*4+6+7-4/10
вычеслит результат
Параметры:
PUSH PCharStrAddr ; адрес строки
Выход:
MOV AX, WordResult ; результат до 65535

Если кто-нибудь знает, как начать, напишите pls
425
23 мая 2005 года
sq_deep
498 / / 18.02.2005
Начать надо с чтения какой-нибудь книги по программированию компиляторов. Там изложены стековые методы интерпретации арифметических выражений. Если книжка попадётся хорошая, то читать её будет очень интересно.

[COLOR=silver]Методы не сложные, но всё же реализовывать их на языке ассемблера вряд ли стоит. Длина исходного текста программы будет измеряться сотнями килобайт, и такой код будет невозможно поддерживать. Если написать класс на C++, код будет очень ясным и займёт килобайт 10.

Я делал дважды. Первый раз на языке PL/M-86. Получилось неуклюже. Второй раз — на C++. Получилось красиво.[/COLOR]
991
24 мая 2005 года
Zenhipster
157 / / 14.01.2005
Цитата:
Originally posted by Proger_XP
Нужна функция, которая по строке вида
1+3*4+6+7-4/10
вычеслит результат
Параметры:
PUSH PCharStrAddr ; адрес строки
Выход:
MOV AX, WordResult ; результат до 65535

Если кто-нибудь знает, как начать, напишите pls



Если надо вычислять строки только токого вида, то есть несложный способ, описанный в книге "Структуры данных в С++" (Уильям Топп, Уильям Форд) - глава 5.3 (стр 193) - "Оценка выражений".
- Там используется алгоритм под названием "Обратная польская нотация".
- Так-же, можешь поискать исходники какого-нить калькулятора (в котором можно вводить выражения). Уверен, что там использован тот-же метод.

253
25 мая 2005 года
Proger_XP
1.5K / / 07.08.2004
Всем спасибо
Буду юзать книги
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог