
- •Вариант 1 Разработка транслятора языка программирования midi- файлов
- •Вариант 3 Разработка программы "Интерпретатор выражений алгебры комплексных чисел"
- •Вариант 4 Разработка программы "Транслятор выражений в обратную польскую запись"
- •Вариант 5 Разработка программы-интерпретатора специализированного языка программирования для операций над массивами
- •Вариант 7 Разработка программы "Интерпретатор арифметики вещественных чисел"
- •Вариант 8 Разработка программы "Интерпретатор выражений булевой алгебры"
- •Вариант 9 Разработка программы "Калькулятор алгебраических матричных выражений"
- •Вариант 10 Разработка программы "Текстовый редактор с подсветкой синтаксиса"
- •Вариант 11 Разработка программы "Графический командный процессор"
- •Вариант 12 Разработка программы "Интерпретатор операций над множествами"
- •Вариант 13 Разработка программы "Командный файловый процессор"
- •Вариант 14 Разработка программы "Конвертер форматированного текста"
- •Вариант 15 Разработка программы "Интерпретатор побитовых логических операций"
- •Вариант 16 Разработка программы "Командный калькулятор арифметических выражений"
- •Вариант 17 Разработка программы-интерпретатора упрощенного языка программирования
- •Вариант 18 Разработка программы-интерпретатора упрощенного языка программирования
Вариант 16 Разработка программы "Командный калькулятор арифметических выражений"
Программа представляет собой консольное приложение, в котором пользователь в интерактивном режиме вводит в командной строке арифметические выражения, а программа выводит на консоль результат их вычислений или сообщения об ошибках. Операндами выражений являются вещественные числа со знаком (например, 1234.89). Выражения могут содержать следующие операции: +, –, *, / ,
|…| – модуль;
(…) – скобки для изменения приоритета операций;
…^… – возведение в степень (степень выражается целым числом 0 );
e^… – экспонента;
LOG(…, …) – логарифм (основание указывается в 1-й позиции, что именно – во 2-й),
sin(…), cos(…), tg(…), ctg(…) – синус, косинус, тангенс, котангенс,
Pi – преопределенное число «пи».
Работа программы прекращается по клавише ESC.
Программа должна обнаруживать синтаксические ошибки в записи выражений и выводить соответствующее сообщение: неправильный формат числа, неправильная операция, неправильно составленное выражение и пр. Также при вычислении выражений могут возникнуть ошибки времени исполнения (runtime errors): деление на ноль, слишком большое число в результате (переполнение), недопустимый аргумент (например, вычисление логарифма отрицательного числа) и пр. При возникновении этих ошибок нужно выводить сообщение, чтобы работа программы была устойчива к ним.
Вариант 17 Разработка программы-интерпретатора упрощенного языка программирования
Программа получает на вход файл с текстом программы (кодировка ANSI). Текст может содержать следующие операторы упрощенного языка программирования:
1) Оператор присваивания
ИмяПеременной = выражение или число;
Выражение может содержать знаки операций +, –, числа и имена переменных. Все переменные считаются целочисленными, размером 4 байта. Числа записываются в 10-тичной системе счисления.
2) Оператор ввода чисел с клавиатуры
READ( ИмяПеременной );
Число целое со знаком, в 10-тичной системе. При вводе контролировать следующие ошибки: недопустимые символы, слишком большое число (не помещается в 4 байта). При возникновении ошибки ввода интерпретируемая программа завершается.
3) Оператор вывода
WRITE( ИмяПеременной или выражение);
Выводится значение переменной или результат вычисления выражения в 10-тичном формате. Выражение составляется по правилам из п.(1).
4) Оператор условия
IF (условие) THEN блок_операторов ELSE блок_операторов;
Если блок_операторов состоит из нескольких операторов, они заключаются между словами BEGIN и END. Если блок_операторов состоит из одного оператора, то BEGIN–END не нужны.
Условие имеет вид: Операнд знак Операнд. Операнд может быть числом или выражением (правила составления выражений см. п.(1)). Знак: = > <.
Секция ELSE может отсутствовать.
5) Оператор безусловного перехода
GOTO Метка;
Имя Метки составляется то тем же правилам, что и имена переменных. Метки в программе могут проставляться перед любым оператором, отделяясь от имени двоеточием. Например,
Metka1: WRITE( A );
Программа состоит из последовательности перечисленных операторов. Операторы разделяются точкой с запятой (;). Специальных конструкций языка для объявления начала и конца программы нет. Специальных конструкций для объявления переменных нет. Считается, что с появлением нового имени в тексте переменная объявляется автоматически. Если значение переменной не определено (например, она была объявлена впервые в операторе WRITE), программа-интерпретатор должна вывести сообщение об ошибке и завершить выполнение программы пользователя.