Opened 5 years ago

Closed 4 years ago

Last modified 4 years ago

#469 closed ожидается проверка (задача сдана)

HW #1 kreslavskiy.kirill

Reported by: Kreslavski Kirill Owned by: Дмитрий Лапшин (lapshin)
Component: HW #1 (BMP) Version: 3.0
Keywords: Cc:

Description

I have written something and I want someone no check weather I'm doing anything wrong. Firstly I want to know correctness of my structures and than correctness of load_bmp and save_bmp functions.

Change History (12)

comment:1 Changed 5 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to Kreslavski Kirill
Summary: HW #1HW #1 kreslavskiy.kirill
Type: ожидается проверкаожидаются исправления

Не компилируется.

Стиль:

  1. Не используйте typedef DWORD, используйте напрямую типы известного размера.
  2. Пробелы местами.

8.

comment:2 Changed 4 years ago by Kreslavski Kirill

Owner: changed from Kreslavski Kirill to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка
Version: 1.02.0

Там вроде правильный с точки зрения алгоритма работы код, но он фэйлится на проверке указателя на замаллоченный массив на равенство NULL, что с этим делать не знаю. Это какая-то жость.

comment:3 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Owner: changed from Дмитрий Лапшин (lapshin) to Kreslavski Kirill
Type: ожидается проверкаожидаются исправления

Компилируется! Но работает плохо.

Корректность:

  1. На каких справился отработать много valgrind и файл с картинкой ну вообще не близко.
  2. А на остальных ещё хуже.

Но мы собственно обсуждали.

  1. Проверки аргументов нет.

0.
Прошу заметить, что это решение формально не подходит под требование к второй посылке.

Стиль:

  1. Местами пробелы.
  2. Структуры можно присваивать, это кажется заметно упростит пару мест.

8.

comment:4 Changed 4 years ago by Kreslavski Kirill

Owner: changed from Kreslavski Kirill to Дмитрий Лапшин (lapshin)
Type: ожидаются исправленияожидается проверка

Я наконец поправил так, что на выходе получается хоть что-то. Вырезает он пока с багами, во время Rotate вообще какую-то дичь делает (поворот+зеркало+сдвиг). Но это уже что-то. Отсылаю в рамках акции невиданной щедрости.

comment:5 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Не работает, ему очень плохо.

comment:6 Changed 4 years ago by Дмитрий Лапшин (lapshin)

А аргументы проверять? НЕ могу проверить, ведёт себя непредсказуемо.

comment:7 in reply to:  6 Changed 4 years ago by Kreslavski Kirill

Replying to Дмитрий Лапшин (ldvsoft):

А аргументы проверять? НЕ могу проверить, ведёт себя непредсказуемо.

main строчка 41. Там стоит проверка аргументов. Не понимаю о чём речь. Мб я залить забыл.

comment:8 in reply to:  6 Changed 4 years ago by Kreslavski Kirill

Replying to Дмитрий Лапшин (ldvsoft):

А аргументы проверять? НЕ могу проверить, ведёт себя непредсказуемо.

Да нет, вроде на месте всё

comment:9 Changed 4 years ago by Kreslavski Kirill

Version: 2.03.0

Проерка аргументов есть, может быть просто я её не так сделал? Работает на лене и произвольных координатах в ней со странными сдвигами по цвету. Из известного совсем не работает на координатах если требуемая ширина или высота + соответсвующая координата подступают ближе чем на 4 к левому или нижнему краю оригинала.

comment:10 in reply to:  9 Changed 4 years ago by Kreslavski Kirill

Replying to Kreslavski Kirill:

Проерка аргументов есть, может быть просто я её не так сделал? Работает на лене и произвольных координатах в ней со странными сдвигами по цвету. Из известного совсем не работает на координатах если требуемая ширина или высота + соответсвующая координата подступают ближе чем на 4 к левому или нижнему краю оригинала.

Я, конечно, постараюсь по возможности всё пофиксить как можно раньше.

comment:11 Changed 4 years ago by Дмитрий Лапшин (lapshin)

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

Корректность:

  1. Ну однако при попытке сохранить промежутоную картинку (что не по заданию!) он уходил в бесконечный цикл записи, без понятия как.
  2. Дальше оно лишь изредка справляется что-то сделать. Валгринд поливает.
  3. Когда таки выдало файл, он неверен. И заголовком, и содержимым фатально не то.

4.

Стиль:

  1. Господи эти пробелы.
    • Управляющие конструкции (if (, for (, for () {).
    • Привидения типов ((size_t) x).
  2. Эти выражения без переноса на строчку.
  3. В заголовках есть long. Размер этого типа не известен.
  4. Чтение через магию вокруг biSizeImage не выглядит надёжно. Я бы просто на width смотрел, она единственная определяющая.
  5. Можно читать-выводить-копировать больше пикселя за раз.
  6. У тебя есть присваивание структур, чего ты страдаешь? crp->bmpfh = src->bmpfh;.
  7. Кстати вт ткие имн н очн пнтные.
  8. Дублирующийся код выделения массива.
    • Кстати не очень правильный в случае неудачи.
  9. Мёртвый код в комментах, остались конструкции с отладки.
  10. Магические числа!
    • Зачем в crop какие-то ±1⁈ Смотри:
    for (int i = 0; i < height; ++i)
        for (int j = 0; j < width; ++j)
            new_data[i][j] = old_data[x + i][y + j];

Уверен у тебя там бага)

Ух. На 4.

comment:12 Changed 4 years ago by Дмитрий Лапшин (lapshin)

Проверка на интерес.

Корректность:

  1. Неверные заголовки file-size, image-size.

Стиль:

  1. Я бы читал всё-таки по возможности не по байтику.
  2. Да, так ок.
Note: See TracTickets for help on using tickets.