День 11 — задания
Практика прошла по ходу чтения — в блоках «Попробуйте сейчас». Здесь итог: всё, что сверит course check 11. Если какой-то пункт пропустили, вернитесь к странице, которая указана рядом. Список страниц:
course toc 111. Четыре предсказания — страницы 2 и 3
Сделать: сдать ответы на четыре вопроса «что выведет».
course answer day11.q1 ОТВЕТ
course answer day11.q2 ОТВЕТ
course answer day11.q3 ОТВЕТ
course answer day11.q4 ОТВЕТВместо ОТВЕТ — число, а для q3 три числа через пробел, в том порядке, в каком они напечатаются. Можно отправить заново — засчитывается последний ответ.
Готово, когда: пункты q1, q2, q3, q4 в course check 11 зелёные.
2. Результат никуда не делся — страница 2
Сделать: почините ~/gocourse/day11/fix1, чтобы он печатал вес партии вместе с упаковкой. Числа в main не трогайте, функцию addPack тоже. Свою правку посмотрите через diff с оригиналом из ~/.course/orig/day11.
Готово, когда: пункт fix1 зелёный. Размер правки сверит пункт fixsmall — он в разделе 4.
3. Таблица вызова — страница 4
Сделать: заполните ~/gocourse/day11/trace/table.txt: каждая выполненная строка — шаг, колонка «где мы» — имя функции латиницей (main или boxes). Номера строк, шаги и прочерки уже стоят, меняйте только ?. Число строк не меняйте, program.go не правьте.
Готово, когда: пункт trace зелёный.
4. Порядок аргументов — страница 5
Сделать: почините ~/gocourse/day11/fix2 — программа должна печатать правдоподобное число коробок и остаток в последней. Функцию boxes и числа в main не меняйте.
Готово, когда: пункты fix2 и fixsmall зелёные. В fix1 и fix2 должно быть изменено по одной-две строки.
5. Вынести повтор в функцию — страница 6
Сделать: в ~/gocourse/day11/report объявите свою функцию, которая считает число коробок, и замените ею три одинаковых куска. Вывод программы должен остаться прежним. Условие — ~/gocourse/day11/report/TASK.txt.
Готово, когда: пункты report и split зелёные. Проверка прогонит программу на нескольких вводах; часть из них скрыта — на них вы увидите только ввод и то, что напечатала программа.
6. Стоимость с порогом партии — страница 6
Сделать: ~/gocourse/day11/cost/main.go — функция cost(qty int) int и main, который читает заказы до конца ввода и печатает итог. Цена, порог и вторая цена — в ~/gocourse/day11/cost/TASK.txt, они ваши.
Готово, когда: пункты cost и cost_func зелёные. Цены и порог пишутся внутри функции cost, а не в main.
7. Формат
Сделать: отформатируйте код report и cost — Ctrl+S в VS Code или gofmt -w . в папке задания.
Готово, когда: gofmt -l . в каждой папке ничего не печатает — пункт code_fmt зелёный.
8. Первый репозиторий — страница 7
Сделать:
- назовитесь:
git config --global user.nameиuser.email; git initв~/gocourse/day11;- три коммита: работа дня, потом
.gitignore, потом имена цене и порогу вcost/main.go—git add .иgit commit -m "…"после каждого; - посмотрите изменения через
git diffдо того, как добавлять их, и историю черезgit log --oneline; - создайте файл
.gitignoreв папке дня с одной строкойprog, чтобы собранные программы не попадали в историю. Собирайте их какgo build -o prog .
Готово, когда: пункты git, gitignore, t_gitdiff и t_log зелёные.
t_gitdiff и t_log смотрят не файлы, а журнал команд: результата у git diff и git log нет, и засчитать их можно только по тому, что вы их набирали. Если они красные при сделанной работе — проверьте журнал командой course doctor (седьмая страница, «Два пункта смотрят не файлы, а ваши команды»).
9. Словарик ошибок — страница 5
Сделать: в ~/errors.md — минимум двадцать две строки вида «текст ошибки — что значило». Между ошибкой и разбором — тире с пробелами вокруг.
Готово, когда: пункт errors зелёный.
10. Звёздочка
В зачёт не входит, course check 11 эти задания не смотрит.
- В
scratchнапишите функциюfunc fits(qty int, size int) bool, которая отвечает, помещается ли заказ ровно в целое число коробок. Как называть функцию, которая возвращаетbool, — страница 5. - Допишите
cost: пустьmainпечатает ещё одну строку — сколько сэкономил бы клиент, добрав заказ до порога. Понадобится второй вызов той же функции с другим аргументом. - Перепишите
reportтак, чтобы чтение числа из ввода тоже стало функцией. Что она должна возвращать и что делать, если во вводе не число? Готового ответа сегодня нет — он будет завтра, в дне 12. - Посмотрите, что записалось в историю:
git show --statпечатает последний коммит со списком файлов,git log --oneline -2— два последних. Найдите в истории момент, когда вы починилиfix1.
Готово, когда: fits отвечает верно на заказе, который делится нацело, и на том, который не делится; в истории нашёлся нужный коммит.
Порог: 15 пунктов из 18. После зачёта — контрольные вопросы: course quiz 11.