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

Вариант 7 Разработка программы "Интерпретатор арифметики вещественных чисел"

Программа получает на вход текстовый файл (в формате ASCII или ANSI) с текстом программы. На выходе – выводит на экран результаты вычислений, определяемых программистом. Если входная программа содержит ошибку – сообщение о типе ошибки.

Интерпретатор должен воспринимать и обрабатывать следующие инструкции:

а) объявление переменной с одновременным присвоением ей начального значения

ИмяПеременной = значение или ИмяПеременной = выражение

Значение переменной задается вещественным числом в десятичной системе счисления. Например, X=0.06

Выражения записываются по правилам, определенным п.(в). Например, F=-X/0.01

б) вывод результатов на экран

PRINT ( ИмяПеременной ) или PRINT ( выражение )

Например, PRINT(X) и PRINT(X+F)

в) Операндами выражения могут быть вещественные числа и имена объявленных ранее переменных. В выражении допускаются следующие операторы:

+ сумма;

– разность, унарный минус;

* произведение;

/ частное;

ABS(…) модуль числа;

^ возведение в степень (степень выражается целым числом 0 );

SQRT(…) квадратный корень;

EXP(…) экспонента;

LN(…) натуральный логарифм.

Порядок выполнения операций может регулироваться скобками ( ).

Инструкции в тексте программы разделяются точкой с запятой, либо каждая инструкция – с новой строки (вам на выбор).

Вариант 8 Разработка программы "Интерпретатор выражений булевой алгебры"

Программа-интерпретатор получает на вход текстовый файл (в формате ASCII или ANSI) с текстом программы. На выходе – выводит на экран результаты вычислений, определяемых программистом. Если входная программа содержит ошибку – сообщение о типе ошибки.

Интерпретатор должен воспринимать и обрабатывать следующие инструкции:

а) объявление переменной с одновременным присвоением ей начального значения 0, 1 или результата вычисления выражения.

ИмяПеременной = 0 или ИмяПеременной = 1 или ИмяПеременной = выражение

Выражение записывается по правилам п.(г).

б) объявление булевой функции n переменных

FUNC ИмяФункцииn ) 1[список], 0[список]

С списках через запятую перечисляются значения двоичных комбинаций аргументов функции, при которых они принимает единичные и нулевые значения соответственно. Например, функция G двух переменных (назовем их х1, х2), принимает единичные значения, когда комбинация х1 х2 равна 00, 10 и 11, и нулевое значение при комбинации х1 х2 равной 01.

Тогда функция будет объявлена так: FUNC G(2) 1[0,2,3], 0[1]

Один из списков 1[…] или 0[…] может отсутствовать, тогда предполагается, что в не указанном списке находятся все остальные комбинации аргументов.

Например, нашу функцию G можно объявить двумя способами, перечисляя только единичные, или только нулевые комбинации аргументов:

FUNC G(2) 1[0,2,3]

FUNC G(2) 0[1]

Если указаны оба списка, то необходимо проверять: а) чтобы все числа от 0 до 2n были указаны в каком-либо из списков; б) одно и то же число не находилось в обоих списках одновременно.

в) вызов булевой функции n переменных

ИмяФункции( значение1, значение2,… значениеn )

В списках через запятую перечисляются фактические значения аргументов с 1-го по n-й. Вместо значения можно указывать число 0 или 1, имя объявленной ранее переменной, вызов другой функции, или выражение, составленной по правилам п.(г). Например, вызов G(1,0) вернет 1, т.к. в качестве значения х1 передана 1, а х2 – 0.

г) выражение может содержать следующие операторы:

! логическое НЕ (отрицание);

| логическое ИЛИ;

& логическое И;

^ исключающее ИЛИ (сумма по модулю 2);

Операндами выражения могут быть числа 0 и 1, имена объявленных ранее переменных, вызовы функций. Порядок выполнения операций может регулироваться скобками ( ).

д) вывод результатов на экран

OUTвыражение )

На экран выводится результат вычисления выражения, то есть число 0 или 1.

Инструкции в тексте программы разделяются точкой с запятой, либо каждая инструкция – с новой строки (вам на выбор).