====== Задания на оценку "Отлично" ====== ===== Общая часть вариантов с BMP ===== Программа **обязательно должна иметь CLI** (опционально дополнительное использование GUI). Более подробно тут -- [[..:..:rules_extra_kurs|Требования к курсовым]] Программа должна реализовывать всю следующую функциональность по обработке **bmp**-файла. **Общие сведения** * 24 бита на цвет * без сжатия * файл может не соответствовать формату BMP, т.е. необходимо проверка на BMP формат (дополнительно стоит помнить, что версий у формата несколько). Если файл не соответствует формату BMP или его версии, то программа должна завершиться с соответствующей ошибкой. * обратите внимание на выравнивание; мусорные данные, если их необходимо дописать в файл для выравнивания, должны быть нулями. * обратите внимание на порядок записи пикселей * все поля стандартных BMP заголовков в выходном файле должны иметь те же значения что и во входном (разумеется кроме тех, которые должны быть изменены). Каждую подзадачу следует вынести в отдельную функцию, функции сгруппировать в несколько файлов (например, функции обработки текста в один, функции ввода/вывода в другой). Сборка должна осуществляться при помощи make и Makefile или другой системы сборки ===== Общая часть вариантов с PNG ===== Программа **обязательно должна иметь CLI** (опционально дополнительное использование GUI). Более подробно тут -- [[..:..:rules_extra_kurs|Требования к курсовым]] Программа должна реализовывать всю следующую функциональность по обработке **bmp**-файла. **Общие сведения** * Формат картинки PNG (рекомендуем использовать библиотеку libpng) * без сжатия * файл может не соответствовать формату PNG, т.е. необходимо проверка на PNG формат. Если файл не соответствует формату PNG, то программа должна завершиться с соответствующей ошибкой. * обратите внимание на выравнивание; мусорные данные, если их необходимо дописать в файл для выравнивания, должны быть нулями. * все поля стандартных PNG заголовков в выходном файле должны иметь те же значения что и во входном (разумеется кроме тех, которые должны быть изменены). Каждую подзадачу следует вынести в отдельную функцию, функции сгруппировать в несколько файлов (например, функции обработки текста в один, функции ввода/вывода в другой). Сборка должна осуществляться при помощи make и Makefile или другой системы сборки ===== Индивидуальные задания ===== * [[.:5:5.1|Вариант 5.1]] * [[.:5:5.2|Вариант 5.2]] * [[.:5:5.3|Вариант 5.3]] * [[.:5:5.4|Вариант 5.4]] * [[.:5:5.5|Вариант 5.5]] * [[.:5:5.6|Вариант 5.6]] * [[.:5:5.7|Вариант 5.7]] * [[.:5:5.8|Вариант 5.8]] * [[.:5:5.9|Вариант 5.9]] * [[.:5:5.10|Вариант 5.10]] * [[.:5:5.11|Вариант 5.11]] * [[.:5:5.12|Вариант 5.12]] * [[.:5:5.13|Вариант 5.13]] * [[.:5:5.14|Вариант 5.14]] * [[.:5:5.15|Вариант 5.15]] * [[.:5:5.16|Вариант 5.16]] * [[.:5:5.17|Вариант 5.17]] ----