Opened 5 years ago

Closed 5 years ago

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

WW #2

Reported by: Kazakov Maksim Owned by: Egor Suvorov
Component: WW_strings Version: 3.0
Keywords: Cc:

Description


Change History (10)

comment:1 Changed 5 years ago by Egor Suvorov

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

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

  1. Не хватает include guard в некоторых файлах.

Стиль:

  1. Следующие порядки должны совпадать: порядок определений my_*, порядок объявлений my_*, порядок описания этих функций в стандарте, порядок этих функций в задании, порядок объявлений тестовых функций, порядок определений тестовых функций, порядок вызовов тестов.
  2. Вместо i < my_strlen(s) используйте проверку на нулевой символ (если i не может стать строго больше длины s).
  3. Вместо циклов while по возможности используйте for.
  4. Ставьте пустые строчки между разными функциями.
  5. Ставьте пробелы вокруг бинарных операторов: x[a + b] = y[c];
  6. Не ставьте лишние скобки в &&: a && b && c, а не a && (b && c).
  7. Называйте переменные консистентно: у вас в некоторых функциях счётчик цикла — i, а в некоторых — s. Плюс иногда s обозначает длину строки.

comment:2 Changed 5 years ago by Egor Suvorov

Ещё по корректности:

  1. Папка с объектными файлами должна называться obj, а не bin (в отличие от первой лабы).
  2. my_strcmp у вас сейчас работает за квадрат.

comment:3 Changed 5 years ago by Egor Suvorov

И ещё:

  1. Зависимости от заголовков в Makefile не соответствует реально включаемым заголовкам.

comment:4 Changed 5 years ago by Egor Suvorov

И ещё:

  1. У тестовых функций нет параметров => в сигнатуре должно быть (void), иначе в языке Си это означает "любые параметры" (в C++ не так).

comment:5 Changed 5 years ago by Egor Suvorov

И ещё:

  1. В задании запрещено использовать [].

comment:6 Changed 5 years ago by Egor Suvorov

  1. Имя исполняемого файла по заданию — lab_02.

comment:7 Changed 5 years ago by Kazakov Maksim

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

comment:8 Changed 5 years ago by Egor Suvorov

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

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

  1. У тестовых функций нет параметров => в сигнатуре должно быть (void), иначе в языке Си это означает "любые параметры" (в C++ не так).
  2. Непонятно, зачем str.c включает stddef.h

Баллы за корректность:

  • Корректный makefile и структура папок +1
  • Ваши тесты проходят +1
  • Корректный strcpy и тест +1
  • Корректный strcat и тест +1
  • Корректный strcmp и тест +1
  • Корректный strlen и тест +1

Стиль (0.5/3):

  1. Следующие порядки должны совпадать: порядок определений my_*, порядок объявлений my_*, порядок описания этих функций в стандарте, порядок этих функций в задании, порядок объявлений тестовых функций, порядок определений тестовых функций, порядок вызовов тестов.
  2. Ставьте пустые строчки между разными функциями.
  3. Ставьте пробелы вокруг бинарных операторов: x[a + b] = y[c];
  4. В тестах можно сравнивать прямо строковые литералы (они уже лежат в константной памяти, на них можно брать указатели), незачем их сначала класть в массив.
  5. Вместо while (*s != 0) лучше while (*s) (и в Си, и в C++, и во всех лабах).
  6. Ставьте пробелы между for/while/if и следующей скобочкой: while (1), не while(1).
  7. В test.c незачем %s, просто выведите все те же строчки через printf напрямую.
  8. Не объявляйте переменные раньше, чем они первый раз присваиваются. Например, в test_strcpy.
  9. Названия переменных i, s путаются между собой и никак не связаны с str1 и str2.

comment:9 Changed 5 years ago by Kazakov Maksim

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

Сделал исправления вовремя, но забыл сделать коммит... Можно все равно получить рецензию на исправления в таком случае?

comment:10 Changed 5 years ago by Egor Suvorov

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

Кажется, коммит-то вы сделать успели, просто тикет поздно поменяли. Тикет — нестрашно.

Проверялась ревизия 830 или более ранняя.

Корректность есть, 7/7.

Стиль 1.5/3:

  1. Ставьте пробелы после ; в циклах for.
  2. Инициализируйте и объявляйте переменные только когда они реально нужны, а не в начале функции. Например, в my_strcat можно объявить i попозже.
  3. Аналогично с char *a в test_strcpy. Кстати, её можно вообще убрать.
  4. В test.c незачем %s, просто выведите все те же строчки через printf напрямую.
  5. В тестах лучше проверять все элементы массива, а не выборочно.
  6. Ставьте пробелы вокруг бинарных операторов: x[a + b] = y[c];
  7. Не используйте в test_strlen функцию my_strcpy. Лучше просто вызывать my_strlen от нескольких разных строк. Ей принципиально всё равно, с чем работать: массивы или указатели на константную память.
  8. Аналогичная претензия к test_strcmp: в этом тесте вообще не должно быть переменных.
Note: See TracTickets for help on using tickets.