Тема 8 · Информатика
Программирование и трассировка
Линейные, ветвящиеся и циклические программы на Питоне, трассировочные таблицы, обработка цифр числа. 100 заданий на отработку.
Простыми словами
Программа — инструкция для очень исполнительного, но ничего не понимающего помощника. Чтобы узнать, что он напечатает, надо пройти программу вместо него, строка за строкой, записывая значения переменных. Это и есть трассировка.
| Запись | Смысл | Пример |
|---|---|---|
= | присваивание | a = 7 |
==, != | сравнение: равно, не равно | x % 8 == 0 |
// | целая часть частного | 17 // 5 → 3 |
% | остаток от деления | 17 % 5 → 2 |
** | степень | 2 ** 3 → 8 |
print(), input() | вывод, ввод |
a = 12; b = 71; y = (a + b) // 7: (ост. 6), выведется 11.
Ветвление
if x < 17:
y = x - 5
elif x % 8 == 0:
y = x + 7
else:
y = x * x - 4
Условия проверяются сверху вниз; как только очередное истинно, выполняется его ветвь, остальные пропускаются. Тело ветви выделяется отступом — именно отступ, а не скобки, задаёт границы блока.
: — нет; — нет; значит else: .
elif проверяет следующее условие, если все предыдущие оказались ложными; else срабатывает, когда ложны все. Операции: ** — возведение в степень, // — целочисленное деление, % — остаток, == — сравнение «равно», != — «не равно».
Циклы
for i in range(a, b): — пробегает ; всего повторений. Правая граница не входит!
for i in range(2, 11) выполнится разwhile условие: — тело повторяется, пока условие истинно. Условие проверяется перед каждым повтором; если оно никогда не станет ложным — зацикливание.
i = 3; s = 0; k = 0
while s < 40:
s = s + i * 2
i = i + 2
k = k + 1
print(i)
| Шаг | ? | |||
|---|---|---|---|---|
| старт | 0 | 3 | 0 | да |
| 1 | 6 | 5 | 1 | да |
| 2 | 16 | 7 | 2 | да |
| 3 | 30 | 9 | 3 | да |
| 4 | 48 | 11 | 4 | нет — выход |
Напечатается . Строка таблицы — значения после очередного выполнения тела.
Внимательно смотрите, что печатают (, или ) и в каком порядке меняются переменные в теле: s = s + i * 2 стоит до i = i + 2, значит к прибавляется старое .
Обработка цифр числа
n % 10 — последняя цифра числа, n // 10 — число без последней цифры. Цикл while n > 0 перебирает цифры справа налево.
n = 48483
s = 1
while n > 0:
s = s * (n % 10)
n = n // 10
print(s)
- Цифры по очереди: 3, 8, 4, 8, 4.
- Произведение: .
Начальное значение подсказывает смысл: s = 0 и s + … — сумма; s = 1 и s * … — произведение; k = 0 и k + 1 — счётчик.
Где это пригодится: ЕГЭ — 2 заданияЗадания экзамена 11 класса, которые опираются на этот материал — нажмите, чтобы раскрыть список
Готовые работы по теме
Собраны заранее — одним нажатием: распечатать с ключом, раздать ученикам ссылкой или QR-кодом, поменять настройки. Номер набора постоянный: по этой ссылке всегда та же работа.
теория этой темы, 8 заданий по подтемам и ключ — файлом DOCX, который можно править под себя.
Прохождение онлайн
Имя ученика никуда не отправляется: он вводит только номер по списку, а таблицу «номер → фамилия» видите только вы.
Классы, выданные работы и результаты учеников по кодам — в журнале учителя: без регистрации, хранится только на этом компьютере.