День 08 — задания
Практика прошла по ходу чтения — в блоках «Попробуйте сейчас». Здесь итог: всё, что сверит course check 08. Если какой-то пункт пропустили, вернитесь к странице, которая указана рядом. Список страниц:
course toc 081. Четыре предсказания — страницы 1, 2, 3, 7
Сделать: сдать ответы на четыре вопроса «что выведет».
course answer day08.q1 ОТВЕТ
course answer day08.q2 ОТВЕТ
course answer day08.q3 ОТВЕТ
course answer day08.q4 ОТВЕТВместо ОТВЕТ — число или два числа через пробел, как напечатала бы программа. Можно отправить заново — засчитывается последний.
Готово, когда: пункты q1, q2, q3, q4 в course check 08 зелёные.
2. Граница цикла — страница 2
Сделать: почините ~/gocourse/day08/fix1, чтобы он печатал все ячейки с first по last включительно и их число. Строки first := … и last := … не трогайте. Свою правку посмотрите через diff с оригиналом из ~/.course/orig/day08.
Чинится заголовок цикла: правка — одна-две строки, цикл остаётся на месте, ячейку печатает одна строка — та, что внутри цикла. Проверка прогоняет программу дважды: с вашими номерами и ещё раз с другими, подставленными в first и last.
Готово, когда: пункты fix1 и t_diff зелёные.
3. Таблица упаковки — страница 2
Сделать: ~/gocourse/day08/pack/main.go читает три числа и печатает таблицу из ~/gocourse/day08/pack/TASK.txt.
Готово, когда: пункт pack зелёный. Проверка прогонит программу на нескольких вводах; часть из них скрыта — на них вы увидите только ввод и то, что напечатала программа.
4. go vet — страница 3
Сделать: запустите go vet . на программе с бесконечным циклом и посмотрите, что он находит строку, до которой программа не дойдёт.
Готово, когда: пункт t_vet зелёный.
5. Две трассировки цикла — страница 4
Сделать: заполните ~/gocourse/day08/trace1/table.txt и ~/gocourse/day08/trace2/table.txt: каждая выполненная строка каждого прохода, строка for — тоже. В trace2 номера строк вписываете вы. Число строк, шапку и прочерки не трогайте, program.go не меняйте.
Готово, когда: пункты trace1 и trace2 зелёные.
6. Ввод до конца — страница 5
Сделать: подайте программе ввод из файла через < и через конвейер |.
Готово, когда: пункты t_file и t_pipe зелёные.
7. Накопитель на месте и итог дня — страница 6
Сделать:
~/gocourse/day08/fix2печатает нарастающий итог после каждой отгрузки. Правка — одна-две строки; строкиimportне считаются.~/gocourse/day08/total/main.goпечатает итог дня по условию~/gocourse/day08/total/TASK.txt: пустые строки, пустой ввод и строку с ошибкой он обрабатывает так, как там сказано. Сообщение об ошибке идёт в поток ошибок, и программа завершается кодом 1 — проверка смотрит оба потока по отдельности и код возврата.
Готово, когда: пункты fix2 и total зелёные.
8. Формат
Сделать: отформатируйте код pack и total — Ctrl+S в VS Code или gofmt -w . в папке задания.
Пункт открывается, только когда сами задания написаны: пустая заготовка func main() {} его не зеленит.
Готово, когда: gofmt -l . в каждой папке ничего не печатает — пункт code_fmt зелёный.
9. Словарик ошибок — страница 7
Сделать: в ~/errors.md — минимум шестнадцать строк вида «текст ошибки — что значило». Между ошибкой и разбором — тире с пробелами вокруг.
Готово, когда: пункт errors зелёный.
10. Звёздочка
В зачёт не входит, course check 08 эти задания не смотрит.
- Вложенные циклы — в
course extra 08. Оттуда: напечатайте вscratchтаблицу умножения для коробок (строки — число коробок от 1 до 5, столбцы — вместимость 6, 8, 10, 12; внутренний цикл с шагом 2). Сколько раз выполнится тело внутреннего цикла? Сначала посчитайте, потом проверьте счётчиком. - Допишите
total: кроме среднего, печатать самую мелкую отгрузку. Какое начальное значение у минимума и почему не 0? - Задание
~/gocourse/day08/biggest— самая крупная отгрузка и номер первой строки с ней, страница 7. Условие — вTASK.txt, неудобные вводы придумайте и проверьте сами. - Перепишите
biggestбез условияline == 1: начальное значение максимума возьмите из первой строки ввода отдельнымscanner.Scan()до цикла. Что теперь делать с пустым вводом?
Готово, когда: посчитанное заранее совпало с запуском, а biggest на всех своих неудобных вводах печатает то, что требует TASK.txt.
Порог: 14 пунктов из 16. После зачёта — контрольные вопросы: course quiz 08.