This shows you the differences between two versions of the page.
project_kalashnikov [2017/03/14 17:47] tatyana.berlenko [Обработка ошибок в файле] |
project_kalashnikov [2022/12/10 09:08] |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Чекер для работы с выражениями ====== | ||
- | |||
- | ===== Задача ===== | ||
- | |||
- | ==== Общая постановка задачи ==== | ||
- | |||
- | Вычисление выражений из файла. | ||
- | |||
- | На вход подается файл, в каждой строке которого есть инициализация переменной или вычисление выражения. Требуется вычислить выражение в контексте определенных раннее переменных или вывести сообщение об ошибке. | ||
- | |||
- | <file> | ||
- | Пример: | ||
- | x:=10; | ||
- | y:=14; | ||
- | z:=(x+y)*5; | ||
- | z+x*(12+y); | ||
- | Результат: | ||
- | 380 | ||
- | </file> | ||
- | |||
- | ==== Параметры ==== | ||
- | |||
- | Входной параметр: | ||
- | * input_file - текстовый файл с выражением | ||
- | |||
- | ==== Обработка ошибок в файле ==== | ||
- | |||
- | Возможные ошибки: | ||
- | * некорректное число скобок (есть неоткрытые/незакрытые скобки) | ||
- | * неинициализированы переменные | ||
- | * отсутствует ; в конце строки | ||
- | |||
- | В случае, если в текстовом файле есть ошибки, то: | ||
- | * операционной системе возвращается ненулевой код возврата (return в main) | ||
- | * не создается выходного в файла | ||
- | * выводится сообщение об ошибке "Fail in <строка c ошибкой> <номер символа с ошибкой>". | ||
- | * сообщение об ошибке выводится для каждой ошибки. | ||
- | |||