Для решения данной задачи мы можем использовать язык программирования Python. Давайте разберем процесс шаг за шагом.
Шаг 1: Понимание задачи
У нас есть следующее:
- N — количество учеников.
- Затем идут 2N записей:
- В первой строке записаны фамилия и имя ученика.
- Во второй строке — оценка этого ученика.
- В последней строке указано значение grade, для которого мы хотим получить список учеников, получивших эту оценку.
Шаг 2: Алгоритм решения
- Считываем число
N. - Создаём пустой массив для имен и фамилий.
- Для каждого ученика считываем данные: фамилию и имя, а затем оценку. Если оценка равна grade, добавляем фамилию и имя ученика в массив.
- Выводим массив.
Шаг 3: Пример реализации на Python
# Считываем количество учеников
N = int(input())
# Создаем пустой список для учеников
students = []
# Считываем данные учеников
for _ in range(N):
# Считываем фамилию и имя
name = input().strip()
# Считываем оценку
grade = int(input().strip())
# Если оценка совпадает с искомой, добавляем в список
if grade == target_grade:
students.append(name)
# Считываем целевую оценку
target_grade = int(input().strip())
# Выводим результат
print(students)
Шаг 4: Пример выполнения
Для входных данных:
3
Петров Пётр
4
Александрова Александра
5
Сонина Софья
4
4
Процесс будет следующим:
- Программа считывает число
3— это означает, что данных будет 6 (3 ученика с 2 записями). - Вводятся фамилия с именем и оценка для каждого ученика.
- Поскольку целевая оценка задана
4, программа проверит и найдет, что «Петров Пётр» и «Сонина Софья» получили эту оценку. - Выводит
['Петров Пётр', 'Сонина Софья'].
Для второго случая:
3
Петров Пётр
4
Александрова Александра
5
Сонина Софья
4
3
Так как ни один из учеников не получил оценку 3, программа вернет [].
Заключение
Таким образом, мы смогли решить задачу с использованием базовых операций ввода-вывода, условных операторов и списков в Python. Если у вас есть дополнительные вопросы или нужно что-то уточнить, спрашивайте!