Opened 5 years ago

Closed 4 years ago

#398 closed ожидаются исправления (задача сдана)

WW #5

Reported by: Maria Chizhova Owned by: Maria Chizhova
Component: WW_c_io Version: 3.0
Keywords: Cc:

Description


Change History (12)

comment:1 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to Maria Chizhova
Type: ожидается проверкаожидаются исправления

Корректность 4/7:

  1. point_list.c зависит ещё и от clist.h.
  2. print должен выводить перевод строки в конце.

Стиль 1.5/3:

  1. Не n, а argc.
  2. Добавьте assert, проверяющий, что argc хватает.
  3. Лучше объедините цепочку if'ов на команду в else if, а в конце сделайте assert(!"Unknown command");
  4. FILE *fout = fopen(...), сразу на одной строчке.
  5. В savetext лучше цикл for, а не while. Или вообще apply.
  6. fscanf() >= 0 лучше заменить на fscanf() == чтото
  7. У loadtext/savetext параметры должны называться одинаково для симметрии. Лучше file_name.

comment:2 Changed 5 years ago by Egor Suvorov

P.S. Попытка засчитана, окончательный дедлайн - 3 ноября, 22:59.

comment:3 Changed 5 years ago by Maria Chizhova

Owner: changed from Maria Chizhova to Egor Suvorov
Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:4 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to Maria Chizhova

Корректность 5/7:

  • Корректный Makefile и структура папок +1
  • Корректные заголовочные файлы +0.5
  • Во всех исходных файлах подключены нужные заголовки и только они +0.5
  • Корректное разделение по файлам, корректная реализация списка +1
  • Корректно работает загрузка из текстовых файлов (в том числе отрицательные координаты) и команда print реализована при помощи apply (возможно, без параметра void *data) +1
  • Формат вывода в реализованной print строго соблюдается +0.5
  • Корректно работает запись текстовых файлов +0.5

Стиль 2.5/3:

  1. Отделите в main пустыми строчками блоки: начало, конец, загрузка, выполнение команды.
  2. Ветку loadtext тоже проверьте при помощи assert: программа должна падать, если дать ей неизвестный параметр.
  3. Проверка argc > 1 недостаточно строгая. Можно строже.

comment:5 Changed 5 years ago by Egor Suvorov

Type: ожидается проверкаожидаются исправления

comment:6 Changed 5 years ago by Maria Chizhova

Owner: changed from Maria Chizhova to Egor Suvorov
Type: ожидаются исправленияожидается проверка
Version: 2.03.0

comment:7 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to Maria Chizhova

Некорректный формат в бинарных данных: в условии требуется записывать 4 байта, а не 3. Но если вы сейчас просто поменяете 4 на 3, то получите UB. Плюс надо использовать wb, а не w.

По стилю:

  1. Лучше не > 3 и < 6, а >= 4 (минимальное количество аргументов) и <= 5 (максимальное). А ещё лучше — оставить только >= 4, а остальные проверки добавить в конкретные ветки с ==.
  2. Объявляйте переменные внутри цикла, если можете.

comment:8 Changed 4 years ago by Maria Chizhova

Owner: changed from Maria Chizhova to Egor Suvorov

comment:9 Changed 4 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to Maria Chizhova
Type: ожидается проверкаожидаются исправления

Корректность и бонус есть (7/7+2).

По стилю 2.5/3:

  1. Поставьте в count assert на количество аргументов.
  2. savebin: объявите pnode внутри цикла.
  3. loadbin: незачем занулять переменные в конце итерации. fread перезапишет первые три байта.
  4. text --> extend_sign_24bit, а функция binary вам просто не нужна.
  5. В extend_sign_24bit вам надо идеологически не арифметику делать, а биты менять: поставить старшие в единицы. Это | с константой 0xFF000000.
Last edited 4 years ago by Egor Suvorov (previous) (diff)

comment:10 Changed 4 years ago by Maria Chizhova

Owner: changed from Maria Chizhova to Egor Suvorov
Type: ожидаются исправленияожидается проверка

comment:11 Changed 4 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to Maria Chizhova
Type: ожидается проверкаожидаются исправления

2.7/3, всё ещё актуальны замечания по стилю 1, 4, 5.

  1. Внутри binary не нужен иф, можно просто всегда брать &. А на самом деле не нужен и сам binary, можно в savebin напрямую писать pnode->x/pnode->y.

comment:12 Changed 4 years ago by Egor Suvorov

Resolution: задача сдана
Status: assignedclosed
Note: See TracTickets for help on using tickets.