Для выполнения данной лабораторной работы Вам потребуется
любой компилятор языка С, способный генерировать 32-разрядные
программы для той ОС, с которой Вы работаете. Для ОС
Windows рекомендуется использовать бесплатную среду разработки
Microsoft Visual C++ Express.
Основная Ваша работа будет заключаться в формировании
программы перевода выражения в постфиксную запись, которая
была разобрана на лекции. Для первичной обработки строк предлагается
использовать модуль match.
1. Реализовать программу рекурсивного спуска выражения и
перевода в постфиксный вид.
2. Реализовать главную программу, считывающую строки из
входного потока и выдающую в конце сообщения «OK» в случае
успешного разбора или «FAIL» в случае неуспешного разбора.
3. Добавить в процедуру разбора задание по номеру варианта.
4. (Дополнительное.) Изучить разработку make файлов и
разработать make файл для сборки проекта из двух модулей.
5. (Дополнительное.) Функция разбора вещественного числа
в инженерной форме.
Вариант №6.
6. Функции многих переменных
Обеспечить поддержку функций с любым количеством параметров
(от 0).
::=()
::= | | e
На выходе функцию необходимо записывать в следующем
виде:
Перечислить ее параметры слева направо (выражения должны
вычисляться), а затем имя функции.
Например
pow(3,5) на выходе 3 5 pow
pow(4+1,2) на выходе 4 1 + 2 pow
Дополнительно после обработки всех строк вывести список
всех функций, использованных в строках.
Пояснение:
№1. Общим (для всех вариантов) заданием будет являться разработка системной
части виртуальной машины и обеспечение операций над вещественными числами в
проблемно-ориентированной части.
То есть, например, если лабораторной работе №1 нужно было сделать поддержку
диапазонов, то в лабораторной работе №2 нужно реализовать:
- стек вещественных чисел
- стек диапазонов
- все основные арифметичесие операции для вещественных чисел
- все операции, которые Вам могут потребоваться для работы с диапазонами.
то есть, например, команада Push для диапазона, пересечение диапазона, и так
далее. Конкретный список опеараций остается на Ваше усмотрение, однако, нужно
обеспечить как можно более полную работу с диапазонами