Линейные алгоритмы

Линейный алгоритм: структура «ввод — обработка — вывод», присваивание, целочисленное деление и остаток, обмен значений через третью переменную. С запускаемым кодом и живыми схемами.

Самые простые алгоритмы устроены как рецепт без вариантов: делай шаг 1, потом шаг 2, потом шаг 3 — и готово. Никаких «если» и «повторяй». Такие алгоритмы называются линейными, и с них начинается любое программирование.

Что такое линейный алгоритм

Линейный алгоритм — это алгоритм, в котором все шаги выполняются строго по порядку, один за другим, и каждый шаг выполняется ровно один раз. На блок-схеме это видно сразу: фигуры выстроены в одну цепочку, из каждой выходит ровно одна стрелка, ромбов нет вовсе.

Типичная структура линейного алгоритма — три части:

  • ввод — получаем исходные данные;
  • обработка — вычисляем то, что нужно;
  • вывод — сообщаем результат.

Эту тройку «ввод — обработка — вывод» полезно держать в голове при решении любой задачи: сначала спроси себя, что дано, потом — что с этим сделать, и наконец — что показать пользователю.

Пример: периметр и площадь

Классическая задача: по сторонам прямоугольника найти его периметр и площадь. Запишем решение на Python и сразу запустим — нажми «Запустить»:

a = 6
b = 4
p = 2 * (a + b)
s = a * b
print("Периметр:", p)
print("Площадь:", s)

Вывод:

Периметр: 20
Площадь: 24

А теперь та же программа в виде живой блок-схемы — но уже с вводом сторон. Видишь цепочку: два параллелограмма ввода, два прямоугольника с вычислениями, два параллелограмма вывода. Пройди схему по шагам и проследи, как появляются и меняются переменные:

a = int(input("Сторона a"))
b = int(input("Сторона b"))
p = 2 * (a + b)
s = a * b
print("Периметр:", p)
print("Площадь:", s)

Заметь: порядок шагов важен. Нельзя вычислить p = 2 * (a + b) раньше, чем введены a и b — у исполнителя просто не будет данных. В линейном алгоритме каждый шаг опирается на результаты предыдущих.

Переменные — память алгоритма

Переменная — это именованная ячейка памяти, в которой алгоритм хранит значение. Команда p = 2 * (a + b) читается так: «вычисли выражение справа и положи результат в ячейку с именем p». Знак = здесь не «равно» из математики, а команда присваивания.

Из-за этого в алгоритмах законны записи, которые в математике выглядели бы странно. Например, k = k + 1 означает «возьми текущее значение k, прибавь 1 и положи обратно» — значение k просто увеличивается на единицу.

Два важных оператора: // и %

В линейных задачах постоянно нужны два особых действия с целыми числами:

  • //целочисленное деление: 17 // 5 равно 3 (сколько целых пятёрок в семнадцати);
  • %остаток от деления: 17 % 5 равно 2 (что осталось сверх целых пятёрок).

Вместе они умеют «разбирать» число на части. Классическая задача ОГЭ: дано двузначное число, найти сумму его цифр. Десятки — это n // 10, единицы — n % 10. Запусти и проверь на числе 47:

n = 47
d = n // 10
e = n % 10
print("Десятки:", d)
print("Единицы:", e)
print("Сумма цифр:", d + e)

Вывод:

Десятки: 4
Единицы: 7
Сумма цифр: 11

Этот приём — основа множества задач: получить последнюю цифру, проверить чётность (n % 2), узнать, делится ли число нацело (n % 3 == 0).

Задача на понимание: обмен значений

Есть две переменные: x = 3 и y = 8. Нужно поменять их значения местами. Первая мысль — написать x = y, а потом y = x. Но это не сработает: после первой команды в x уже лежит 8, старая тройка потеряна, и вторая команда положит в y ту же восьмёрку.

Правильное решение — взять третью переменную, как третий стакан при переливании воды. Сначала спрячем значение x в переменную t, затем перепишем x, а потом достанем спрятанное:

x = 3
y = 8
t = x
x = y
y = t
print("x =", x)
print("y =", y)

Пройди схему по шагам, следя за таблицей переменных, — момент «переливания» виден очень наглядно. Этот приём с временной переменной встречается в задачах ОГЭ и в реальном программировании постоянно.

Как узнать линейный алгоритм на экзамене

  • На схеме нет ромбов и шестиугольников — только цепочка фигур.
  • Каждый блок выполняется ровно один раз.
  • Результат полностью определяется входными данными: одни и те же входы — всегда один и тот же ответ.
  • Чтобы найти ответ, достаточно пройти схему сверху вниз один раз, выписывая значения переменных.

Что мы узнали

  • Линейный алгоритм — цепочка шагов, каждый выполняется один раз, строго по порядку.
  • Типичная структура: ввод данных, обработка, вывод результата.
  • Знак = — это присваивание: «вычисли справа, положи в переменную слева».
  • Запись k = k + 1 увеличивает переменную на единицу.
  • Операторы // и % разбирают число на части: n // 10 — десятки, n % 10 — единицы.
  • Чтобы обменять значения двух переменных, нужна третья — временная.
Проверьте себя
1. Какой признак выдаёт линейный алгоритм на блок-схеме?
AЕсть ромбы выбора
BЕсть обратные стрелки
CТолько цепочка фигур, из каждой одна стрелка
DЕсть шестиугольники
2. Что означает команда k = k + 1?
AЭто уравнение, у него нет решений
BУвеличить значение k на единицу
CСравнить k с k + 1
DСоздать две переменные k
3. Чему равно 23 % 10?
A2
B3
C23
D230
4. Как получить число десятков двузначного числа n?
An % 10
Bn // 10
Cn * 10
Dn % 2
5. Почему для обмена значений двух переменных нужна третья?
AТак быстрее работает программа
BБез неё первое присваивание затрёт старое значение
CТретья переменная экономит память
DЭто требование ГОСТа
Поддержать проект