Тема «Подпрограмма» занимает ключевое место в изучении информатики, так как подпрограммы (или функции, процедуры) являются фундаментальной частью структурного программирования и лежат в основе построения эффективных и читаемых программ. На ЕГЭ по информатике вопросы о подпрограммах встречаются регулярно – умение их понимать, создавать и использовать значительно повышает ваши шансы на высокий балл. Разберёмся с теорией, основными правилами, приведём практические примеры и предложим пять эксклюзивных упражнений для отработки навыков.
Подпрограмма – это самостоятельная часть программы, предназначенная для выполнения определённой задачи и вызываемая по имени из других частей программы. Она может быть реализована в виде функции или процедуры (в зависимости от языка программирования). Главная идея подпрограммы – избежать дублирования кода и повысить его читаемость, структурированность, а также облегчить тестирование и отладку.
Подпрограммы бывают двух видов:
Функции – возвращают значение и могут быть использованы в выражениях (например, x = sqrt(a)).
Процедуры – выполняют действия, но не возвращают значения (например, print(«Hello»)).
Основные преимущества подпрограмм:
Модульность: программу можно разбить на независимые блоки, каждый из которых решает свою задачу.
Повторное использование кода: однажды написанную подпрограмму можно вызывать из разных мест программы.
Простота тестирования и отладки: легче проверить работу отдельной подпрограммы, чем искать ошибки во всей программе.
Ясность структуры: большая программа становится понятнее, если логика вынесена в подпрограммы.
1. Корректное объявление подпрограммы:
Необходимо задать имя, перечень входных параметров (если они есть) и тип возвращаемого значения (для функций).
Имя подпрограммы должно быть осмысленным, отражающим её суть.
2. Передача параметров:
Подпрограмма может принимать данные (параметры), которые используются внутри неё. Есть параметры входные, выходные и входно-выходные.
Важно различать передачу по значению (копия значения) и по ссылке (работа с оригиналом).
3. Возврат значения (для функций):
Функция обязательно должна возвращать значение, процедура – нет.
В большинстве языков возвращаемое значение указывается явно через оператор return (например, return x * x).
4. Грамотное использование области видимости:
Переменные, объявленные внутри подпрограммы, недоступны вне её тела, и наоборот.
Важно не использовать одинаковые имена для глобальных и локальных переменных, чтобы избежать путаницы.
5. Чёткое определение задачи подпрограммы:
Каждая подпрограмма должна выполнять одну конкретную задачу, чтобы код был легко читаемым и масштабируемым.

Пример функции (Python):
python
def square(x):
return x * x
Пример процедуры (Python):
python
def greet(name):
print(«Привет,», name)
Пример подпрограммы в Псевдокоде (ЕГЭ):
css
Функция СуммаКвадратов(a, b)
Возвратить a*a + b*b
КонецФункции
Типовые задания по теме «Подпрограмма» на ЕГЭ
На ЕГЭ часто встречаются задачи, где требуется:
прочитать и понять код с использованием подпрограмм;
найти ошибки в объявлении или вызове подпрограмм;
самостоятельно написать подпрограмму для решения частной задачи;
преобразовать фрагмент программы с повторяющимся кодом в подпрограмму.
Упражнение 1.
Сформулируйте и реализуйте функцию, которая возвращает True, если заданное число простое, и False – если нет.
python
def is_prime(n):
if n < 2:
return False
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
return False
return True
Пояснение: В этом упражнении тренируется навык построения функций с возвратом значения, а также понимание, как передавать параметры.
Упражнение 2.
Создайте процедуру, которая принимает список чисел и выводит только те элементы, которые делятся на 5.
python
def print_divisible_by_5(lst):
for number in lst:
if number % 5 == 0:
print(number)
Пояснение: Здесь отрабатывается использование процедуры без возврата значения и работа с коллекциями.
Упражнение 3.
Перед вами фрагмент кода с дублирующимся вычислением площади прямоугольника. Оптимизируйте код, вынеся повторяющуюся часть в отдельную функцию.
Исходный код:
python
a, b = 5, 6
print(«Площадь первого:», a * b)
x, y = 7, 3
print(«Площадь второго:», x * y)
Решение:
python
def area(width, height):
return width * height
a, b = 5, 6
print(«Площадь первого:», area(a, b))
x, y = 7, 3
print(«Площадь второго:», area(x, y))
Пояснение: Это упражнение учит выявлять повторяющийся код и организовывать его в подпрограмму.
Упражнение 4.
Вам даны два списка. Напишите функцию, которая возвращает новый список, состоящий только из общих элементов двух списков (без дубликатов).
python
def common_elements(list1, list2):
return list(set(list1) & set(list2))
Пояснение: Формируется умение возвращать сложные объекты из функций и работать с наборами данных.
Упражнение 5.
В задаче требуется вычислить факториал числа n. Напишите рекурсивную функцию для вычисления факториала.
python
def factorial(n):
if n == 0 or n == 1:
return 1
else:
return n * factorial(n - 1)
Пояснение: Здесь отрабатывается рекурсивный вызов подпрограммы и понимание структуры рекурсии.
Внимательно читайте формулировку задания – иногда требуется не просто объявить подпрограмму, но и корректно её вызвать.
Следите за областью видимости переменных, чтобы не возникало ошибок, связанных с некорректным использованием локальных и глобальных переменных.
Обращайте внимание на формат передачи параметров (по значению/по ссылке), особенно в языках, где это принципиально важно (например, Pascal, C++).
Тренируйтесь писать как функции, так и процедуры – на экзамене могут встретиться оба варианта.
Учитесь разбивать большие задачи на подзадачи – такой подход облегчает решение сложных задач и позволяет минимизировать количество ошибок.
Тема «Подпрограмма» не только фундаментальна для программирования, но и крайне важна для успешной сдачи ЕГЭ по информатике. Глубокое понимание принципов работы подпрограмм, знание правил их написания и отработка на практике позволяют эффективно решать задания любой сложности. Освоив эту тему, вы сделаете шаг к формированию профессионального подхода к программированию и обеспечите себе отличный результат на экзамене.