День 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 эти задания не сверяет.
- Повторите разбор
packсо второй страницы руками в~/gocourse/day05/pack. - Для каждой решённой задачи на написание придумайте свой неудобный пример, посчитайте его на бумаге и прогоните, поменяв строки с данными.
- В
kt5найдите, какой ещё неверный вывод получился бы, если исправить только одну из двух ошибок. Предскажите, потом проверьте на копии вscratch. - Для программы из
kt7предскажите строку, которую она напечатает, потом проверьте запуском копии вscratch.
Порог дня: 11 пунктов из 14, и отдельно контрольная точка — 6 задач из 8. Без контрольной точки день не закрывается. Последний шаг — контрольные вопросы course quiz 05, после них ещё раз course check 05.