Change History (8)

comment:1 Changed 5 years ago by Egor Suvorov

Component: WW_makeWW_strings

Пожалуйста, выбирайте корректный Component при создании тикета.

comment:2 Changed 5 years ago by Egor Suvorov

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:3 Changed 5 years ago by Egor Suvorov

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

comment:4 Changed 5 years ago by Никита Усольцев

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

comment:5 Changed 5 years ago by Egor Suvorov

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

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

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

Стиль (пока 1/3):

  1. Вместо while (*s != 0) лучше while (*s) (и в Си, и в C++, и во всех лабах).
  2. Вместо '\0' лучше использовать просто 0.
  3. Используйте для отступов либо везде пробелы, либо везде табы, иначе это плохо отображается в редакторах, где таб не равен вашему по ширине. В любом нормальном редакторе есть кнопка "заменять все табы на пробелы".
  4. В 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.03.0

comment:7 Changed 5 years ago by Egor Suvorov

Owner: changed from Egor Suvorov to Никита Усольцев

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

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

Увы, по корректности баллов не прибавилось.

Стиль (стало лучше, 1.5/3):

  1. Ставьте пробелы между while/if и скобочкой одинаково во всех местах. Я рекомендую всегда ставить: while (*s1) {
  2. В my_strcmp можно избавиться от вообще всех ифов. Но для 3/3 достаточно избавиться от тех, что вне while.1
  3. Уберите комментарий ///////, уберите закомментированный код в тестах.
  4. Не создавайте массив только чтобы его потом передать в функцию и никак не использовать, передавайте сразу строковой литерал.
  5. Аналогично, не создавайте лишние переменные, в которые один раз кладётся значение и один раз читается. Вашу функцию test_strlen можно написать в две строки (правда в две) вместо восьми — по одной на assert.
  6. Не создавайте промежуточные переменные для результата my_strcmp (вроде int bes)
  7. Лучше проверяйте не через my_strcmp, в ней могут быть баги. Проверяйте напрямую элементы массивов (можно уменьшить тесты, чтобы это было не так муторно).

Баллы за корректность пока что не изменились (попортился Makefile)

comment:8 Changed 5 years ago by Egor Suvorov

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

Исправлений не последовало, баллы остаются.

Note: See TracTickets for help on using tickets.