Change History (6)

comment:1 Changed 4 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to Карнаухов Кирилл
Type: ожидается проверкаожидаются исправления

Проверьте 34й байт.

Не делайте битовые сдвиги в знаковых int ( (int32)x << shift ). Битовые операции осмысленно и безопасно делать только в беззнаковых числах.

Проверить число аргументов нужно до того как начнете их использовать

Зачем в заголовочный файл вынесены константы, описывающие внутренние детали реализации?

comment:2 Changed 4 years ago by Карнаухов Кирилл

Owner: changed from Карнаухов Кирилл to Дмитрий Свиридкин
Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:3 Changed 4 years ago by Дмитрий Свиридкин

С заголовком файла что-то все еще не так. 34й байт все еще поломан и второй байт тоже поломан. Почините, и будет работать.

Три уровня вложенности указателей и внутри еще указатель на указатель? Вы уверены?

Зачем в функции crop_rotate и insert/extract_message передавать указатель на аргументы, если логичнее передать сами нужные аргументы?

С бонусом что-то не сходится с тестовыми данными. Возможно, файл битый, возможно, у вас не правильно. Будет ясно чуть позже.
В любом случае, вы копируете картинку в память в массив массивов, а не в полноценный двумерный массив. Зачем в таком случает продолжать тянуть за собой перевернутую нумерацию?

16 + 4 + ?

comment:4 Changed 4 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to Карнаухов Кирилл
Type: ожидается проверкаожидаются исправления

Судя по расхождению с эталоном, скорее всего перепутаны порядок строк или столбцов.

8

comment:5 Changed 4 years ago by Карнаухов Кирилл

Owner: changed from Карнаухов Кирилл to Дмитрий Свиридкин
Type: ожидаются исправленияожидается проверка
Version: 2.03.0

Я не понял эту часть Вашего комментария: "вы копируете картинку в память в массив массивов, а не в полноценный двумерный массив. Зачем в таком случает продолжать тянуть за собой перевернутую нумерацию?" :(

comment:6 Changed 4 years ago by Дмитрий Свиридкин

Resolution: задача сдана
Status: assignedclosed

crop(bmps[0], bmps[1], x, bmps[0]->height - y - height, width, height);

Судя по нетривиальному y, вы постоянно инвертируете нумерацию строк (в бонусе тоже). Зачем? Вы храните строки не подряд в памяти -> можете задать любую удобную нумерацию, инвертировав только при чтении и при записи.

Зачем создавать массив картинок, если они никак друг с другом не связаны, кроме как являются временными переменными?

В бонусе не работает следующее условие из задания:
"Если ключ записывает больше бит, чем нужно сообщению, последние строчки игнорируются."

20 + 7 + 7.5

Note: See TracTickets for help on using tickets.