Opened 5 years ago

Closed 5 years ago

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

WW #3

Reported by: stotskiy.nikita Owned by: stotskiy.nikita
Component: WW_intrusive_list Version: 3.0
Keywords: Cc:

Description


Change History (6)

comment:1 Changed 5 years ago by Egor Suvorov

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

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

  1. Элементы выводятся (или добавляются в список) не в том порядке, перепроверьте.
  2. print выводит лишние запятые и пробелы в конце строчки.

По стилю:

  1. Поехавшие отступы кода.
  2. printf("%s", "foo"); лучше заменить на printf("foo");

comment:2 Changed 5 years ago by stotskiy.nikita

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

comment:3 Changed 5 years ago by Egor Suvorov

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

Корректность 7.5/8:

  1. Если скормить на вход длинную команду (длиннее 239 символов), то будет несколько раз выведено Unknown command.
  2. Подключайте <stdio.h> не в clist.h (он ему не нужен), а в каждом файле, в котором есть ввод-вывод. Зато в clist.h следует подключить <stddef.h> вместо остальных файлов, потому что именно clist.h объявляет макрос container_of, которому нужен offsetof.

Стиль:

  1. В remove_point запускайте макрос container_of не три раза, а только один. Сделайте переменную.
  2. Не надо брать вызов макроса container_of в скобочки.
  3. Объявляйте переменные в самом вложенном месте, где они в первый раз нужны. Например, fpoint, a и b
  4. А ещё a и b — плохие названия для X/Y-координат точки.
  5. В main сделайте обработку каждой команды на отдельной строке и поставьте там фигурные скобки у всех ифов, чтобы команды обрабатывались абсолютно одинаково.
  6. Вместо if (strcmp() == 0) лучше if (!strcmp())
  7. Незачем инициализировать char input[240]
  8. input --> command
Last edited 5 years ago by Egor Suvorov (previous) (diff)

comment:4 Changed 5 years ago by stotskiy.nikita

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

comment:5 Changed 5 years ago by Egor Suvorov

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

Сначала доставил стиль в версии 1180, которая проверялась раньше: 3/4, итого 10.5/12.

Теперь проверка последней версии 1464 (дорешивание).

Корректность есть на 8/8.

По стилю те же 3/4:

  1. Поехали табы/пробелы (например, в последних строчках main.c). Пройдитесь автоформатированием.
  2. Ставьте пробел между ) и {. Тоже лечится автоформатированием.
  3. Лучше не return 0; в команде exit;, а break. А remove_all_points сделать за пределами цикла. Так будет симметричнее: в начале main список инициализируем, в конце — освобождаем.
  4. Объявите переменные x и y в самом вложенном месте. Не внутри цикла, а внутри каждого из ифов. И их не надо инициализировать.
  5. Объедините два подряд идущих printf в один.
  6. point *fpoint; fpoint = ... замените на point *fpoint = ....
  7. fpoint — не очень ясно, что такое "f". Лучше point или cur_point или pt.
  8. Сократите размер буфера. Максимальная длина команды — 5, т.е. надо считывать хотя бы шесть символов (чтобы отличить print от неизвестного printt), значит, размер буфера — 7.

comment:6 Changed 5 years ago by Egor Suvorov

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

Если хотите дорешать — переоткрывайте.

Note: See TracTickets for help on using tickets.