Opened 3 years ago

Closed 3 years ago

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

lab_07 = Matrix

Reported by: petrov.vladimir Owned by: Святослав Власов
Component: WW Matrix Version: 3.0
Keywords: Cc:

Description


Change History (7)

comment:1 Changed 3 years ago by petrov.vladimir

Version: 2.01.0

comment:2 Changed 3 years ago by Святослав Власов

Type: ожидается проверкаожидаются исправления

Попадали все тесты до одного)
Три простых на get-set и присваивание с ошибками валгринда, а все остальные по аутпуту, у тебя там какой-то мусор в выводе
Вот, например, на таком тесте

init a 2 2
set a 0 0 1
set a 0 1 2
set a 1 0 3
set a 1 1 4

+ a a
print a

init b 2 2
set b 1 1 -1
set b 0 1 -2
+= a b
print a
print b

exit

Выводится вот такой мусор:

2 4 
6 8 
1 2 
3 4 
1452813992 0 
3 3 
1452813991 -2 
0 -1 

Из замечаний по реализации и стилю:

  1. Плохо операторы += и -= реализовывать через операторы + и -, потому что ты в этом случае выделяешь новую матрицу под результат и освобождаешь старую память. Хотя эти операторы прекрасно реализуются без выделения доп. памяти. Лучше наоборот, неприсваивающие операторы реализовать через присваивающие.
  2. Память под матрицы можно выделять меньшим количеством операций new и ты даже знаешь как
  3. Копировать память тоже будет быстрее не посимвольно, а используя memcpy}
  4. Еще пустая матрица должна быть проинициализирована нулями, кажется из-за этого у тебя мусор появляется

comment:3 Changed 3 years ago by petrov.vladimir

Type: ожидаются исправленияожидается проверка
Version: 1.02.0

comment:4 Changed 3 years ago by Святослав Власов

Type: ожидается проверкаожидаются исправления

Теперь не прошел только тест на умножение матриц
Посмотри вот такой тест:

init a 2 1
init b 1 2
set a 0 0 1
set a 1 0 2
set b 0 0 3
set b 0 1 4

* a b
* b a

init c 2 2
set c 1 0 3
set c 0 1 2
* c c
*= c a
print c
exit

По прежнему операторы +=,-= реализуются с избыточным выделением и копированием памяти. Эти операторы можно написать вообще не тратя доп. память.

В остальном всё хорошо. 7/10 пока
Можешь исправить.

comment:5 Changed 3 years ago by petrov.vladimir

Version: 2.03.0

Постарался все исправить (+= & -=; умножение)

comment:6 Changed 3 years ago by petrov.vladimir

Type: ожидаются исправленияожидается проверка

comment:7 Changed 3 years ago by Святослав Власов

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

Насыпало кучу ворнингов при компиляции. Собирай перед отправкой свой код на линуксе.
У компилятора мака есть расхождения с линуксовым.

Тесты прошли, всё ок.
В следующий раз удаляй закомментированный код из посылок. Его там быть не должно.

8/10

Note: See TracTickets for help on using tickets.