День 17 · задания

День 17 — задания

Практика прошла по ходу чтения — в блоках «Попробуйте сейчас». Здесь итог: всё, что сверит course check 17. Если какой-то пункт пропустили, вернитесь к странице, которая указана рядом. Список страниц:

▶ Выполните
course toc 17

1. Пять предсказаний — страницы 1–4

Сделать: сдать ответы на пять вопросов «что выведет».

▶ Выполните · выделенное замените своим
course answer day17.q1 ОТВЕТ
course answer day17.q2 ОТВЕТ
course answer day17.q3 ОТВЕТ
course answer day17.q4 ОТВЕТ
course answer day17.q5 ОТВЕТ

Вместо ОТВЕТ — три числа через пробел, как их печатает Println. Можно отправить заново — засчитывается последний.

Готово, когда: пункты q1–q5 в course check 17 зелёные.

2. Починка truck — страница 4

Сделать: в ~/gocourse/day17/truck/truck.go функция firstTruck собирает первую машину в своём массиве, и весь заказ после вызова остаётся прежним. Правка — не больше четырёх строк, main.go не меняется.

▶ Выполните
cd ~/gocourse/day17/truck
cat TASK.txt
diff ~/.course/orig/day17/truck/truck.go truck.go

Готово, когда: пункты truck и trucksmall зелёные. Проверка прогонит программу на нескольких вводах — часть скрыта — и сама вызовет firstTruck, чтобы сверить заказ до и после.

3. Справка по slices — страница 5

Сделать: посмотреть справку по функциям пакета.

▶ Выполните
go doc slices.Sort

Готово, когда: пункт t_doc зелёный.

4. Отчёт report — страница 5

Сделать: дописать ~/gocourse/day17/report/main.go: ниже порога — по возрастанию, наибольший остаток, все ячейки в порядке ввода, пустой ввод — Ячеек нет.

▶ Выполните
cd ~/gocourse/day17/report
cat TASK.txt

Готово, когда: пункт report зелёный. Скрытые вводы — в разном порядке, с повторами, ровно на пороге и пустой.

5. Тест keep — страница 6

Сделать: написать в каталоге ~/gocourse/day17/keep файл nonempty_test.go — тест, который проверяет и результат nonEmpty, и что входной срез после вызова прежний. nonempty.go не меняйте.

▶ Выполните
cd ~/gocourse/day17/keep
cat TASK.txt
go test -v .

Готово, когда: пункты keep и keepres зелёные: тест проходит на функции, падает на версии, которая портит вход, и на версии, которая ставит ноль в ячейку ровно в порог.

6. Трассировка trace — страница 7

Сделать: заменить все ? в ~/gocourse/day17/trace/table.txt значениями по правилам 27–29, без запуска.

▶ Выполните
cd ~/gocourse/day17/trace
cat table.txt

Готово, когда: пункт trace зелёный.

7. Порядок в коде — страница 7

Сделать: код truck, report и keep отформатирован, go vet молчит.

▶ Выполните
cd ~/gocourse/day17
gofmt -l .
go vet ./...

Готово, когда: пункт code_fmt зелёный. Пока truck и report нетронуты, а в keep нет теста с настоящей проверкой, он красный — даром его не получить.

8. Коммиты — страница 7

Сделать: не меньше четырёх непустых коммитов в ~/gocourse/day17; в последнем — тест keep, починенный truck.go и дописанный отчёт.

▶ Выполните
cd ~/gocourse/day17
git status -s
git log --oneline

Готово, когда: пункт git зелёный.

9. Словарик ошибок — страница 7

Сделать: в ~/errors.md — минимум 34 строки вида «текст ошибки — что значило». Между ошибкой и разбором — тире с пробелами вокруг.

Готово, когда: пункт errors зелёный.

10. Звёздочка

В зачёт не входит, course check 17 эти задания не смотрит.

Готово, когда: для второго пункта тест падает, если убрать копию в lastN.


Порог: 12 пунктов из 15. После зачёта — контрольные вопросы: course quiz 17.