Opened 5 years ago
Closed 4 years ago
#398 closed ожидаются исправления (задача сдана)
WW #5
Reported by: | Maria Chizhova | Owned by: | Maria Chizhova |
---|---|---|---|
Component: | WW_c_io | Version: | 3.0 |
Keywords: | Cc: |
Description
Change History (12)
comment:1 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Maria Chizhova |
---|---|
Type: | ожидается проверка → ожидаются исправления |
comment:3 Changed 5 years ago by
Owner: | changed from Maria Chizhova to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 1.0 → 2.0 |
comment:4 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Maria Chizhova |
---|
Корректность 5/7:
- Корректный Makefile и структура папок +1
- Корректные заголовочные файлы +0.5
- Во всех исходных файлах подключены нужные заголовки и только они +0.5
- Корректное разделение по файлам, корректная реализация списка +1
- Корректно работает загрузка из текстовых файлов (в том числе отрицательные координаты) и команда print реализована при помощи apply (возможно, без параметра void *data) +1
- Формат вывода в реализованной print строго соблюдается +0.5
- Корректно работает запись текстовых файлов +0.5
Стиль 2.5/3:
- Отделите в
main
пустыми строчками блоки: начало, конец, загрузка, выполнение команды. - Ветку
loadtext
тоже проверьте при помощиassert
: программа должна падать, если дать ей неизвестный параметр. - Проверка
argc > 1
недостаточно строгая. Можно строже.
comment:5 Changed 5 years ago by
Type: | ожидается проверка → ожидаются исправления |
---|
comment:6 Changed 5 years ago by
Owner: | changed from Maria Chizhova to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
Version: | 2.0 → 3.0 |
comment:7 Changed 5 years ago by
Owner: | changed from Egor Suvorov to Maria Chizhova |
---|
Некорректный формат в бинарных данных: в условии требуется записывать 4 байта, а не 3. Но если вы сейчас просто поменяете 4 на 3, то получите UB. Плюс надо использовать wb
, а не w
.
По стилю:
- Лучше не
> 3
и< 6
, а>= 4
(минимальное количество аргументов) и<= 5
(максимальное). А ещё лучше — оставить только>= 4
, а остальные проверки добавить в конкретные ветки с==
. - Объявляйте переменные внутри цикла, если можете.
comment:8 Changed 4 years ago by
Owner: | changed from Maria Chizhova to Egor Suvorov |
---|
comment:9 Changed 4 years ago by
Owner: | changed from Egor Suvorov to Maria Chizhova |
---|---|
Type: | ожидается проверка → ожидаются исправления |
Корректность и бонус есть (7/7+2).
По стилю 2.5/3:
- Поставьте в
count
assert
на количество аргументов. savebin
: объявитеpnode
внутри цикла.loadbin
: незачем занулять переменные в конце итерации.fread
перезапишет первые три байта.text
-->extend_sign_24bit
, а функцияbinary
вам просто не нужна.- В
extend_sign_24bit
вам надо идеологически не арифметику делать, а биты менять: поставить старшие в единицы. Это|
с константой0xFF000000
.
comment:10 Changed 4 years ago by
Owner: | changed from Maria Chizhova to Egor Suvorov |
---|---|
Type: | ожидаются исправления → ожидается проверка |
comment:11 Changed 4 years ago by
Owner: | changed from Egor Suvorov to Maria Chizhova |
---|---|
Type: | ожидается проверка → ожидаются исправления |
2.7/3, всё ещё актуальны замечания по стилю 1, 4, 5.
- Внутри
binary
не нужен иф, можно просто всегда брать&
. А на самом деле не нужен и самbinary
, можно вsavebin
напрямую писатьpnode->x
/pnode->y
.
comment:12 Changed 4 years ago by
Resolution: | → задача сдана |
---|---|
Status: | assigned → closed |
Note: See
TracTickets for help on using
tickets.
Корректность 4/7:
point_list.c
зависит ещё и отclist.h
.print
должен выводить перевод строки в конце.Стиль 1.5/3:
n
, аargc
.assert
, проверяющий, чтоargc
хватает.if
'ов на команду вelse if
, а в конце сделайтеassert(!"Unknown command")
;FILE *fout = fopen(...)
, сразу на одной строчке.savetext
лучше циклfor
, а неwhile
. Или вообщеapply
.fscanf() >= 0
лучше заменить наfscanf() == чтото
loadtext
/savetext
параметры должны называться одинаково для симметрии. Лучшеfile_name
.