ОГЭ: задания 13–16

Введение во вторую часть (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:
    выполнить действие

Инвариант цикла: свойство, которое сохраняется на каждой итерации

Алгоритм анализа

  1. Изучите систему команд — какие команды доступны
  2. Определите начальное состояние — позиция, направление, содержимое памяти
  3. Выполните трассировку — пошагово выполните алгоритм
  4. Проверьте граничные случаи — что происходит на границах
  5. Найдите инвариант — что сохраняется в циклах

Расширенная теория

  • Исполнители: робот/черепашка/Тьюринг — фиксируйте состояния и ограничения.
  • Циклы: инварианты, границы, конечность; избегайте бесконечных циклов.
  • Трассировка: таблица шагов и состояний, проверка на граничных примерах.
  • Чек-лист: корректность команд, соблюдение границ поля/ленты, порядок поворотов.

📝 Практические задачи

Задача 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) — сумма элементов

Алгоритм решения задач

  1. Внимательно прочитайте условие — что требуется найти
  2. Определите входные данные — что дано
  3. Подумайте об алгоритме — как решить задачу
  4. Проверьте граничные случаи — пустой ввод, минимумы/максимумы
  5. Напишите код — реализуйте алгоритм
  6. Протестируйте — проверьте на примерах

Типы данных и структуры

  • 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 чётное?




Настройки

Цветовая схема

Тема

i