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

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

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

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

1. Документация — страница 5

Что сделать: выполнить в терминале go doc для функции пакета strings и для функции пакета math или strconv — например, как на пятой странице:

▶ Выполните
go doc strings.Repeat
go doc math.Ceil

Готово, когда: обе команды есть в журнале — пункты t_godoc и t_godoc2.

2. Этикетка — страницы 3–5

Что сделать: программу ~/gocourse/day04/label/main.go, которая печатает шесть строк из ~/gocourse/day04/label/TASK.txt — у вас свой товар, у соседа другой.

▶ Выполните
cd ~/gocourse/day04/label
cat TASK.txt
go run .
gofmt -l .
go vet .

Отдельного пункта проверки у go vet сегодня нет — привычку держите сами. Сдавайте label только после того, как vet промолчал.

Проверка запускает программу трижды: с вашими значениями; копией, в которой значения заменены другими; и копиями, в которых math.Ceil заменена на math.Floor, а math.Round — на math.Trunc. Этикетка, посчитанная в уме и вписанная в Println, второй запуск не проходит, а расчёт целыми числами рядом с вызовом math, который никуда не идёт, — третий.

Готово, когда: программа печатает этикетку из TASK.txt буква в букву и пересчитывает её на других значениях (label), а считают её функции ToUpper, Repeat, Round, Ceil, без готовых строк и в формате gofmt (label_funcs).

3. Чужой код: таблица и три ответа — страница 6

Что сделать: заполнить таблицу трассировки ~/gocourse/day04/read/table.txt по программе ~/gocourse/day04/read/main.go и ответить на три вопроса из ~/gocourse/day04/read/TASK.txt — сначала предсказание, потом запуск:

▶ Выполните
cd ~/gocourse/day04/read
cat TASK.txt
cat table.txt

В таблице заменяются только знаки ?: шаги, номера строк и прочерки остаются. Строку пишите в кавычках, дробное число — так, как его печатает Println (23.5 и 3, без .0).

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

Вместо каждого ВАШ_ОТВЕТ — строка вывода целиком: в q5 первая, в q6 вторая, в q7 третья.

Готово, когда: таблица совпала с эталоном (trace), а все три ответа — с выводом программы (q5, q6, q7).

4. Задача Парсонса — страница 7

Что сделать: собрать ~/gocourse/day04/parsons/main.go из строк заготовки — переставить их и удалить две лишние.

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

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

5. Две починки — страницы 5 и 7

Что сделать: починить fix1 и fix2, чтобы они печатали то, что обещано в комментарии в начале файла. В каждой изменить не больше двух строк.

▶ Выполните
cd ~/gocourse/day04/fix1
go run .
cd ~/gocourse/day04/fix2
go run .

Починенные программы проверка тоже запускает дважды — второй раз с другими числами в первых строках main. Вписанный вместо починки ответ на втором запуске виден сразу.

Готово, когда: fix1 печатает остаток между двумя чертами и пересчитывает его на других числах, изменено 1–2 строки (fix1); то же для fix2 с артикулом и ячейкой (fix2).

6. Четыре предсказания — страницы 1–4

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

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

Вместо каждого ВАШ_ОТВЕТ — строка вывода программы целиком: q1 — с первой страницы, q2 — со второй, q3 — с третьей, q4 — с четвёртой.

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

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

7. Словарик ошибок — страницы 1–4 и 7

Что сделать: довести ~/errors.md до девяти строк вида «текст ошибки — что значило»: слева сообщение компилятора, как его напечатал Go, справа через тире разбор по-русски. Двоеточие вместо тире не засчитывается. Записи прошлых дней считаются.

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

8. Звёздочка

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

▶ Выполните
  cp ~/gocourse/day04/read/main.go ~/gocourse/day04/scratch/main.go

В копии поменяйте weight на 30.0 и добавьте в список ещё один стул. Предскажите все три строки вывода, потом запустите в scratch.


Порог: 15 пунктов из 16 — потерять можно один. Этикетка держит два пункта (label и label_funcs): без неё день не закрывается. После зачёта — контрольные вопросы: course quiz 04.