Основы программирования: типы данных, операторы, циклы (ОГЭ)
Коротко о главном
Задания 6 и 16 ОГЭ проверяют умение читать и анализировать программы (Python, Паскаль, школьный алгоритмический язык). Нужно уверенно понимать:
- какие бывают типы данных и как они меняются при операциях;
- как работают операторы присваивания, ветвления и циклов;
- как "прокрутить" программу в голове (трассировка) и получить результат.
Главный навык — трассировка кода: пошагово выписывать значения переменных после каждой строки.
Определения и правила
Типы данных
| Тип | Обозначение | Примеры значений | Особенности |
|---|---|---|---|
| Целый | int | 5, -3, 0 | Деление // даёт целое, / — вещественное |
| Вещественный | float | 3.14, -0.5 | Появляется при /, при вводе через точку |
| Строковый | str | "abc", "5" | Объединяется через + (конкатенация) |
| Логический | bool | True, False | Результат сравнений и условий |
Правило смешения типов: int + float → float; str + str → строка (не сложение чисел!); int / int → float (в Python 3).
Основные операторы (Python)
//— целочисленное деление (частное без остатка);%— остаток от деления;**— возведение в степень.
Пример: , .
Условный оператор
if условие:
действие1
else:
действие2
Выполняется только одна из веток — та, для которой условие истинно (True) или ложно (False).
Циклы
Цикл с известным числом повторений (for):
for i in range(n):
действие
Выполняется ровно раз, переменная пробегает значения .
Цикл с условием (while):
while условие:
действие
Выполняется, пока условие истинно. Если условие никогда не станет ложным — бесконечный цикл (ошибка).
Ключевое правило трассировки: после каждого прохода цикла записывай новые значения всех переменных в таблицу — так легче не потерять шаг.
Как применять
Пример 1. Целочисленное деление
a = 27
b = a // 5
c = a % 5
print(b, c)
Трассировка: , , . Ответ: 5 2.
Пример 2. Цикл с накоплением суммы
s = 0
for i in range(1, 5):
s = s + i
print(s)
range(1,5) даёт значения 1, 2, 3, 4 (5 не включается!).
Трассировка: . Ответ: 10.
Пример 3. Цикл while с условием
n = 1
while n < 20:
n = n * 2
print(n)
Шаги: . Проверка проваливается при , цикл останавливается. Ответ: 32.
Типичные ошибки
- Путают
//и/:/всегда даёт вещественный результат,//— целую часть без округления вверх. - Неверно определяют границы
range():range(a, b)не включаетb— последнее значение . - Забывают, что условие цикла проверяется ДО тела: если условие сразу ложно, тело while не выполнится ни разу.
- Складывают строки как числа:
"5" + "3"даёт"53", а не8. - Теряют порядок присваивания при обмене переменных: без временной переменной
a = b; b = aне меняет значения местами правильно (нужноa, b = b, aили через временную переменную). - Ошибка в приоритете операций: сначала
**, потом*,/,//,%, потом+,-.
Где встречается на экзамене
- Задание 6: анализ короткой программы (5–10 строк) с присваиваниями, циклом for/while и арифметическими операциями — нужно определить итоговое значение переменной.
- Задание 16: разработка и анализ более сложного алгоритма, часто с вложенными циклами или условиями, обработкой массива/последовательности чисел, требуется написать фрагмент программы или посчитать результат по описанному алгоритму.
Частые вопросы
Чем отличается `/` от `//` в Python?
/ — обычное деление, всегда возвращает вещественное число (float). // — целочисленное деление, возвращает целую часть результата без округления вверх, например .
Как понять, сколько раз выполнится цикл for in range(a, b)?
Цикл выполнится раз, значения переменной пробегают от до включительно. Например, range(2, 6) даёт 2, 3, 4, 5 — 4 повторения.
Когда цикл while может стать бесконечным?
Когда условие в заголовке никогда не становится ложным — например, если внутри цикла забыли изменить переменную, от которой зависит условие.
Как проверить приоритет операций при трассировке?
Сначала выполняется возведение в степень **, затем умножение, деление, целочисленное деление и остаток (*, /, //, %) слева направо, затем сложение и вычитание +, -.
Почему "5" + "3" не равно 8?
Потому что обе переменные — строки (str), а не числа. Оператор + для строк выполняет конкатенацию (склеивание), результат — строка "53".
Как правильно поменять значения двух переменных местами?
Через временную переменную: t = a; a = b; b = t, либо одной строкой в Python: a, b = b, a. Простое a = b; b = a не сработает, так как исходное значение a теряется.
Потренироваться: задание 16 · задание 6