Даша: Спасибо:3
31-05-2023
Читать статью
Санечка: я ничего не учила) но буду надеятся что ..
30-05-2023
Мейнер Сяо: Удачи всем сегодня на экзамене ;)..
Продолжаем разбор демонстрационного варианта ЕГЭ по информатике 2022.
В этой статье разберём с 11-ого по 15 задание.
Источник задач: https://fipi.ru/ege/demoversii-specifikacii-kodifikatory#!/tab/151883967-5.
Успешной подготовки к ЕГЭ по информатике 2022!
При регистрации в компьютерной системе каждому объекту сопоставляется идентификатор, состоящий из 15 символов и содержащий только символы из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом объекте отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование идентификаторов, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно идентификатора, для каждого объекта в системе хранятся дополнительные сведения, для чего отведено 24 байта на один объект.
Определите объём памяти (в байтах), необходимый для хранения сведений о 20 объектах. В ответе запишите только целое число – количество байт.
Теперь нужно определить: сколько бит занимает одна ячейка (1 символ идентификатора!).
Когда речь идёт о количестве бит, применяем формулу, которую мы использовали в 7 задании из ЕГЭ по информатике. Там мы кодировали цвета для одного пикселя, а здесь нужно закодировать 8 букв для одного поля идентификатора.
Применяем:
Следовательно, для кодирования одного поля идентификатора потребуется 3 бита.
Для всего идентификатора потребуется 3 * 15 = 45 бит. Т.к. используется целое число байт для хранения идентификатора, то в байтах идентификатор будет весить 6 байт (45/8 = 5,625).
Один объект будет весить 6 байт + 24 байта = 30 байт (Приплюсовали дополнительную информацию).
Для 20 объектов потребуется 20*30 байт = 600 байт.
Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды
заменить (111, 27)
преобразует строку 05111150 в строку 0527150.
заменить (v, w) не меняет эту строку.
Б) нашлось (v).
Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.
Цикл
ПОКА условие последовательность команд КОНЕЦ ПОКА
выполняется, пока условие истинно.
В конструкции
ЕСЛИ условие ТО команда1 ИНАЧЕ команда2 КОНЕЦ ЕСЛИ
выполняется команда1 (если условие истинно) или команда2 (если условие ложно).
Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 70 идущих подряд цифр 8? В ответе запишите полученную строку.
НАЧАЛО ПОКА нашлось (2222) ИЛИ нашлось (8888) ЕСЛИ нашлось (2222) ТО заменить (2222, 88) ИНАЧЕ заменить (8888, 22) КОНЕЦ ЕСЛИ КОНЕЦ ПОКА КОНЕЦ
Нас интересует вопрос и программа, которые приведены в конце задачи. Описание команд, как правило, не меняется от задачи к задаче.
Переведём программу, написанную на русском языке, на язык программирования Python.
s = '8'*70 while '2222' in s or '8888' in s: if '2222' in s: s = s.replace('2222', '88', 1) else: s = s.replace('8888', '22', 1) print(s)
В функции replace() важно не забыть поставить третьим аргументом единицу. Это означает, что мы производим замену один раз, а не сразу во всей строке.
Программа распечатает ответ 22.
На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Сколько существует различных путей из города А в город М, проходящих через город В?
В начале зачеркнём те стрелки, которые приводят к тому, что мы не пройдём через пункт B.
Представляем, что вообще не существует тех стрелок, которые мы зачеркнули.
Ставим 1 возле начального города А. Смотрим для каждого города, из каких пунктов входят стрелки в конкретный город. Суммируем те числа, которые стоят возле тех пунктов, из которых входят стрелки.
Сначала считаем числа для тех городов, для которых можем это сделать.
Число возле конечного города покажет ответ.
Значение арифметического выражения
записали в системе счисления с основанием 16. Сколько значащих нулей содержится в этой записи?
На слово "значащие" можно не обращать внимание, потому что речь идёт об обычных нулях, которые встречаются в числе.
Напишем программу на языке Python.
f=3 * 4**38 + 2 * 4**23 + 4**20 + 3 * 4**5 + 2 * 4**4 + 1 count=0 while f>0: d = f % 16 if d==0: count=count+1 f = f // 16 print(count)
В первой строчке мы переписываем арифметическое выражение. Две звёздочки подряд обозначают возведение в степень!
Затем, заводим переменную count для подсчёта нулей в 16-ричном виде.
С помощью цикла while, как раз, и получаем все цифры числа f в 16-ричной системе.
Мы смотрим остаток от деления числа f на 16, это и есть очередная цифра в 16-ричной системе (имитируем деление уголком!). Если цифра равна нулю, то её подсчитываем с помощью счётчика count. Так же необходимо сделать целочисленное деление на 16 при каждой итерации.
В конце распечатываем переменную count.
Ответ получился 15.
На числовой прямой даны два отрезка: D = [17; 58] и C = [29; 80]. Укажите наименьшую возможную длину такого отрезка A, для которого логическое выражение.
истинно (т.е. принимает значение 1) при любом значении переменной х.
"Главной скрипкой" данного логического выражения является следование, потому что эта операция соединяет различных блоки логические блоки.
Нам нельзя допустить, чтобы первое выражение принимало 1, а второе 0, одновременно.
Рассмотрим при каких значениях x реализуется этот страшный вариант.
Опасные значения получаются [17; 29]. Чтобы опасный сценарий нейтрализовать, выражение ¬(x ∈ A) должно принимать значение 0. Тогда (x ∈ A) должно выдавать 1. Чтобы это происходило всегда при опасных значения, принимаем A=[17, 29]. Длина получается 12.