Служба доставки

Анализ алгоритмов. Этапы решения задачи на компьютере.
10 класс, углублённый уровень — занятие первое.

Сегодня мы напишем пять программ. Точнее — одну, пять раз.

Полминуты формальности

Правила работы в кабинете

  • За компьютером — без еды и напитков.
  • Не трогаем провода, разъёмы и заднюю панель системного блока.
  • Не переустанавливаем и не удаляем программы, не меняем настройки системы.
  • Работаем только в своей папке; чужие файлы не открываем и не правим.
  • Заметил дым, запах гари, искру — не выключаешь сам, а зовёшь учителя.
  • Через каждые 20 минут — на несколько секунд отвести глаза от экрана.

Что вы уже умеете

После ОГЭ — довольно много.

  • Линейные алгоритмы: ввод, вычисление, вывод.
  • Ветвления: if, else.
  • Циклы: for, while — задание 16.

Анализ алгоритма — это два вопроса

Прямой

Дана программа и данные.
Что она выведет?

Обратный

Дана программа и нужный результат.
Какие данные подать, чтобы он получился?

Прямой вопрос

Что выведет эта программа?

a = input()
b = input()
print(a + b)

На вход подаются две строки: 12 и 34.

Обратный вопрос

А теперь наоборот

x = int(input())
if x % 7 == 0:
    print("Да")
else:
    print("Нет")

Назовите такое x от 50 до 60, чтобы вывелось «Да».

Этапы решения задачи на компьютере

Пять шагов. Программирование — только четвёртый из них.

Чем работает программист

ИнструментЧто делает
Трансляторпереводит вашу программу в понятное машине. Бывает двух видов
— компиляторпереводит всю программу заранее, целиком (C++, Pascal)
— интерпретаторпереводит и сразу выполняет, строка за строкой. Так работает Python
Отладчикостанавливает программу в нужном месте и показывает значения переменных
Профилировщикизмеряет, сколько времени заняла каждая часть. Нужен, когда программа работает, но медленно
Отладчик, шаг 1

Как его включить

Отладчик живёт в главном окне IDLE — том, где приглашение >>>. Не в окне с программой.

Отладчик, шаг 2

Пять кнопок и одно окно

КнопкаЧто делает
Stepвыполнить одну строку и снова остановиться
Overто же, но не заходя внутрь функции
Outдоработать текущую функцию и встать после выхода из неё
Goбежать дальше — до точки останова или до конца
Quitпрервать программу
Отладчик, шаг 3

Точка останова — чтобы не жать Step сто раз

В окне с программой щёлкните по нужной строке правой кнопкой → Set Breakpoint. Строка станет жёлтой.

Углубление 1

Ввод: строка, пока не сказано иначе

km = input()        # строка "10"
km = int(input())   # целое 10
kg = float(input()) # дробное 3.5
Углубление 2

Три способа поделить

print(135 / 60)   2.25
print(135 // 60)  2
print(135 % 60)   15
Углубление 3

Вывод: деньги пишут с двумя знаками

cost = 330
print(f"Стоимость: {cost:.2f} руб.")   Стоимость: 330.00 руб.
Углубление 4

Условие, которое не сработает никогда

Ночной тариф действует с 22:00 до 05:59. Час хранится в h.

Как хочется написать

if 22 <= h <= 6:

Как надо

if h >= 22 or h < 6:

Задача на сегодня: тариф

Подача курьера150 руб.
За каждый километр12 руб.
За каждый килограмм20 руб.
Ночью, с 22:00 до 05:59вся сумма × 1,4
Если вышло меньше 200 руб.доставка стоит 200 руб.

Как работаем

  • Разминка. Шесть программ — предсказать вывод, не запуская. Оценки за неё нет.
  • Пять заданий. Пишем в IDLE, сохраняем в свою папку как zadanie1.py … zadanie5.py.
  • Проверка. Двойной щелчок по Проверка.bat в общей папке — откроется окно. Оно прогоняет каждую программу на семи наборах данных и говорит, где сломалось.
  • Отметка появляется в том же окне. Показываете экран — и всё.

За работу

Открывайте практикум из общей папки.

И помните про input() без приглашения: вывод вашей программы читает машина.

Материалы подготовлены с использованием технологий искусственного интеллекта. Пробел ведёт урок · ← → листают