Проверить программы онлайн · файлы остаются в браузере
10 класс, углублённый уровень. Python, среда IDLE. Пять программ, одна тема: считать стоимость доставки. Каждая следующая программа — шаг вперёд от предыдущей.
Проверка.bat из общей папки: она запускает каждое
решение на семи разных наборах данных и сравнивает вывод с правильным.
Поэтому программа должна работать при любых входных данных, а не
только при тех, что в примере. Интернет для проверки не нужен.
Шесть коротких программ. Сначала напиши, что выведет каждая, и только потом, если хочешь, проверь в IDLE. Смысл разминки в том, чтобы читать код, а не запускать его. Оценка за неё не ставится — но именно эти шесть мест на первой контрольной подводят чаще всего.
Все пять программ считают по одному и тому же тарифу. Держи его перед глазами — он понадобится в каждом задании.
| Что | Сколько |
|---|---|
| Подача курьера | 150 руб. |
| За каждый километр | 12 руб. |
| За каждый килограмм | 20 руб. |
| Ночью, с 22:00 до 05:59 | вся сумма умножается на 1,4 |
| Если вышло меньше 200 руб. | доставка всё равно стоит 200 руб. |
zadanie1.py, zadanie2.py … zadanie5.py.input(). Пиши
input(), а не input("Введите вес: ") — вывод
программы читает машина, лишний текст ей мешает.Программа получает две строки: имя клиента и город. Она должна поздороваться и назвать город.
Анна Пермь
Здравствуйте, Анна! Доставка в город Пермь.
Проверяется: ,
,
f-строка, точность вывода до знака препинания.
Чтобы подставить значение переменной в текст, перед кавычками ставится
буква , а само значение пишется в фигурных скобках:
Обрати внимание на точку в конце второй строки — она тоже часть ответа.
Диспетчер знает, сколько минут займёт доставка. Программа получает одно целое число — минуты — и переводит его в часы и минуты.
135
Доставка: 2 ч 15 мин
Если часов не набралось, всё равно печатай оба числа:
→
.
Проверяется: и
. Оператор
здесь не подойдёт — он даёт дробное число.
— сколько целых часов помещается в
минутах.
— что осталось сверх целых часов.
Проверь на бумаге:
,
.
Программа получает в одной строке через пробел расстояние в
километрах (целое) и вес в килограммах (может быть дробным, например
). Считает стоимость по тарифу — пока без ночной надбавки
и без минимума.
10 3
Стоимость: 330.00 руб.
Ровно два знака после точки, даже если копеек нет: не
и не
, а
. Деньги
пишут так всегда.
Проверяется: разбор строки на два значения,
против
, формат
.
Два значения из одной строки берутся так:
Без и
это останутся строки, и
вызовет ошибку. Два знака после точки:
.
К предыдущей программе добавляется третье число — час отправления (целое от 0 до 23). Ночью, с 22:00 до 05:59, вся сумма умножается на 1,4. И какой бы дешёвой ни вышла доставка, меньше 200 руб. она не стоит. Сначала печатается тариф, потом стоимость.
10 3 23
Тариф: ночной Стоимость: 462.00 руб.
1 1 12
Тариф: дневной Стоимость: 200.00 руб.
Во втором примере по тарифу вышло 182 руб., но сработал минимум.
Проверяется: , составное условие,
порядок действий — надбавка раньше минимума.
«Ночь» — это два отрезка суток сразу, и союз между ними «или»:
Запись не работает: не бывает числа,
которое одновременно не меньше 22 и не больше 6. Такое условие никогда не
выполнится, и ночного тарифа у тебя просто не будет.
И подумай, что идёт раньше: сначала умножить на 1,4, а потом сравнить с 200, или наоборот. Ответ есть в условии.
Задача наоборот. У клиента есть бюджет, и он хочет знать, на какое расстояние его хватит. Программа получает в одной строке бюджет (целое число рублей) и вес (может быть дробным) и печатает наибольшее целое число километров, при котором дневная доставка ещё укладывается в бюджет. Если не хватает даже на минимальную — так и сказать.
1000 5
Хватит на 62 км
150 1
Не хватает даже на минимальную доставку
Проверяется то, ради чего затевался урок: подобрать исходные данные под требуемый результат. Ночного тарифа здесь нет — считай по дневному.
Разверни формулу. Стоимость — это
. Если она должна уложиться в бюджет, то
не больше, чем
.
Отсюда километры и находятся — только их надо округлить вниз: на
«62 с половиной километра» никто не поедет.
И проверь отдельно случай, когда денег не хватает даже на минимальную доставку в 200 руб. — тогда километров нет вообще.
Это нормальная часть работы, а не провал. Порядок действий такой.
ValueError — не смог превратить в число,
TypeError — попытался сложить строку с числом,
IndentationError — сбит отступ.print(km, kg) сразу после чтения — увидишь, что программа
прочитала на самом деле. Это и есть отладочный вывод; перед сдачей его
убирают.Отладчик не находит ошибку и не исправляет её. Он делает другое: показывает, что происходит на самом деле — какие значения у переменных и по какой ветке пошла программа. Вывод делаете вы.
>>>. Отладчик включается там, а не в окне с
программой.[DEBUG ON].Set Breakpoint, строка станет
жёлтой. Теперь Go домчит программу прямо до неё и остановится
перед выполнением этой строки. Убрать — правой кнопкой →
Clear Breakpoint.
Программа считает по дневному тарифу, хотя час ночной. Ставим точку
останова на строку с if:
Запускаем, вводим 10 3 23, жмём Go. Программа
встаёт на строке if. Смотрим Locals: h = 23 —
значит час прочитан правильно, и он ночной.
Жмём Step — и программа перескакивает сразу на
print, минуя умножение. Условие оказалось ложным при
правильном h. Вот теперь видно, что дело не в данных, а в
самой записи условия — и можно вспомнить, что «ночь» это два куска
суток и союз между ними «или».
Данные при отладке набираются в главном окне IDLE — там же,
где приглашение >>>.
zadanie1.py …
zadanie5.py и лежат в твоей папке.Проверка.bat — откроется
окно.checker.py напрямую.
Оболочка показывает не только «принято / не принято», но и на каких данных программа ошиблась и что должна была вывести. Это подсказка — исправляй и запускай проверку снова, попыток сколько угодно.
Забыл — и
даст
, а не 5: плюс склеивает строки, а не складывает.
Выводить ровно то, что просят, теми же словами и в том же порядке:
лишняя строка — уже другой ответ. В приглашений
не писать: вывод программы читает машина.
— верно и то, и другое;
— хотя бы
одно. Порядок проверок — часть условия: ночная надбавка
считается раньше минимума, поменяешь местами — изменится ответ.
«При каких исходных данных получится нужный результат» — считать в обратную сторону: из суммы вычесть подачу, разделить на цену километра, взять целую часть. Ответ проверять подстановкой вперёд.
Материалы подготовлены с использованием технологий искусственного интеллекта.