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

Вариант 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), программа-интерпретатор должна вывести сообщение об ошибке и завершить выполнение программы пользователя.