Пн. Июн 1st, 2026

Алгоритмы и программирование: теория для ЕГЭ

📚 Ключевые понятия

Алгоритм

Конечная последовательность точных инструкций для решения задачи

Переменная

Именованная область памяти для хранения данных, значение которой может изменяться

Цикл

Конструкция для многократного выполнения набора инструкций

Условие

Конструкция для выполнения различных действий в зависимости от истинности условия

Функция

Подпрограмма, которая возвращает значение и может принимать параметры

Массив

Структура данных для хранения набора элементов одного типа

🧩 Основные алгоритмические конструкции

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

Последовательное выполнение команд без ветвлений и циклов

Пример кода
a = 5
b = 10
c = a + b
print(c)

Ветвление (if-else)

Выполнение разных действий в зависимости от условия

Пример кода
if x > 0:
    print("Положительное")
elif x < 0:
    print("Отрицательное")
else:
    print("Ноль")

Циклы

Цикл for

Для известного количества повторений

for i in range(5):
    print(i)

Цикл while

Пока условие истинно

i = 0
while i < 5:
    print(i)
    i += 1

🗃️ Структуры данных

Массивы (списки в Python)

Упорядоченная коллекция элементов

Пример кода
# Создание массива
arr = [1, 2, 3, 4, 5]

# Обращение к элементами
print(arr[0])  # Первый элемент
print(arr[-1]) # Последний элемент

# Изменение элемента
arr[2] = 10

# Длина массива
n = len(arr)

Строки

Последовательность символов

Пример кода
s = "Hello, World!"

# Обращение к символам
print(s[0])    # 'H'
print(s[7:12]) # 'World'

# Длина строки
n = len(s)

# Методы строк
s_upper = s.upper()
s_lower = s.lower()

Словари

Коллекция пар "ключ-значение"

Пример кода
# Создание словаря
student = {"name": "Иван", "age": 17, "grade": 11}

# Обращение к значениям
print(student["name"])  # "Иван"

# Добавление элемента
student["school"] = "Лицей №1"

# Проверка наличия ключа
if "age" in student:
    print(student["age"])

🔍 Основные алгоритмы

Линейный поиск

Поиск элемента в массиве перебором всех элементов

Пример кода
def linear_search(arr, target):
    for i in range(len(arr)):
        if arr[i] == target:
            return i
    return -1

Сортировка пузырьком

Попарное сравнение и обмен соседних элементов

Пример кода
def bubble_sort(arr):
    n = len(arr)
    for i in range(n-1):
        for j in range(n-i-1):
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]

Бинарный поиск

Поиск в отсортированном массиве путем деления пополам

Пример кода
def binary_search(arr, target):
    left, right = 0, len(arr)-1
    while left <= right:
        mid = (left + right) // 2
        if arr[mid] == target:
            return mid
        elif arr[mid] < target:
            left = mid + 1
        else:
            right = mid - 1
    return -1

🧪 Примеры заданий ЕГЭ

Пример 1: Анализ алгоритма

Задание: Что выведет программа?

Пример кода
s = 0
for i in range(1, 6):
    s += i
print(s)

Решение:

Программа вычисляет сумму чисел от 1 до 5: 1+2+3+4+5 = 15

Ответ: 15

Пример 2: Работа с массивом

Задание: Дан массив A = [3, 7, 2, 9, 1]. Что будет содержаться в A после выполнения программы?

Пример кода
for i in range(len(A)):
    if A[i] % 2 == 0:
        A[i] = A[i] * 2

Решение:

Программа удваивает четные элементы массива: 2*2=4

Ответ: [3, 7, 4, 9, 1]

Пример 3: Рекурсия

Задание: Что вычисляет следующая функция?

Пример кода
def f(n):
    if n == 0:
        return 1
    else:
        return n * f(n-1)

Решение:

Функция вычисляет факториал числа n: n! = n × (n-1) × ... × 1

Ответ: Факториал числа n

Пример 4: Алгоритмическая задача

Задание: Напишите функцию, которая проверяет, является ли строка палиндромом.

Решение:

Пример кода
def is_palindrome(s):
    # Приводим к нижнему регистру и удаляем пробелы
    s = s.lower().replace(" ", "")
    # Сравниваем строку с ее обратной версией
    return s == s[::-1]

# Пример использования
print(is_palindrome("А роза упала на лапу Азора"))  # True
print(is_palindrome("Hello"))  # False