Opened 5 years ago
Closed 5 years ago
#155 closed ожидаются исправления (задача сдана)
WW #2
Reported by: | Никита Усольцев | Owned by: | Никита Усольцев |
---|---|---|---|
Component: | WW_strings | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (8)
comment:1 Changed 5 years ago by
Component: | WW_make → WW_strings |
---|
comment:2 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Никита Усольцев |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Ваши тесты падают:
This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information. Assertion failed! Program: lab2.exe File: src/test_str.c, Line 15 Expression: !my_strcmp(c1,s4)
comment:4 Changed 5 years ago by
Owner: | changed from Никита Усольцев to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
comment:5 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Никита Усольцев |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Корректность:
- У тестовых функций нет параметров => в сигнатуре должно быть
(void)
, иначе в языке Си это означает "любые параметры" (в C++ не так). - Непонятно, зачем
test.c
включаетstr.h
.
Стиль (пока 1/3):
- Вместо
while (*s != 0)
лучшеwhile (*s)
(и в Си, и в C++, и во всех лабах). - Вместо
'\0'
лучше использовать просто0
. - Используйте для отступов либо везде пробелы, либо везде табы, иначе это плохо отображается в редакторах, где таб не равен вашему по ширине. В любом нормальном редакторе есть кнопка "заменять все табы на пробелы".
- В
my_strcmp
можно избавиться от вообще всех ифов и оставить только одинwhile
(с чуть расширенным условием). Ну или хотя бы от двух ифов в конце.
Баллы за корректность:
- Корректный makefile и структура папок +1
- Ваши тесты проходят +1
- Корректный strcpy и тест +1
- Корректный strcat и тест +1
- Корректный strcmp и тест +1
- Корректный strlen и тест +1
comment:6 Changed 5 years ago by
Owner: | changed from Никита Усольцев to Egor Suvorov |
---|---|
Version: | 2.0 → 3.0 |
comment:7 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Никита Усольцев |
---|
Корректность:
- У тестовых функций нет параметров => в сигнатуре должно быть
(void)
, иначе в языке Си это означает "любые параметры" (в C++ не так). - Зависимости от заголовков в
Makefile
не соответствует реально включаемым заголовкам. - Непонятно, зачем
test.c
включаетstddef.h
Увы, по корректности баллов не прибавилось.
Стиль (стало лучше, 1.5/3):
- Ставьте пробелы между
while
/if
и скобочкой одинаково во всех местах. Я рекомендую всегда ставить:while (*s1) {
- В
my_strcmp
можно избавиться от вообще всех ифов. Но для 3/3 достаточно избавиться от тех, что внеwhile
.1 - Уберите комментарий
///////
, уберите закомментированный код в тестах. - Не создавайте массив только чтобы его потом передать в функцию и никак не использовать, передавайте сразу строковой литерал.
- Аналогично, не создавайте лишние переменные, в которые один раз кладётся значение и один раз читается. Вашу функцию
test_strlen
можно написать в две строки (правда в две) вместо восьми — по одной наassert
. - Не создавайте промежуточные переменные для результата
my_strcmp
(вродеint bes
) - Лучше проверяйте не через
my_strcmp
, в ней могут быть баги. Проверяйте напрямую элементы массивов (можно уменьшить тесты, чтобы это было не так муторно).
Баллы за корректность пока что не изменились (попортился Makefile
)
comment:8 Changed 5 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Исправлений не последовало, баллы остаются.
Note: See
TracTickets for help on using
tickets.
Пожалуйста, выбирайте корректный
Component
при создании тикета.