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

День 05 — задания и контрольная точка 1

Тренировка прошла по ходу чтения — в блоках «Попробуйте сейчас». Здесь итог: всё, что сверит course check 05. Правила контрольной точки — на пятой странице; перечитайте их, прежде чем начинать.

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

Тренировка

Шесть пунктов, в контрольную точку не входят.

1. Запуски — страница 2

Что сделать: запускать программы в терминале через go run . — например, разминку:

▶ Выполните
cd ~/gocourse/day05/warmup
go run .

Готово, когда: в журнале команд есть go run — пункт t_gorun.

2. Формат — страница 2, шаг «сверить»

Что сделать: в папке готовой программы выполнить:

▶ Выполните
gofmt -l .

Готово, когда: команда есть в журнале — пункт t_gofmt. Пустой вывод — файл в формате.

3. Подозрительное — страница 2, шаг «сверить»

Что сделать: там же выполнить:

▶ Выполните
go vet .

Готово, когда: команда есть в журнале — пункт t_vet.

4. Разминка — страница 2

Что сделать: ~/gocourse/day05/warmup/main.go, который решает задачу из TASK.txt той же папки. Первые строки main — ровно как в разделе «ВАШИ ДАННЫЕ».

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

Готово, когда: программа проходит оба запуска: с вашими данными и с данными примера — пункт warmup.

5. Предсказание — страница 3

Что сделать: отправить, что напечатает программа из последнего блока третьей страницы:

▶ Выполните · выделенное замените своим
course answer day05.q1 ВАШ_ОТВЕТ

Вместо ВАШ_ОТВЕТ — строка, которую напечатает программа.

Готово, когда: ответ совпадает с выводом программы — пункт q1.

6. Словарик — страница 4

Что сделать: довести ~/errors.md до десяти строк вида «текст ошибки — что значило», через тире.

Готово, когда: в файле не меньше десяти таких строк — пункт errors.


Контрольная точка 1

Восемь задач, каждая — в своей папке ~/gocourse/day05/kt1 … kt8. Условие — в TASK.txt этой папки, у каждого стажёра свои данные. Порог — 6 из 8.

Задача 1 — kt1: заказ со скидкой, рубли и копейки

Что сделать: написать ~/gocourse/day05/kt1/main.go по условию. Первые строки main — ровно как в разделе «ВАШИ ДАННЫЕ».

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

Готово, когда: main.go проходит два запуска — с вашими данными и с данными примера (пункт kt1).

Задача 2 — kt2: раскладка по коробкам и паллетам

Что сделать: написать ~/gocourse/day05/kt2/main.go по условию. Первые строки main — ровно как в разделе «ВАШИ ДАННЫЕ».

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

Готово, когда: main.go проходит два запуска — с вашими данными и с данными примера (пункт kt2).

Задача 3 — kt3: артикул и этикетка, строковые функции

Что сделать: написать ~/gocourse/day05/kt3/main.go по условию. Первые строки main — ровно как в разделе «ВАШИ ДАННЫЕ».

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

Готово, когда: main.go проходит два запуска — с вашими данными и с данными примера (пункт kt3).

Задача 4 — kt4: программа не собирается

Что сделать: починить ~/gocourse/day05/kt4/main.go, изменив не больше трёх строк без учёта import.

▶ Выполните
cd ~/gocourse/day05/kt4
cat TASK.txt
go run .

Что вы поменяли по сравнению с оригиналом:

▶ Выполните
diff ~/.course/orig/day05/kt4/main.go ~/gocourse/day05/kt4/main.go

Готово, когда: программа собирается и печатает четыре строки из TASK.txt, изменено не больше трёх строк, и второй запуск, с другими данными, тоже совпал (пункт kt4).

Задача 5 — kt5: программа считает неверно

Что сделать: починить ~/gocourse/day05/kt5/main.go, изменив не больше двух строк.

▶ Выполните
cd ~/gocourse/day05/kt5
cat TASK.txt
go run .

Что вы поменяли по сравнению с оригиналом:

▶ Выполните
diff ~/.course/orig/day05/kt5/main.go ~/gocourse/day05/kt5/main.go

Готово, когда: программа печатает три строки из TASK.txt, изменено не больше двух строк, и второй запуск, с другими данными, тоже совпал (пункт kt5).

Правка ушла не туда — как вернуть оригинал, написано на пятой странице в разделе «Как сдаётся».

Задача 6 — kt6: таблица трассировки

Что сделать: заполнить ~/gocourse/day05/kt6/table.txt — заменить каждый знак ? значением переменной после выполнения строки.

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

Готово, когда: в table.txt не осталось ?, строк с шагами столько же, сколько в заготовке, и вся таблица совпала (пункт kt6).

Задача 7 — kt7: значения переменных перед печатью

Что сделать: по трассировке на бумаге назвать значения трёх переменных в момент печати.

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

Составьте таблицу трассировки на бумаге, потом отправьте ответ:

▶ Выполните · выделенное замените своим
course answer day05.kt7 ЧИСЛА

Вместо ЧИСЛА — три числа через запятую, в порядке из kt7/TASK.txt.

Ответ на задачу 7 можно отправить заново — засчитывается последний.

Готово, когда: course answer ответил Принято: day05.kt7 = …, и три числа совпали со значениями переменных в момент печати (пункт kt7).

Задача 8 — kt8: задача Парсонса

Что сделать: расставить строки ~/gocourse/day05/kt8/main.go по порядку и удалить две лишние — только переставлять и удалять.

▶ Выполните
cd ~/gocourse/day05/kt8
cat TASK.txt
go run .

Готово, когда: программа печатает три строки из TASK.txt, в файле только исходные строки, каждая не больше одного раза, и второй запуск, с другими данными, тоже совпал (пункт kt8).


Программы и таблицу можно поправить и проверить снова: пересдача — это повторный course check 05.

Звёздочка

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


Порог дня: 11 пунктов из 14, и отдельно контрольная точка — 6 задач из 8. Без контрольной точки день не закрывается. Последний шаг — контрольные вопросы course quiz 05, после них ещё раз course check 05.