This shows you the differences between two versions of the page.
project_kalashnikov [2017/03/13 13:42] tatyana.berlenko created |
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 | ||
- | * x0 | ||
- | * y0 | ||
- | * x1 | ||
- | * y1 | ||
- | * commands | ||
- | |||
- | * input_file - BMP файл | ||
- | * x0 y0 левый верхний угол области (отсчет с точки 0, 0) | ||
- | * x1 y1 правый нижний угол области | ||
- | * commands - числовой массив неизвестной длины, который хранит в себе последовательность функций обработки входного файла. Массив заканчивается числом 4 - функцией сохранения результата в новом файле. | ||
- | |||
- | В случае, если программа получила некорректные параметры, то: | ||
- | * операционной системе возвращается ненулевой код возврата (return в main) | ||
- | * не создается выходного в файла | ||
- | * выводится сообщение об ошибке "Fail with <имя параметра>". | ||
- | |||
- | ==== Общие сведения ==== | ||
- | |||
- | * 24 бита на цвет | ||
- | * без сжатия | ||
- | * файл всегда соответствует формату (проверять не нужно) | ||
- | * обратите внимание на выравнивание; мусорные данные, если их необходимо дописать в файл для выравнивания, должны быть нулями. | ||
- | * обратите внимание на порядок записи пикселей | ||
- | * все поля стандартных BMP заголовков в выходном файле должны иметь те же значения что и во входном (разумеется кроме тех, которые должны быть изменены). | ||