Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

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

WW #5

Reported by: smirnov.ilya Owned by: Дмитрий Свиридкин
Component: WW_c_io Version: 2.0
Keywords: Cc:

Description


Change History (8)

comment:1 Changed 5 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to smirnov.ilya
Type: ожидается проверкаожидаются исправления

Чтение из бинарного файла некорректно: char может оказаться знаковым и все сломается.

Форматирование пляшет

Имена переменных a,b,c,d в функциях чтения и записи следует переосмыслить. Однобуквенным именем l вообще лучше никогда не пользоваться: часто путается с 1, I.

Имя второго аргумента в функциях save/load не соответствует назначению

Зачем в функцию LoadBin? передавать дополнительную функцию?

5/10

comment:2 Changed 5 years ago by smirnov.ilya

Owner: changed from smirnov.ilya to Дмитрий Свиридкин
Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:3 Changed 5 years ago by Дмитрий Свиридкин

Owner: changed from Дмитрий Свиридкин to smirnov.ilya
Type: ожидается проверкаожидаются исправления
  1. Дополнение до двух работает некорректно. Знаковый бит в типе int никак не именяется.
  1. int не всегда 4 байта. Используйте типы с фиксированной длиной: int32_t, uint32_t, uint8_t
  1. Магическую константу в объявлении лучше замените на (1 << 24) (+/-) 1
  1. У вас переменные то с маленькой буквы, то с большой буквы. С функциями тоже.
  1. Как параметр может называться unused, если он используется?!

int *sum; sum = (int *)unused; Не разрывайте объявление и инициализацию.

7. (void)argc; Если аргументов недостаточно, лучше по-нормальному вернуть EXIT_FAILURE, чем улететь с segmentation fault

  1. intrusive_list *MyList = &list; Почему бы не использовать и далее просто &list ?

7.0

comment:4 Changed 5 years ago by smirnov.ilya

Но оно же работает с отрицательными числами...Или надо именно через дополнительный код?

comment:5 Changed 5 years ago by smirnov.ilya

Owner: changed from smirnov.ilya to Дмитрий Свиридкин
Type: ожидаются исправленияожидается проверка

comment:6 in reply to:  4 Changed 5 years ago by Дмитрий Свиридкин

Replying to smirnov.ilya:

Но оно же работает с отрицательными числами...Или надо именно через дополнительный код?

Оно не работает с отрицательными числами представленными в дополнительном коде. Именно такое представление указано в задании. И именно в таком представлении записаны числа в тестовых файлах.

comment:7 Changed 5 years ago by Дмитрий Свиридкин

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

10.2

В общем случае то, что беззнаковое трехбайтное число превышает 5000000, не означает, что это число, будучи знаковым, будет отрицательным.

Ваше решение пока лидирует по сложности метода чтения и записи в бинарном формате.

argc для любой программы всегда >= 1.
Правильное решение должо допускать argc от 4 до 5.

Last edited 5 years ago by Дмитрий Свиридкин (previous) (diff)

comment:8 Changed 5 years ago by smirnov.ilya

А как можно было бы упростить чтение/запись?

Note: See TracTickets for help on using tickets.