Введение во вторую часть (13–16)
📋 Структура части 2 ОГЭ по информатике
Время выполнения: 45 минут на 4 задания
Формат ответов: развернутый ответ с обоснованием
Оценка: 2-3 балла за каждое задание, максимум 10 баллов
Особенности: ответы вносятся в бланк ответов №2, проверяются экспертами
🎯 Стратегия выполнения
- Время на задание: 10-12 минут максимум
- Порядок: сначала задания 13-14 (легче), потом 15-16 (сложнее)
- Проверка: обязательно перечитайте условие и проверьте решение
- Оформление: четко и разборчиво, с обоснованием каждого шага
📊 Критерии оценивания
2 балла: полное правильное решение
1 балл: частично правильное решение с незначительными ошибками
0 баллов: неверное решение или отсутствие решения
⚠️ Типичные ошибки
- Невнимательное чтение условия
- Неправильное оформление ответа
- Отсутствие обоснования решения
- Арифметические ошибки в вычислениях
- Неправильное понимание формата ответа
📊 Тренировочный тест
Проверьте свои знания перед изучением конкретных заданий:
1. Сколько баллов можно получить за задание 13?
2. В каком бланке оформляются ответы части 2?
Задание №13: Создание презентации или форматирование текста
🎯 Что проверяется
Умение создавать презентации и форматировать текстовые документы с соблюдением правил оформления и принципов читабельности.
📚 Теоретическая база
Форматирование текстовых документов
Стили заголовков:
- Заголовок 1 — для основных разделов
- Заголовок 2 — для подразделов
- Заголовок 3 — для пунктов
Форматирование текста:
- Выравнивание: по левому краю для основного текста
- Интервалы: 1,5 для основного текста
- Отступы: красная строка 1,25 см
- Поля: 2 см со всех сторон
Создание презентаций
Правило 6×6:
- Не более 6 строк на слайде
- Не более 6 слов в строке
- Крупный, читаемый шрифт (24+ пунктов)
Дизайн:
- Единый стиль для всех слайдов
- Контрастные цвета (тёмный текст на светлом фоне)
- Минимум текста, максимум визуализации
- Использование диаграмм, схем, изображений
Колонтитулы и нумерация
Колонтитулы:
- Верхний колонтитул: название документа
- Нижний колонтитул: номер страницы
- Нумерация: арабскими цифрами
Расширенная теория (для программирования)
- Типовые форматы входа: одно число; несколько чисел в строке; N строк; до конца файла.
- Паттерны: однопроходные агрегаты, частоты (dict/Counter), два указателя, префиксные суммы, НОД/НOK.
- Строки: подсчёт подстрок, фильтрация символов, нормализация регистра и пробелов.
- Ошибки: неправильное чтение входа, выход за границы, деление на ноль, O(n²) при n≈10⁵.
- Чек-лист: крайние случаи; сложность ≤ O(n log n); понятные имена; самопроверка на 2–3 тестах.
Расширенная теория
- Документы: стили заголовков для автоматического оглавления и навигации.
- Презентации: правило 6×6, единый стиль, контраст, иерархия визуальных элементов.
- Типовые ошибки: перегрузка текстом, мелкий шрифт, пёстрые цвета, несогласованные отступы.
- Чек-лист: структура, читабельность, единый стиль, корректная нумерация/колонтитулы.
Быстрый старт Python (для решения Задания 16)
- Ввод до нуля: читайте числа в цикле, пока не встретите 0.
- Проверка условия: кратность (
x % 6 == 0
) и последняя цифра (x % 10 == 4
). - Суммирование: поддерживайте переменную
total
, добавляя подходящие значения. - Вывод:
print(total)
в конце.
total = 0 while True: x = int(input()) if x == 0: break if x % 6 == 0 and x % 10 == 4: total += x print(total)
📝 Практические задачи
Задача 13.1 (Базовый уровень)
Вам нужно создать презентацию на тему "Информационные технологии". Какие принципы оформления следует соблюдать?
Решение
1. Единый стиль для всех слайдов
2. Правило 6×6 (не более 6 строк, 6 слов в строке)
3. Крупный читаемый шрифт (24+ пунктов)
4. Контрастные цвета
5. Минимум текста, максимум визуализации
6. Использование диаграмм и схем
Задача 13.2 (Средний уровень)
В текстовом документе нужно оформить заголовки разделов. Какой стиль следует использовать для основного заголовка?
Решение
Заголовок 1 — используется для основных разделов документа
Задача 13.3 (Повышенный уровень)
В презентации на слайде размещено 8 строк текста по 10 слов в каждой. Соответствует ли это правилам оформления презентаций?
Решение
Нет, не соответствует. Правило 6×6 требует не более 6 строк и не более 6 слов в строке. Нужно сократить текст и разбить информацию на несколько слайдов.
🎯 Тренировочный блок
Быстрая проверка знаний
1. Какой приём улучшит читабельность слайда сильнее всего?
2. Для основного текста документа рекомендуется интервал:
Задание №14: Обработка большого массива данных
🎯 Что проверяется
Умение работать с электронными таблицами, обрабатывать большие массивы данных, использовать формулы и функции для анализа.
📚 Теоретическая база
Основные функции Excel
Математические функции:
- SUM(диапазон) — сумма значений
- AVERAGE(диапазон) — среднее арифметическое
- MAX(диапазон) — максимальное значение
- MIN(диапазон) — минимальное значение
- COUNT(диапазон) — количество чисел
Условные функции:
- COUNTIF(диапазон, условие) — подсчёт по условию
- SUMIF(диапазон, условие, диапазон_суммы) — сумма по условию
- IF(условие, значение_если_истина, значение_если_ложь) — условная функция
Функции поиска и ссылок
VLOOKUP(искомое_значение, таблица, номер_столбца, [точное_совпадение]):
- Поиск значения в первом столбце таблицы
- Возвращает значение из указанного столбца
- 0 или FALSE — точное совпадение
- 1 или TRUE — приблизительное совпадение
XLOOKUP(искомое_значение, массив_поиска, массив_возврата):
- Современная альтернатива VLOOKUP
- Более гибкая и удобная
Сортировка и фильтрация
Сортировка:
- По возрастанию (A→Z, 1→9)
- По убыванию (Z→A, 9→1)
- Многоуровневая сортировка
Фильтрация:
- Автофильтр — быстрая фильтрация
- Расширенный фильтр — сложные условия
- Фильтр по цвету, тексту, числовым значениям
Сводные таблицы
Назначение: группировка и агрегирование данных
Компоненты:
- Строки — группировка по строкам
- Столбцы — группировка по столбцам
- Значения — агрегируемые данные
- Фильтры — дополнительные ограничения
Расширенная теория
- Формулы: агрегаты (SUM/AVERAGE), условные (IF/COUNTIF/SUMIF), поисковые (VLOOKUP/XLOOKUP).
- Практика: сортировка/фильтрация, абсолютные/относительные ссылки, именованные диапазоны.
- Сводные: поля строк/столбцов/значений/фильтров; группировка, итоги.
- Чек-лист: проверка диапазонов, типы данных в столбцах, отсутствие лишних пробелов.
📝 Практические задачи
Задача 14.1 (Базовый уровень)
В таблице есть столбец A с оценками от 1 до 5. Какая формула подсчитает количество пятёрок?
Решение
=COUNTIF(A:A,5) — подсчитывает количество ячеек в столбце A, равных 5
Задача 14.2 (Средний уровень)
В таблице есть столбцы: A (название товара), B (цена), C (количество). Какая формула вычислит общую стоимость всех товаров?
Решение
=SUMPRODUCT(B:B,C:C) — умножает каждую цену на количество и суммирует результаты
Задача 14.3 (Повышенный уровень)
В таблице есть столбцы: A (фамилия), B (оценка). Нужно найти фамилию студента с максимальной оценкой. Какая формула это сделает?
Решение
=INDEX(A:A,MATCH(MAX(B:B),B:B,0)) — находит максимальную оценку, затем возвращает соответствующую фамилию
🎯 Тренировочный блок
Быстрая проверка знаний
1. Функция AVERAGE вычисляет:
2. Функция VLOOKUP используется для:
Задание №15: Короткий алгоритм в различных средах исполнения
🎯 Что проверяется
Умение анализировать и выполнять алгоритмы для различных исполнителей, понимание принципов работы алгоритмов.
📚 Теоретическая база
Типы исполнителей
1. Робот на поле:
- Позиция: координаты (x, y)
- Направление: вверх, вниз, влево, вправо
- Команды: вверх, вниз, влево, вправо, закрасить
- Ограничения: границы поля
2. Черепашка (графический исполнитель):
- Позиция: координаты (x, y)
- Направление: угол поворота
- Состояние пера: поднято/опущено
- Команды: вперёд, назад, поворот, поднять перо, опустить перо
Алгоритмы с циклами
Цикл "пока" (while):
пока условие выполняется: выполнить действие изменить переменную
Цикл "для" (for):
для i от 1 до n: выполнить действие
Инвариант цикла: свойство, которое сохраняется на каждой итерации
Алгоритм анализа
- Изучите систему команд — какие команды доступны
- Определите начальное состояние — позиция, направление, содержимое памяти
- Выполните трассировку — пошагово выполните алгоритм
- Проверьте граничные случаи — что происходит на границах
- Найдите инвариант — что сохраняется в циклах
Расширенная теория
- Исполнители: робот/черепашка/Тьюринг — фиксируйте состояния и ограничения.
- Циклы: инварианты, границы, конечность; избегайте бесконечных циклов.
- Трассировка: таблица шагов и состояний, проверка на граничных примерах.
- Чек-лист: корректность команд, соблюдение границ поля/ленты, порядок поворотов.
📝 Практические задачи
Задача 15.1 (Базовый уровень)
Робот находится в позиции (0, 0) и смотрит вправо. Выполните алгоритм:
нц 3 раз вперёд поворот налево кц
В какой позиции окажется робот?
Решение
Начало: (0, 0), направление вправо
1. вперёд: (1, 0), поворот налево: направление вверх
2. вперёд: (1, 1), поворот налево: направление влево
3. вперёд: (0, 1), поворот налево: направление вниз
Ответ: (0, 1)
Задача 15.2 (Средний уровень)
Черепашка находится в позиции (0, 0), направление 0°, перо опущено. Выполните алгоритм:
нц 4 раз вперёд 2 поворот 90° кц
Какую фигуру нарисует черепашка?
Решение
Черепашка нарисует квадрат со стороной 2:
1. (0,0)→(2,0) вправо
2. (2,0)→(2,2) вверх
3. (2,2)→(0,2) влево
4. (0,2)→(0,0) вниз
Задача 15.3 (Повышенный уровень)
Дан алгоритм для робота:
нц пока не закрашено вперёд если закрашено справа то поворот налево иначе поворот направо кц вперёд
Робот начинает в позиции (1, 1), смотрит вправо, справа от него закрашенная клетка. Что произойдёт?
Решение
Робот будет двигаться по периметру закрашенной области:
1. Вперёд, справа закрашено → поворот налево
2. Вперёд, справа не закрашено → поворот направо
3. Повторяется до возврата в начальную позицию
4. Вперёд — выход из цикла
🎯 Тренировочный блок
Быстрая проверка знаний
1. Инвариант цикла — это:
2. При анализе алгоритма важно проверить:
Задание №16: Программирование
🎯 Что проверяется
Умение писать программы на языке программирования, решать алгоритмические задачи, работать с данными различных типов.
📚 Теоретическая база
Основные конструкции языка
Ввод и вывод данных:
# Ввод n = int(input()) # целое число s = input() # строка a = list(map(int, input().split())) # список чисел # Вывод print(n) # вывод числа print(s) # вывод строки print(*a) # вывод списка через пробел
Условные операторы:
if условие: действие1 elif условие2: действие2 else: действие3
Циклы
Цикл for:
for i in range(n): # от 0 до n-1 действие for i in range(1, n+1): # от 1 до n действие for item in список: # по элементам списка действие
Цикл while:
while условие: действие изменение_переменной
Работа со строками и списками
Строки:
- len(s) — длина строки
- s[i] — символ по индексу
- s[i:j] — срез строки
- s.split() — разбиение по пробелам
- s.strip() — удаление пробелов
Списки:
- len(a) — длина списка
- a[i] — элемент по индексу
- a.append(x) — добавление элемента
- a.sort() — сортировка
- sum(a) — сумма элементов
Алгоритм решения задач
- Внимательно прочитайте условие — что требуется найти
- Определите входные данные — что дано
- Подумайте об алгоритме — как решить задачу
- Проверьте граничные случаи — пустой ввод, минимумы/максимумы
- Напишите код — реализуйте алгоритм
- Протестируйте — проверьте на примерах
Типы данных и структуры
- int, float, bool — числа и логические значения. Осторожно с делением и остатком.
- str — неизменяемые строки:
len
, срезы,split
,join
,count
,replace
. - list — динамический массив: индексы, срезы,
append
,pop
,sort
,reverse
. - tuple — неизменяемая последовательность; удобно как ключ словаря.
- dict — ассоциативный массив: подсчёт частот, отображения.
- set — множество: быстрое
in
, устранение повторов, пересечения/разности.
Шаблоны ввода данных
# Одно число n = int(input()) # Несколько чисел в строке a, b = map(int, input().split()) # Список чисел из одной строки arr = list(map(int, input().split())) # N строк входа n = int(input()) lines = [input().rstrip() for _ in range(n)] # До конца файла (в интерактивных средах может не потребоваться) import sys data = sys.stdin.read().strip().split()
Частые приёмы и алгоритмы
- Однопроходные агрегаты: сумма/минимум/максимум/счётчики за один проход.
- Два указателя (two pointers): поиск подотрезков/пар в отсортированном массиве.
- Префиксы: префиксные суммы/минимумы для быстрых запросов по отрезкам.
- Частоты:
dict
для подсчёта встречаемости; поиск моды/уникальных. - Множества: проверка принадлежности/пересечение/удаление повторов за O(1) в среднем.
- Сортировка с ключом:
sorted(items, key=...)
для кастомного порядка. - Стек: проверка скобочной последовательности, монотонный стек для ближайших элементов.
- Делители и НОД: алгоритм Евклида,
lcm(a,b)=a*b//gcd(a,b)
. - Строки: два указателя,
in
,count
, срезы, табличные замены.
Оценка сложности
- Время: предпочитайте O(n) или O(n log n). Избегайте вложенных полных O(n²), если можно.
- Память: дополнительные структуры используют O(n). Учитывайте ограничения.
- Границы: проверяйте пустые данные, n=1, максимальные значения.
Подводные камни
- Неправильное чтение входа (лишние пробелы/пустые строки).
- Деление на ноль, выход за границы массива.
- Сравнение float — используйте допуск или работайте с целыми.
- Мутация списка при итерации по нему.
- Сложность: случайные вложенные циклы по 10⁵ элементов → TLE.
Шаблоны решений
# 1) Счётчики/агрегаты n = int(input()) arr = list(map(int, input().split())) total = 0 even = 0 for x in arr: total += x if x % 2 == 0: even += 1 print(total, even) # 2) Частоты from collections import Counter freq = Counter(arr) print(freq.get(5, 0)) # 3) Два указателя (сумма == S в отсортированном массиве) S = int(input()) i, j = 0, len(arr) - 1 found = False while i < j: s = arr[i] + arr[j] if s == S: found = True; break if s < S: i += 1 else: j -= 1 print('YES' if found else 'NO')
Памятка-проверочный список
- Корректно читаю весь ввод? Нет лишних
input()
? - Обрабатываю пустые случаи, крайние значения?
- Сложность приемлема (≤ O(n log n))?
- Имена переменных понятные, без затенения встроенных?
- Проверил на 2–3 своих тестах и из условия?
📝 Практические задачи
Задача 16.1 (Базовый уровень)
Напишите программу, которая находит сумму всех чисел от 1 до n (включительно).
Решение
n = int(input()) sum = 0 for i in range(1, n + 1): sum += i print(sum)
Задача 16.2 (Средний уровень)
Напишите программу, которая находит количество чётных чисел в списке.
Решение
a = list(map(int, input().split())) count = 0 for x in a: if x % 2 == 0: count += 1 print(count)
Задача 16.3 (Повышенный уровень)
Напишите программу, которая находит наибольший общий делитель двух чисел.
Решение
a, b = map(int, input().split()) while b: a, b = b, a % b print(a)
🎯 Тренировочный блок
Быстрая проверка знаний
1. Как получить длину списка a?
2. Как проверить, что число n чётное?