Контрольная точка 1
Блок 1 закончен. Контрольная точка — восемь задач по всему блоку: по ним видно, какие темы осели, какие нет. Блок 2 — условия и циклы — строится поверх переменных, арифметики и чтения кода, поэтому незасчитанная задача показывает, что повторить до него.
Задачи
Каждая задача — в своей папке, условие — в TASK.txt этой папки. Данные у каждого стажёра свои.
| № | Папка | Что сделать | Темы | Где перечитать |
|---|---|---|---|---|
| 1 | kt1 |
заказ со скидкой | копейки, / и %, Printf |
страницы 1–2, памятка |
| 2 | kt2 |
коробки и паллеты | деление с остатком, округление вверх | страница 2 |
| 3 | kt3 |
артикул и этикетка | strings, strconv, utf8 |
памятка |
| 4 | kt4 |
программа не собирается | сообщения компилятора | страница 3, памятка |
| 5 | kt5 |
программа считает неверно | порядок действий, аргументы Printf |
страница 3 |
| 6 | kt6 |
таблица трассировки | присваивание, обмен, ++ |
страница 3; день 02, стр. 4 |
| 7 | kt7 |
значения переменных перед печатью | трассировка на бумаге | страница 3 |
| 8 | kt8 |
задача Парсонса | порядок подцелей | день 04, стр. 7 |
Начало:
stagiaire@lab:~$ cd ~/gocourse/day05/kt1
stagiaire@lab:~/gocourse/day05/kt1$ cat TASK.txtКак сдаётся
Все задачи проверяет одна команда — course check 05. Сдавать отдельно ничего не нужно, кроме ответа на задачу 7:
stagiaire@lab:~/gocourse/day05/kt7$ course answer day05.kt7 ЧИСЛАВместо слова ЧИСЛА — три числа через запятую, без пробелов и кавычек, в порядке, который назван в kt7/TASK.txt.
Программы — два запуска. Задачи 1–5 и 8 проверяются так: программа запускается как есть, с вашими данными, а потом ещё раз — с другими данными, подставленными в строки с начальными значениями. Какими — написано в TASK.txt. Условий в программах блока 1 нет, поэтому программа не может «узнать», какие данные ей дали: если хоть одно число посчитано в уме и вписано в Println, второй запуск его поймает. Отсюда требование к задачам 1–3: первые строки main — ровно такие, как в разделе «ВАШИ ДАННЫЕ», с теми же именами переменных.
Починки — точечно. В kt4 можно изменить не больше трёх строк, в kt5 — не больше двух. Строки import в счёт не входят: подключить нужный пакет можно. Оригиналы лежат в ~/.course/orig/day05. Что вы поменяли:
stagiaire@lab:~/gocourse/day05/kt4$ diff ~/.course/orig/day05/kt4/main.go ~/gocourse/day05/kt4/main.goПравка ушла не туда — вернуть оригинал и начать заново:
stagiaire@lab:~/gocourse/day05/kt4$ cp ~/.course/orig/day05/kt4/main.go ~/gocourse/day05/kt4/main.goПарсонс — только переставлять и удалять. Строку, которой не было в заготовке, проверка не примет.
Порог и пересдача
Задача засчитана целиком или не засчитана: половины задачи не бывает. В конце проверки — отдельный итог по контрольной точке:
--- контрольная точка 1 ---
Задач сдано: 0 из 8. Порог — 6. Пересдача — доделайте задачи и повторите course check 05.Так он выглядит на пустом стенде. Порог — 6 задач из 8.
День закрывается, только когда выполнены три условия: сдано 11 пунктов из 14 — тренировка и задачи вместе; контрольная точка взята; сданы контрольные вопросы. Пунктов может хватить и без контрольной, но день всё равно не закроется:
Контрольная точка не взята: 5 из 8 при пороге 6.
День не закрыт: пункты контрольной обязательны.Когда пункты и контрольная точка сданы, проверка напомнит о вопросах:
Остался последний шаг — контрольные вопросы по материалу:
course quiz 05После course quiz 05 запустите course check 05 ещё раз — тогда день закроется.
Пересдача — это повторный course check 05. Число попыток не ограничено, следующий день не блокируется. Между двумя проверками — не меньше 15 секунд, и каждая попытка записывается в ~/.course/checks. Пауза — против перебора «поправил наугад — проверил»: быстрее запустить программу самому и сравнить вывод с TASK.txt глазами.
Подсказки — в крайнем случае
course hint 05 kt3 работает и на контрольной: три уровня. Первый — направление и страница, второй — что именно не так и где. Третий — самый подробный разбор способа: что выписать из условия, в каком порядке действовать, где легко ошибиться, как себя проверить. Готового решения на контрольной точке третий уровень не даёт — ни кода, ни ответа: смысл контрольной в том, чтобы увидеть, какие темы не осели.
Все взятые подсказки попадают в отчёт. Задача, решённая по третьей подсказке, засчитывается, но тему, которая не осела, уже не показывает. То же с кодом от ИИ или соседа: проверка не видит, кто его писал.
Застряли — сначала по порядку:
- Перечитать
TASK.txtцеликом, особенно пример. - Запустить программу и сравнить вывод с условием построчно.
- Перечитать страницу из таблицы задач; найти сообщение или функцию в памятке — четвёртой странице.
- Двадцать минут пробовать самим.
- Взять первый уровень подсказки — направление. Обычно его хватает.
Как распределить время
На контрольную заложите около трёх часов.
- Первые десять минут прочитайте все восемь
TASK.txt, ничего не решая. - Начните с задач, в которых уверены: так к трудным вы придёте, когда часть порога уже взята.
- Не сидите над одной задачей дольше получаса — переходите к следующей и вернитесь потом.
- Запускайте
course check 05после каждой решённой задачи, а не в конце.
Что может пойти не так
| Что видите | Что это значит | Что делать |
|---|---|---|
в kt1 нет файлов .go |
main.go не создан или лежит в другой папке |
~/gocourse/day05/kt1/main.go |
не нашёл в main.go строк с начальными значениями: price |
переменная названа иначе, чем в TASK.txt |
первые строки main — ровно как в «ВАШИ ДАННЫЕ» |
то же сообщение, а имена в main.go те же, что в TASK.txt |
данные объявлены одной строкой через запятую: price, qty := 1510, 3. Проверка подменяет значения по строкам и такую запись не разбирает |
объявлять по одной строке на переменную, как в «ВАШИ ДАННЫЕ» |
второй запуск, с другими данными из TASK.txt: и неверная строка |
в программе число вместо переменной, или формула верна только на ваших данных | поставить в строки данных значения второго запуска из TASK.txt и запустить самим |
изменено строк: 7 (строки import не считаются), можно не больше 3 |
программа переписана, а не починена | вернуть оригинал через cp и чинить точечно |
строки нет среди исходных или она использована дважды |
в Парсонсе строка дописана или изменена | вернуть заготовку из ~/.course/orig/day05/kt8 |
В таблице остались знаки ? — замените каждый числом. |
заполнены не все клетки | найти ? в VS Code через Ctrl+F; прочерки заготовки не трогать |
Строк с шагами в таблице 10, а нужно 9 |
у шапки пропала # или строку добавили; при 8 — строку удалили |
шапка начинается с #; строк с шагами — ровно столько, сколько в заготовке |
задача 7 не засчитана, хотя программа из TASK.txt в черновике печатает то же, что вы думали |
спрашивается не вывод, а значения переменных в момент печати | таблица трассировки на бумаге, как в задаче 6; смотреть последнюю строку перед Printf |
Проверка дня 05 запускалась 9 с назад. Повторить можно через 6 с. |
между проверками меньше 15 секунд | подождать; тем временем запустить программу самим |
Материал дня закончен. Задания — course lab 05, дополнительное чтение — course extra 05