- •Вариант 1 Разработка транслятора языка программирования midi- файлов
- •Вариант 3 Разработка программы "Интерпретатор выражений алгебры комплексных чисел"
- •Вариант 4 Разработка программы "Транслятор выражений в обратную польскую запись"
- •Вариант 5 Разработка программы-интерпретатора специализированного языка программирования для операций над массивами
- •Вариант 7 Разработка программы "Интерпретатор арифметики вещественных чисел"
- •Вариант 8 Разработка программы "Интерпретатор выражений булевой алгебры"
- •Вариант 9 Разработка программы "Калькулятор алгебраических матричных выражений"
- •Вариант 10 Разработка программы "Текстовый редактор с подсветкой синтаксиса"
- •Вариант 11 Разработка программы "Графический командный процессор"
- •Вариант 12 Разработка программы "Интерпретатор операций над множествами"
- •Вариант 13 Разработка программы "Командный файловый процессор"
- •Вариант 14 Разработка программы "Конвертер форматированного текста"
- •Вариант 15 Разработка программы "Интерпретатор побитовых логических операций"
- •Вариант 16 Разработка программы "Командный калькулятор арифметических выражений"
- •Вариант 17 Разработка программы-интерпретатора упрощенного языка программирования
- •Вариант 18 Разработка программы-интерпретатора упрощенного языка программирования
Вариант 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.
Инструкции в тексте программы разделяются точкой с запятой, либо каждая инструкция – с новой строки (вам на выбор).