ОГЭ Информатика 2023: Решение задачи с кодировкой

Задание 1: Кодировка символов

Условие: В кодировке, используемой на компьютере Вовы, каждый символ кодируется семью битами. При подготовке доклада Вова написал текст без лишних пробелов. Затем он добавил упоминание о математике, вставив пробелы и знаки препинания. Размер нового предложения оказался на 14 байт больше, чем размер исходного. Определите добавленную фамилию математика (инициалы не требуются).

Решение:

  1. Размер добавленного текста: 14 байт * 8 бит/байт = 112 бит.
  2. Количество добавленных символов: 112 бит / 7 бит/символ = 16 символов.
  3. Учитывая пробелы, запятую и, предположим, инициалы (в сумме 7 символов), длина фамилии: 16 — 7 = 9 символов.
  4. Проверка фамилий математиков с 9 символами приводит к ответу: Погорелов.

Задание 2: Логическое выражение

Условие: Определите наименьшее натуральное число X, при котором логическое выражение истинно: ¬(X < 6) ∨ (X < 3) ∧ ¬(X < 2) ∨ (X < 1).

Решение:

Выражение истинно, если истинны обе части, соединенные оператором ∧. Рассмотрим каждую часть:

  • ¬(X < 6) ∨ (X < 3): Эквивалентно X ≥ 6 ∨ X < 3. Наименьшее натуральное число, удовлетворяющее условию, — 1 или 2.
  • ¬(X < 2) ∨ (X < 1): Эквивалентно X ≥ 2 ∨ X < 1. Наименьшее натуральное число, удовлетворяющее условию, — 2.

Таким образом, наименьшее натуральное число X, удовлетворяющее обеим частям, равно 2.

Проверка на Python:

for x in range(1, 101):
    if (not (x < 6) or (x < 3)) and (not (x < 2) or (x < 1)):
        print(x)
        break

Задание 3: Кратчайший путь

Условие: Определите длину самого длинного участка кратчайшего пути между пунктами И и М на основе таблицы расстояний между пунктами (таблица не приведена в условии, предполагается, что она предоставлена отдельно).

Решение:

Построение графа по таблице и поиск кратчайшего пути приводит к маршруту И-В-М (длина 4). Самый длинный участок этого пути — 3.

Задание 4: Программа и пары чисел

Условие: Программа проверяет условие S ≤ 2 * K. При истинности выводит «Да», при ложности — «Нет». Определите количество запусков, при которых программа напечатала «Да», на основе предоставленного набора пар чисел (S, K) (набор пар не приведён в условии, предполагается, что он предоставлен отдельно).

Решение:

Проверка каждой пары чисел (S, K) на соответствие условию S ≤ 2 * K приводит к 6 случаям, когда программа вывела «Да». Ответ: 6.

Задание 5: Запрос в поисковой системе

Условие: Используя данные о количестве найденных страниц по запросам «Дед Мороз», «Санта Клаус», «Дед Мороз или Санта Клаус», определите количество страниц по запросу «Новый год и Дед Мороз и Санта Клаус» (количество страниц по каждому запросу не приведено в условии, предполагается, что оно предоставлено отдельно).

Решение:

Учитывая, что «Новый год» присутствует во всех запросах (предполагается), формула для двух множеств применима:

|Дед Мороз| = |Дед Мороз и Санта Клаус| + |Дед Мороз или Санта Клаус| — |Санта Клаус|

Подстановка значений приводит к ответу: 177.

Задание 6: Максимальное трёхзначное число

Условие: Максимальное трёхзначное число в неизвестной системе счисления равно 215 в десятичной системе. Найдите основание системы счисления.

Решение:

Перебор систем счисления и перевод максимального трёхзначного числа в десятичную систему показывает, что основание системы счисления равно 6.

Проверка на Python:

def to_decimal(n, base):
    decimal = 0
    power = 0
    while n > 0:
        digit = n % 10
        decimal += digit * (base ** power)
        n //= 10
        power += 1
    return decimal

for base in range(2, 20):
    max_num_str = str(base - 1) * 3
    max_num = int(max_num_str)
    if to_decimal(max_num, base) == 215:
        print(base)
        break

Задание 7: Таблица с баллами учеников

Условие: Обработайте таблицу с баллами учеников по географии и информатике, определив:

  1. Наибольшую сумму баллов по двум предметам среди учащихся школы №4.
  2. Процент учеников, получивших по информатике не менее 80 баллов.
  3. Постройте круговую диаграмму, отображающую соотношение учеников из школ №1, 6 и 7. (Таблица не приведена в условии, предполагается, что она предоставлена отдельно).

Решение:

Решение задачи требует использования функций электронной таблицы: СУММЕСЛИ, МАКС, СЧЁТЕСЛИ, построения круговой диаграммы.

Задание 8: Подсчет нечетных чисел, кратных трем

Условие: Напишите программу, которая определяет количество нечетных чисел, кратных трем, в последовательности целых чисел, заканчивающейся нулем.

Решение:

count = 0
k = 0
num_str = input()
num = int(num_str)

while num != 0:
    k += 1
    if num % 2 != 0 and num % 3 == 0:
        count += 1
    num_str = input()
    num = int(num_str)

print(k, count)

Задание 9: Подсчет чисел, оканчивающихся на девять

Условие: Напишите программу, определяющую количество натуральных чисел, оканчивающихся на 9, в последовательности заданной длины.

Решение:

k = int(input())
count = 0
for i in range(k):
    num = int(input())
    if num % 10 == 9:
        count += 1
print(count)

Что будем искать? Например,программа