Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
TSPP.doc
Скачиваний:
12
Добавлен:
19.09.2019
Размер:
146 Кб
Скачать
☆

Проектная спецификация Программа-генератор polgen.Exe

В качестве контейнера для хранения выражения в польской нотации используется deque<string>. В процессе вычисления применяется структура dcell { string; bool; } и дэк deque<dcell>. Это необходимо для алгоритма конвертирования из СДНФ в базис со стрелкой Пирса.

Программа состоит из нескольких функций:

  1. void main (int argc, char* argv[]) – основная функция, точка входа программы

  2. string parseargs (char *args[], int argcount) – функция конвертирования массива параметров командной строки к более удобному для анализа и использования типу

  3. bool checkparams (string argarr, int argcount) – функция проверки корректности параметров командной строки

  4. bool checkfunct (string str, int argcount) – функция проверки корректности вектора-функции, введенной пользователем

  5. deque<string> buildSDNF (string funct, string argarr) – функция построения СДНФ для заданной вектор-функцииы

  6. void toNORbase (deque<string> &mydeq) – функция конвертирования СДНФ в логическое выражение со стрелкой Пирса

Программа-вычислитель polsolve.Exe

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

Состоит из нескольких функций:

  1. void main (int argc, char *argv[]) – основная функция, точка входа программы.

  2. deque<string> inputsplit (string paramstr) – функция формирования из строковой входной последовательности дэка

  3. bool roughcheck (deque<string> &srcdeq, string argarr) – функция проверки выражения и параметров командной строки

  4. string parseargs (char *args[], int argcount) – функция конвертирования массива параметров командной строки к удобному для анализа типу

  5. void evaluate (deque<string> &srcdeq, string argarr) – функция вычисления выражения

  6. string NOR (string a, string b) – функция, возвращающая результат действия стрелки Пирса на оба её параметра.

Эксплуатационная документация к программе-генератору polgen.Exe

Необходимо запустить программу, указав в параметрах командной строке после названия программы имена переменных, для которых будет построено выражение. Например:

Polgen.exe x1 x2

Это запуск программы-генератора для булевой функции от двух переменных – x1 и x2.

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

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

Когда вектор-функция введена, достаточно нажать Enter, чтобы получить результат.

К программе-вычислителю polsolve.Exe

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

Polsolve.exe x1=1 x2=0

Это запуск программы-вычислителя для булевой функции от двух переменных – x1 и x2.

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

Когда выражение введено, то после нажатия Enter в консоль выводится результат вычисления. Например:

Для совместной работы двух программ можно использовать возможности командной строки Windows по перенаправлению потоков ввода/вывода. Таким образом, можно программе-генератору послать параметры и вектор-функцию, далее полученное выражение автоматически подается на вход программе-вычислителю, затем на экран выводится результат вычисления с заданными программе-вычислителю значениями переменных. Например:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]