Opened 3 years ago
Closed 3 years ago
#86 closed ожидается проверка (задача сдана)
WW_mergesort, Garaev Timur, lab_03
Reported by: | Garaev Timur | Owned by: | Антон Филатов |
---|---|---|---|
Component: | WW_mergesort | Version: | 2.0 |
Keywords: | Cc: |
Description
Change History (4)
comment:1 Changed 3 years ago by
Summary: | WW_mergesort, Garaev Timur, lab_02 → WW_mergesort, Garaev Timur, lab_03 |
---|
comment:2 Changed 3 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:3 Changed 3 years ago by
Type: | ожидаются исправления → ожидается проверка |
---|---|
Version: | 1.0 → 2.0 |
Я, честно, так и не осилил проблему с пересборкой Makefile. Наверное, даже рискну попросить помощи с этим, потому что искренне не понимаю, почему эта таска вновь и вновь запускается, даже если никаких изменений нет. Я пробовал заменять .o файлы на исодники (main.c, mergesort.c и другие) в рамках зависимостей цели link, он все равно упорно запускает ее даже если ничего не происходит. Возможно, это какая-то особенность make при работе с C, или я не понимаю чего-то фундаментального относительно ситуации.
По поводу остального:
Тесты теперь должны работать, проблема была в не совсем корректном разделении массива на кусочки в случае нечетной длины. Наверное, именно этот критерий объединял все непрошедшие тесты)
Замечания по стилю все исправлены. Единственное, мне, все-таки больше нравится обращение вида *(end + i) в функции swap. Оно все-таки подчеркивает, что мы работаем с какими-то неделимыми однобайтовыми участками памяти, явно меняя их друг с другом. И какого-то полноценного элемента (с точки зрения того, как мы привыкли видеть массивы), там в явном виде нет. Но наверное придерживаться одного стиля более правильно, чем видеть в том, какой вид обращения к элементу мы выбираем какой-то смысл, так что я все-таки просто молча исправил (ну или почти молча).
Include guards в том виде, в котором я понял его на паре присутсвует. Надеюсь, понял правильно.
comment:4 Changed 3 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Я, честно, так и не осилил проблему с пересборкой Makefile. Наверное, даже рискну попросить помощи с этим, потому что искренне не понимаю, почему эта таска вновь и вновь запускается, даже если никаких изменений нет. Я пробовал заменять .o файлы на исодники (main.c, mergesort.c и другие) в рамках зависимостей цели link, он все равно упорно запускает ее даже если ничего не происходит. Возможно, это какая-то особенность make при работе с C, или я не понимаю чего-то фундаментального относительно ситуации.
Всё просто: ваши цели в мэйкфайле должны называться также, как и файлы, которые они генерируют. То есть вместо prepape цель должна называться obj, вместо link - lab_03
По бонусному заданию: ваш mergesort вернёт наружу только результат одного из merge (кстати, подумайте - первого или последнего?). А остальные проблемы функции merge, если она где-то (но не везде) выплюнула -1, потеряются.
Ошибка сборки makefile является ошибкой за стиль. Поэтому корректность: 7/7
Стиль: 2,5/3
Итого: 9,5/10
make что-то пересобирает, когда ничего не изменилось
Тэкс, что-то падает у вас
вот такой тест, например
int 4 5 -5 0 14 23 -3 1 0 -5
С интами как-то плохо у вас 2 из 4 тестов на инты падают, причём я не могу в наскока сказать, чем таким принципиальным эти тесты друг от друга отличаются
(например, для теста int -1 0 2 0 3 у вас всё проходит)
И падает тест на char, когда их там 9 штук и они расположены в обратном порядке
Кроме того в задании указано, что в файле mergesort.h должна быть указана только одна функция. Если вам нужны дополнительные функции, объявите их в mergesort.c
корректность: 4/7
Стиль:
2/3
итого 6/7
бонусное задание буду смотреть, когда будет 10/10