День 02 — задания
Практика прошла по ходу чтения — в блоках «Попробуйте сейчас». Здесь итог: всё, что сверит course check 02. Если какой-то пункт пропустили, вернитесь к странице, которая указана рядом. Оглавление дня с номерами страниц:
course toc 021. Три починки — страницы 1, 2, 6
Что сделать: почините программы fix1, fix2, fix3 в ~/gocourse/day02; свою правку в fix2 посмотрите через diff с оригиналом из ~/.course/orig/day02.
Готово, когда: программы собираются и печатают то, что обещано в комментарии в начале файла. В каждой изменено не больше двух строк кода (строки комментариев и import в размер правки не входят), а в fix3 строка const осталась как была и у новой переменной своё имя, не price: это часть пункта самой починки, отдельного пункта на размер правки больше нет. Числа в задании ваши, и проверка запускает каждую починенную программу второй раз с другими числами — вписанный ответ она не пройдёт. Правку в fix2 вы смотрели через diff — пункты fix1, fix2, fix3, t_diff.
2. Остаток на складе — страница 3
Что сделать: напишите ~/gocourse/day02/stock/main.go по условию ~/gocourse/day02/stock/TASK.txt — числа у вас свои.
Готово, когда: программа печатает пять строк из TASK.txt, и при этом:
- В программе одна переменная для остатка (имя любое, в условии она для примера
stock), и каждое из четырёх событий меняет её отдельной строкой:=,+=,-=или++. - В каждой из пяти строк печати стоит эта переменная, а не число.
- Промежуточных остатков в коде нет, числа событий написаны по одному разу — остальное считает программа. Проверка убеждается в этом вторым запуском: копия программы с другими числами событий обязана напечатать другой ответ.
- Код отформатирован:
gofmt -l .в папкеstockничего не печатает. Этот пункт (stock_fmt) появляется после того, как зачтён самstock: пока программы нет, форматировать нечего.
Программы вы запускали через go run ., формат проверяли через gofmt — пункты stock, stock_fmt, t_gorun, t_gofmt.
3. Две трассировки — страницы 4, 5
Что сделать: заполните ~/gocourse/day02/trace1/table.txt и ~/gocourse/day02/trace2/table.txt.
Готово, когда: вместо каждого ? — значение переменной после выполнения шага, на строке с печатью — те же значения, что строкой выше. Строки, шапка и прочерки не тронуты, program.go не менялся — пункты trace1 и trace2.
4. Перекладка по кругу — страница 5
Что сделать: напишите ~/gocourse/day02/rotate/main.go по условию ~/gocourse/day02/rotate/TASK.txt.
Готово, когда: программа печатает восемь строк из TASK.txt. Каждое число из условия написано в коде один раз, три строки печати после «После:» — те же самые, что после «До:», а значения переставляют присваивания между ними — пункт rotate.
5. Четыре предсказания — страницы 3 и 5
Что сделать: отправьте ответы на четыре вопроса «что выведет»:
course answer day02.q1 ВАШ_ОТВЕТ
course answer day02.q2 ВАШ_ОТВЕТ
course answer day02.q3 ВАШ_ОТВЕТ
course answer day02.q4 ВАШ_ОТВЕТВместо ВАШ_ОТВЕТ — ответ на вопрос со страницы: для q1 число, для q2–q4 два числа через пробел.
Ответ можно отправить заново — засчитывается последний.
Готово, когда: все четыре ответа засчитаны — пункты q1, q2, q3, q4.
6. Словарик ошибок — страница 6
Что сделать: допишите разборы ошибок в ~/errors.md.
Готово, когда: в ~/errors.md минимум пять строк вида «текст ошибки — что значило». Между ошибкой и разбором — тире с пробелами вокруг; строку с двоеточием вместо тире проверка не засчитает — пункт errors.
7. Звёздочка
В зачёт не входит.
- В
scratchнапишите перекладку трёх ячеек в обратную сторону: из A — в C, из C — в B, из B — в A. Сначала через одну временную переменную, потом одной строкой. Протрассируйте оба варианта на бумаге. - Четыре ячейки по кругу через временную переменную. Сколько временных переменных понадобилось? Почему не больше?
- Объявите в
mainконстанту и не используйте её. Потом то же с переменной. Запишите, чем отличается реакция компилятора, и подумайте почему.
Готово, когда: трассировки и ответы записаны у вас; course check 02 эти опыты не сверяет.
Порог: 14 пунктов из 16. После зачёта — контрольные вопросы: course quiz 02.