Ниже тест по информатике для 11 класса. Тип вопросов: открытые. Количество вопросов: 5. В тест вошли вопросы и примерные ответы (для проверки). Вы можете адаптировать формулировки под нужный формат.
- Определение и свойства алгоритма
- Вопрос: Определите, что такое алгоритм. Перечислите четыре обязательных свойства алгоритма и кратко поясните каждое. Приведите пример простого алгоритма.
- Пример формулировки ответа (критерий на ответ):
- Алгоритм — это конечная последовательность однозначно заданных действий, направленная на преобразование входных данных в заданный результат.
- Свойства:
- Определенность: каждое действие в шаге алгоритма понятно и однозначно для исполнителя.
- Конечность: множитель действий ограничен и завершится по окончанию.
- Корректность (правильность): алгоритм решает поставленную задачу для всех допустимых входных данных.
- Вход и выход: существуют входные данные и получаемый на выходе результат.
- Пример: нахождение минимума из двух чисел a и b. Шаги: если a <= b, вернуть a, иначе вернуть b.
- Сортировка пузырьком (псевдокод)
- Вопрос: Опишите псевдокод алгоритма сортировки пузырьком массива A длиной n по возрастанию. Объясните принцип работы и что произойдет, если массив уже отсортирован.
- Пример ответа (псевдокод): procedure bubbleSort(A) n := length(A) for i := 1 to n-1 do swapped := false for j := 0 to n-1-i do if A[j] > A[j+1] then swap A[j], A[j+1] swapped := true if not swapped then break return A
- Примечание для проверки: алгоритм делает проходы по массиву, каждый проход «выталкивает» максимальный элемент в конец. При уже отсортированном массиве переменная swapped останется false на первом же внешнем проходе и алгоритм завершится раньше времени.
- Рекурсия: факториал
- Вопрос: Напишите рекурсивный алгоритм вычисления факториала n (n ≥ 0). Опишите базовый случай и рекурсивный шаг. Укажите временную сложность алгоритма и пространство памяти стека.
- Пример ответа (псевдокод): function fact(n) if n = 0 or n = 1 then return 1 else return n * fact(n - 1)
- Комментарии к ответу: базовый случай — fact(0) = 1 (и/или fact(1) = 1); рекурсивный шаг — n * fact(n-1). Время: O(n), чем больше n, тем больше вызовов. Дополнительная память: O(n) из-за глубины рекурсии.
- Поиск в отсортированном массиве: бинарный поиск
- Вопрос: Опишите алгоритм бинарного поиска в отсортированном по возрастанию массиве A. Запишите псевдокод. Укажите случаи корректности и временную сложность.
- Пример ответа (псевдокод): function binarySearch(A, target) left := 0 right := length(A) - 1 while left <= right do mid := floor((left + right) / 2) if A[mid] = target then return mid else if A[mid] < target then left := mid + 1 else right := mid - 1 return -1
- Примечание к ответу: если элемент найден, возвращается индекс; если нет — -1. Время выполнения: O(log n).
- Стек и очередь; пример использования
- Вопрос: Объясните разницу между стеком и очередью. Приведите по одному практическому примеру использования каждого. Затем приведите простой псевдокод реализации стека и операции push, pop, top.
- Пример ответа:
- Стек (LIFO): элементы обрабатываются обратном порядке добавления. Примеры использования: вызовы функций (постановка и возврат контекста), вычисление выражений в обратной польской нотации.
- Очередь (FIFO): элементы обрабатываются в порядке добавления. Примеры использования: обработка задач в планировщике, очереди печати.
- Псевдокод стека: class Stack data: список function push(x) add x в конец data function pop() если data не пустой удалить и вернуть последний элемент data function top() если data не пустой вернуть последний элемент data иначе вернуть ошибка/null
- Пример использования стека: вычисление выражения в постфиксной записи (обратной польской нотации) или разбор вложенных скобок.
Ответы к тесту (примерные решения)
- Q1: приведены определения и четыре свойства: определенность, конечность, корректность, вход/выход; пример простого алгоритма (нахождение минимума из двух чисел).
- Q2: дан псевдокод пузырьковой сортировки; объяснен принцип: каждый проход «выпускает» максимум в конец, раннее завершение при отсутствии обменов.
- Q3: дан рекурсивный алгоритм факториала с базовым случаем n=0 или n=1; время O(n), потребление памяти O(n) из-за глубины рекурсии.
- Q4: дан псевдокод бинарного поиска; объяснения к корректности и сложностям: O(log n) время, O(1) дополнительная память.
- Q5: объяснение различий стек/очередь, примеры использования; дан простой псевдокод стека с push/pop/top.
Если нужно, могу переделать тест под конкретный формат (с поля для ответов ученика, под конкретный язык программирования, или добавить задачи средней сложности).