Пробник по информатике егэ 2021 с ответами

группа vk вконтакте

группа fb facebook

1.

1 задание. Демо ЕГЭ 2021 информатика, ФИПИ:

На рисунке схема дорог Н-ского района изображена в виде графа, в таблице содержатся сведения о протяжённости каждой из этих дорог (в километрах).
демо 2021 информатика 1 задание
Так как таблицу и схему рисовали независимо друг от друга, то нумерация населённых пунктов в таблице никак не связана с буквенными обозначениями на графе. Определите, какова протяжённость дороги из пункта Г в пункт Ж. В ответе запишите целое число – так, как оно указано в таблице.

Ответ: 9

Видео


2.

2 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Миша заполнял таблицу истинности функции

(x ∨ y) ∧ ¬(y ≡ z) ∧ ¬w
но успел заполнить лишь фрагмент из трёх различных её строк, даже не указав, какому столбцу таблицы соответствует каждая из переменных w, x, y, z.

Определите, какому столбцу таблицы истинности функции F соответствует каждая из переменных w, x, y, z.

Перем.1 Перем.2 Перем.3 Перем.4 Функция
??? ??? ??? ??? F
1 1 1
0 1 0 1
1 1 0 1

В ответе запишите буквы в том порядке, в котором идут соответствующие им столбцы.


3.

3 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите на основании приведённых данных ID женщины, ставшей матерью в наиболее молодом возрасте. При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц. Ниже представлены два фрагмента таблиц из базы данных о жителях микрорайона. Каждая строка таблицы 2 содержит информацию о ребёнке и об одном из его родителей. Информация представлена значением поля ID в соответствующей строке таблицы 1. Определите на основании приведённых данных ID женщины, ставшей матерью в наиболее молодом возрасте. При вычислении ответа учитывайте только информацию из приведённых фрагментов таблиц.

Ответ: 64
 


4.

4 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Для кодирования некоторой последовательности, состоящей из букв Л, М, Н, П, Р, решили использовать неравномерный двоичный код, удовлетворяющий условию, что никакое кодовое слово не является началом другого кодового слова. Это условие обеспечивает возможность однозначной расшифровки закодированных сообщений. Для букв Л, М, Н использовали соответственно кодовые слова 00, 01, 11. Для двух оставшихся букв – П и Р – кодовые слова неизвестны.
Укажите кратчайшее возможное кодовое слово для буквы П, при котором код будет удовлетворять указанному условию. Если таких кодов несколько, укажите код с наименьшим числовым значением.


5.

5 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1. Строится двоичная запись числа N.
2. К этой записи дописываются справа ещё два разряда по следующему правилу:
  а) складываются все цифры двоичной записи числа N, и остаток от деления суммы на 2 дописывается в конец числа (справа).

Например, запись 11100 преобразуется в запись 111001;

 б) над этой записью производятся те же действия – справа дописывается остаток от деления суммы её цифр на 2.
Полученная таким образом запись (в ней на два разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Укажите такое наименьшее число N, для которого результат работы данного алгоритма больше числа 77. В ответе это число запишите в десятичной системе счисления.

Ответ: 19

  
Разбор

подобного

задания смотрите на видео:
Видео

✍ Решение:

  • Заметим, что после второго пункта условия задачи получаются только четные числа (т.к. если число в двоичной системе заканчивается на 0, то оно четное). Таким образом, нас будут интересовать только четные числа.
  • Наименьшим возможным числом, превышающим 77, является число 78. С ним и будем работать.
  • Переведем 78 в двоичную систему счисления. Используя компьютер это можно сделать с помощью программистского режима калькулятора. Либо в консоли интерпретатора Python набрать bin(78). Получим:
  • 1001110
  • В данном числе выделенная часть — это N. Значит, необходимое нам двоичное число — это 10011. После первого пункта задачи к данному числу должна была добавиться справа единица, так и есть: 100111. А затем добавляется 0: 1001110. Соответственно, оно подходит.
  • Переведем его обратно в десятичную систему, используя калькулятор либо консоль пайтон:
  • int('10011',2)
  • Получим 19.

Ответ: 19


6.

6 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Определите, при каком наименьшем введённом значении переменной s программа выведет число 64. Для Вашего удобства программа представлена на четырёх языках программирования.

Паскаль:

1
2
3
4
5
6
7
8
9
10
11
12
13
var
  s, n: integer;
 
begin
  readln(s);
  n := 1;
  while s < 51 do
  begin
    s := s + 5; 
    n := n * 2 
  end;
  writeln(n) 
end.
Алгоритмический язык:

алг
нач
 цел n, s
 ввод s
 n := 1
 нц пока s < 51
  s := s + 5
  n := n * 2
кц
вывод n
кон
Python:

s = int(input())
n = 1
while s < 51:
   s = s + 5
   n = n * 2
print(n)
С++:

#include <iostream>
using namespace std;
int main()
{ int s, n;
 cin >> s;
 n = 1 ;
 while (s < 51) { s = s + 5; n = n * 2; }
 cout << n << endl;
 return 0;
}

✍ Решение:

    ✎ Способ 1 (программный):
    Pascalabc.net:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    begin
      var s1 := 1;
      while true do // внешний цикл, бесконечный
      begin
        var s := s1;
        // --- код из условия задания --- //
        var n := 1;
        while s < 51 do
        begin
          s := s + 5; 
          n := n * 2
        end;
        if n = 64 then // если найдено, то выводим соответствующее s
        begin
          print(s1); 
          break;  // выход из бесконечного цикла 
        end;
        s1 := s1 + 1; // 
      end;
    end.

    Пояснение:

  • Поскольку в цикле s увеличивается, а по условию задания следует найти наименьшее значение s, то можно начать с s=1, постоянно увеличивая значение s на единицу во внешнем цикле.
  • Важно для внешнего цикла использовать другую переменную, т.к. во внутреннем цикле переменная s меняется, а нам следует каждый шаг внешнего цикла сохранить предыдущее значение s, увеличив его всего на 1. Используем переменную S1 для этих целей.
  • Бейсик:

    Python:

    s1 = 1
    while True:  # внешний цикл, бесконечный
        s = s1
        # --- код из условия задания --- 
        n = 1
        while s < 51:
            s = s + 5
            n = n * 2
        # --- конец кода из условия задания --- 
        if n == 64:
            print(s1)
            break
        s1 += 1
    С++:

Ответ: 21


7.

7 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Для хранения произвольного растрового изображения размером 128×320 пикселей отведено 20 Кбайт памяти без учёта размера заголовка файла. Для кодирования цвета каждого пикселя используется одинаковое количество бит, коды пикселей записываются в файл один за другим без промежутков.
Какое максимальное количество цветов можно использовать в изображении?

Ответ: 16

  
Разбор

подобного

задания смотрите на видео:
🎦 Видео 


8.

8 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Игорь составляет таблицу кодовых слов для передачи сообщений, каждому сообщению соответствует своё кодовое слово. В качестве кодовых слов Игорь использует трёхбуквенные слова, в которых могут быть только буквы Ш, К, О, Л, А, причём буква К появляется ровно 1 раз. Каждая из других допустимых букв может встречаться в кодовом слове любое количество раз или не встречаться совсем. Сколько различных кодовых слов может использовать Игорь?

Ответ: 48
  ✍ Решение:

    ✎ Решение с использованием программирования:

    PascalABC.net:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    begin
    var n:=0;
    var str:='школа';
    for var s1:=1 to length(str) do
      for var s2:=1 to length(str) do
        for var s3:=1 to length(str) do
          begin
            if (str[s1]+str[s2]+str[s3]).Count(x->x='к')=1 then
              n+=1;
          end;
    print(n)
    end.
    Python:

    1
    2
    3
    4
    5
    6
    7
    8
    
    n = 0
    str = 'школа'
    for s1 in str:
      for s2 in str:
        for s3 in str:
            if (s1 + s2 + s3).count('к')==1:
              n += 1
    print(n)
    С++:

Разбор подобного задания смотрите на видео:
🎦 Видео 


9.

9 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Задание выполняется с использованием прилагаемых файлов

Откройте файл электронной таблицы, содержащей вещественные числа – результаты ежечасного измерения температуры воздуха на протяжении трёх месяцев.
Найдите разность между максимальным значением температуры и её средним арифметическим значением.
В ответе запишите только целую часть получившегося числа.


10.

10 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Задание выполняется с использованием прилагаемых файлов

  
С помощью текстового редактора определите, сколько раз, не считая сносок, встречается слово «долг» или «Долг» в тексте романа в стихах А.С. Пушкина «Евгений Онегин». Другие формы слова «долг», такие как «долги», «долгами» и т.д., учитывать не следует. В ответе укажите только число.


11.

11 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

При регистрации в компьютерной системе каждому объекту сопоставляется идентификатор, состоящий из 15 символов и содержащий только символы из 8-символьного набора: А, В, C, D, Е, F, G, H. В базе данных для хранения сведений о каждом объекте отведено одинаковое и минимально возможное целое число байт. При этом используют посимвольное кодирование идентификаторов, все символы кодируют одинаковым и минимально возможным количеством бит. Кроме собственно идентификатора, для каждого объекта в системе хранятся дополнительные сведения, для чего отведено 24 байта на один объект.
Определите объём памяти (в байтах), необходимый для хранения сведений о 20 объектах. В ответе запишите только целое число – количество байт.

Ответ: 600

 
Разбор

подобного

задания смотрите в видео:
🎦 Видео  


12.

12 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Исполнитель Редактор получает на вход строку цифр и преобразовывает её. Редактор может выполнять две команды, в обеих командах v и w обозначают цепочки цифр.
А) заменить (v, w).

Эта команда заменяет в строке первое слева вхождение цепочки v на цепочку w. Например, выполнение команды заменить (111, 27) преобразует строку 05111150 в строку 0527150.Если в строке нет вхождений цепочки v, то выполнение команды заменить (v, w) не меняет эту строку.

Б) нашлось (v).

Эта команда проверяет, встречается ли цепочка v в строке исполнителя Редактор. Если она встречается, то команда возвращает логическое значение «истина», в противном случае возвращает значение «ложь». Строка исполнителя при этом не изменяется.


Какая строка получится в результате применения приведённой ниже программы к строке, состоящей из 70 идущих подряд цифр 8? В ответе запишите полученную строку.

НАЧАЛО
ПОКА нашлось (2222) ИЛИ нашлось (8888)
  ЕСЛИ нашлось (2222)
    ТО заменить (2222, 88)
    ИНАЧЕ заменить (8888, 22)
  КОНЕЦ ЕСЛИ
КОНЕЦ ПОКА
КОНЕЦ
    ✎ Решение с использованием программирования:
    PascalABC.NET:
    Вариант 1:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    
    begin
       var s := '8'*70;
       var p2 := Pos('2222',s);
       var p8 := Pos('8888',s);
       while (p2 > 0) or (p8 > 0) do begin
         if p2 > 0 then begin
           Delete( s, p2, 4 );
           Insert( '88', s, p2 );
         end
         else begin
           Delete( s, p8, 4 );
           Insert( '22', s, p8 );
         end;
         p2 := Pos('2222',s);
         p8 := Pos('8888',s);
       end; 
       write(s);
    end.

    Вариант 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    begin
      var s: string := '8' * 70;
      while (s.contains('2222')) or (s.contains('8888')) do
      begin
        if (s.contains('2222')) then
          s := s.replace('2222', '88')
        else
          s := s.replace('8888', '22');
      end;
      writeln(s);
    end.

    Питон:

    1
    2
    3
    4
    5
    6
    7
    
    s = 70 * '8'
    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)

Разбор подобного задания смотрите в видео:
🎦 Видео  


13.

13 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

На рисунке представлена схема дорог, связывающих города А, Б, В, Г, Д, Е, Ж, З, И, К, Л, М. По каждой дороге можно двигаться только в одном направлении, указанном стрелкой.
Сколько существует различных путей из города А в город М, проходящих через город В?
13 задание демо 2021

Ответ: 24

 
Разбор

подобного

задания смотрите в видео:
🎦 Видео


14.

14 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Значение арифметического выражения: 497 + 721 – 7 – записали в системе счисления с основанием 7. Сколько цифр 6 содержится в этой записи?

Ответ: 13
 ✍ Решение:

✎ Решение с использованием программирования:

PascalABC.NET:

begin
  var k := 0;
  var x: Biginteger;
  x := Biginteger.Pow(49, 7) + Biginteger.Pow(7, 21) - 7;
  // в получившемся числе рассматриваем каждую цифру в 7-й системе сч.
  while x > 0 do
  begin
    if x mod 7 = 6 then k += 1; // если цифра = 6, то считаем ее
    x := x div 7; // убираем разряд числа в 7-й системе сч.
  end;
  println(k);
end.
Python:

x = 49**7 + 7**21 - 7
k = 0
# в получившемся числе рассматриваем каждую цифру в 7-й системе сч.
while x: 
    if x % 7 == 6: # если цифра = 6, то считаем ее
        k += 1
    x //= 7 # убираем разряд числа в 7-й системе сч.
print( k )
С++:

Ответ: 13

Разбор подобного задания смотрите в видео:
🎦 Видео


15.

15 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Обозначим через ДЕЛ(n, m) утверждение «натуральное число n делится без остатка на натуральное число m».
Для какого наибольшего натурального числа А формула

¬ДЕЛ(x, А) → (ДЕЛ(x, 6) → ¬ДЕЛ(x, 9))

тождественно истинна (то есть принимает значение 1 при любом натуральном значении переменной х)?

Ответ: 18
 ✍ Решение:

✎ Решение с использованием программирования:

PascalABC.NET:

Питон:

1
2
3
4
5
6
for A in range(1,1000):
  OK = 1
  for x in range(1,1000):
    OK *= (x % A != 0) <= ((x % 6 == 0) <= (x % 9 != 0))
  if OK:
    print( A )

C++:

✎ Решение теоретическое:

  • Введем обозначения и перепишем исходную формулу:
  • ¬А → (6 → ¬9) = 1
  • Избавимся от импликации:
  • А¬6 ∨ ¬9 = 1
  • Будем отрицать известную часть:
  • ¬(¬6 ∨ ¬9) = 1
  • Получаем:
  • 6 ∧ 9 = 1
  • Таким образом, необходимо найти наибольшее А, на которое делятся все натуральные х, такое что эти х делятся и на 6 и на 9 одновременно:
  • x/A : x/6 AND x/9 
  • Переберем х, которые одновременно делятся и на 6 и на 9:
  • х = 18, 36, 54, 72 ...
  • Переберем А, начиная с наименьшего, до такого наибольшего А, которое будет делителем всех найденных х:
  • А = 1, 2, 3, 4, 5, ... 18

    При попытке взять большее А, x равный 18 не будет делиться на такое А.

Ответ: 18


16.

16 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:

F(n) = 1 при n = 1;
F(n) = n + F(n − 1), если n – чётно,
F(n) = 2 × F(n − 2), если n > 1 и при этом n – нечётно

Чему равно значение функции F(26)?

Ответ: 4122

  
🎦 Видео

✍ Решение:

✎ Решение с использованием программирования:

PascalABC.NET:

1
2
3
4
5
6
7
8
9
10
11
12
13
function F(n: integer): integer;
begin
  if n <= 1 then
    F := 1;
  if n mod 2 = 0 then
    F := n + F(n - 1);
  if (n > 1) and (n mod 2 <> 0) then
    F := 2 * F(n - 2)
end;
 
begin
  print(F(26))
end.

Питон:

1
2
3
4
5
6
7
8
def F( n ):
   if n <= 1: 
      return 1
   if (n % 2 == 0):
      return n + F(n-1)
   if (n>1 and n % 2 != 0):
      return 2 * F(n-2)
print (F(26))

C++:

Ответ: 4122


17.

17 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Рассматривается множество целых чисел, принадлежащих числовому отрезку [1016; 7937], которые делятся на 3 и не делятся на 7, 17, 19, 27. Найдите количество таких чисел и максимальное из них.
В ответе запишите два целых числа: сначала количество, затем максимальное число.

! Для выполнения этого задания можно написать программу или воспользоваться редактором электронных таблиц

Ответ: 1568 | 7935

 
🎦 Видео

✍ Решение:

    ✎ Решение с использованием программирования:

    Паскаль:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    var
      i, k, max: integer;
     
    begin
      k := 0;
      max := 0;
      for i := 1016 to 7937 do 
      begin
        if (i mod 3 = 0) and (i mod 7 > 0) and (i mod 17 > 0) and (i mod 19 > 0) and (i mod 27 > 0) then
        begin
          max:= i;
          inc(k);
        end;
      end;
      writeln(k, ' ', max)
    end.

    PascalABC.NET:

    1
    2
    3
    4
    
    begin
     var s := Range( 1017, 7937, 3).Where( i -> not i.DivsAny(7, 17, 19, 27) );
     print( s.Count, s.Max );            
    end.

    Питон:

    1
    2
    3
    
    a = [n for n in range(1016,7937+1) 
         if (n%3==0 and n%7!=0 and n%17!=0 and n%19!=0 and n%27!=0)]
    print(len(a),max(a))

    Список a формируем, используя генератор списка: то есть в список попадут только не числа из диапазона [1016,7937], которые удовлетворяют всем перечисленным условиям: n%3==0 (число делится на 3), n%7!=0 (число не делится на 7) и т.п.

    C++:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    #include <iostream>
    int main()
    {
      int count = 0;
      int maxGood = 0;
      for(int n=1016; n<=7937; n++)
        if( (n % 3 == 0) and (n % 7 != 0) and 
            (n % 17 != 0) and (n % 19 != 0) and (n % 27 != 0) ) {
          maxGood = n;    
          count += 1;
          }  
      std::cout << count << " " << maxGood;
    }

    ✎ Решение с помощью Excel:

  • Первое значение диапазона введем в ячейку A1:
  • Используем прогрессию для заполнения всего диапазона числами. Для это выберите вкладку Главная и щелкните по кнопке Прогрессия:
  • Столбец B будем использовать для поиска чисел, которые делятся на 3. Для этого в ячейку B1 введите формулу с рисунка:
  • Двойным щелчком по маркеру заполнения скопируйте формулу на весь столбец:
  • Столбец С будем использовать для поиска чисел, которые НЕ делятся на 7. Для этого в ячейку С1 введите формулу с рисунка:
  • Заполните весь столбец двойным щелчком по маркеру заполнения.
  • Cтолбцы D, E, F таким же образом будем использовать для поиска чисел столбца А, которые не делятся на 17, 19 и 27
  • Для поиска всех истинных значений используем столбец G. В ячейку G1 введите функцию ЕСЛИ: если все значения ячеек в столбцах B-F в этой строке истинны, выводим число из А1, иначе – пустую строку:

  • Заполните весь столбце, используя маркер автозаполнения.

  • Ячейку H1 будем использовать для подсчета таких чисел, которые удовлетворяют всем условиям, т.е. для подсчета непустых ячеек столбца G:
  • Ячейку H2 будем использовать для подсчета такого наибольшего числа:

🎦 Видео


18.

18 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Задание выполняется с использованием прилагаемых файлов

  
Квадрат разлинован на N×N клеток (1 < N < 17). Исполнитель Робот может перемещаться по клеткам, выполняя за одно перемещение одну из двух команд: вправо или вниз. По команде вправо Робот перемещается в соседнюю правую клетку, по команде вниз – в соседнюю нижнюю. При попытке выхода за границу квадрата Робот разрушается. Перед каждым запуском Робота в каждой клетке квадрата лежит монета достоинством от 1 до 100. Посетив клетку, Робот забирает монету с собой; это также относится к начальной и конечной клетке маршрута Робота.
Определите максимальную и минимальную денежную сумму, которую может собрать Робот, пройдя из левой верхней клетки в правую нижнюю.
В ответе укажите два числа – сначала максимальную сумму, затем минимальную.

Исходные данные представляют собой электронную таблицу размером N×N, каждая ячейка которой соответствует клетке квадрата.

Пример входных данных:

Для указанных входных данных ответом должна быть пара чисел:

Ответ: 1204 | 502

Видео

Решение подобного задания


19.

19 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежат две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в одну из куч (по своему выбору) один камень или увеличить количество камней в куче в два раза.

Например, пусть в одной куче 10 камней, а в другой 5 камней; такую позицию в игре будем обозначать (10, 5). Тогда за один ход можно получить любую из четырёх позиций: (11, 5), (20, 5), (10, 6), (10, 10).

Для того чтобы делать ходы, у каждого игрока есть неограниченное количество камней.
Игра завершается в тот момент, когда суммарное количество камней в кучах становится не менее 77. Победителем считается игрок, сделавший последний ход, т.е. первым получивший такую позицию, при которой в кучах будет 77 или больше камней.
В начальный момент в первой куче было семь камней, во второй куче – S камней; 1 ≤ S ≤ 69.
Будем говорить, что игрок имеет выигрышную стратегию, если он может выиграть при любых ходах противника. Описать стратегию игрока – значит описать, какой ход он должен сделать в любой ситуации, которая ему может встретиться при различной игре противника. В описание выигрышной стратегии не следует включать ходы играющего по этой стратегии игрока, не являющиеся для него безусловно выигрышными, т.е. не являющиеся выигрышными независимо от игры противника.

Известно, что Ваня выиграл своим первым ходом после неудачного первого хода Пети. Укажите минимальное значение S, когда такая ситуация возможна.

Ответ: 18

✍ Решение 1:

  • Нарисуем таблицу, в первом столбце которой будем откладывать количество камней в первой куче, а в первой строке — количество камней во второй куче. Получим матрицу. Поскольку в первой куче количество начинается с 7, то это и будет первым значением в таблице. Во второй куче начнем с наибольшего возможного числа — 69:
  • Далее будем рассуждать так: Петя может выиграть первым ходом, выполнив команду *2 (увеличить количество камней в куче в два раза), если вместо S (кол-во камней во второй куче), мы будем изменять значение, начиная от 35, до последнего возможного по условию значения 69:
  • 7 + 35*2 = 77 (>=77)
  • Соответственно, все значения большие 34 дадут в результате сумму, большую 76. Укажем это в таблице. + означает выигрышную позицию с первого хода.
  • По заданию необходимо, чтобы Петя проиграл. То есть необходимо подобрать S, из которого можно попасть в диапазон выигрышных позиций для соперника:
  • 17 * 2 = 34 (мало, необходимо 35 и более) 
    18 * 2 = 36 подходит!

Ответ: 18
✍ Решение 2 (Excel):

  • В столбце А отложим значения — количество камней в первой куче. Начнем с ячейки А2, в которую внесем начальное количество камней, т.е. 7. Автозаполнением продлим значения вниз до 25 примерно:
  • В строке 1 таблицы (начиная с ячейки B1) отложим значения для второй кучи. Поскольку в задании говорится, что 0<=S<=69, то последним значением пусть будет 40. В дальнейшем часть таблицы можно будет удалить:

  • Из двух команд, которые могут выполнять игроки, выберем наиболее сильную, т.е. благодаря которой можно быстрее достичь выигрышного диапазона и попасть в значения S>=77. Это команда удваивания количества камней, т.е. *2.
  • Для каждой из ячеек полученной таблицы рассчитаем значение, полученное в результате удвоения той кучи камней, в которой большее количество камней (так как это даст бОльший результат). Например, для ячейки С5, в которой игрок имеет в первой куче 10 камней, а во второй куче 2 камня, мы бы выполнили действие 10*2+2. Т.е. удвоили бы первую кучу, т.к. в ней больше камней.
  • Чтобы автоматизировать процесс необходимо использовать формулу, в которой найдем максимальное значение из двух вариантов: Максимальное из(1куча*2 + 2куча, 1куча + 2*2куча). Выразив это в формуле Excel, получим результат, который внесем в ячейку B2:
  • =МАКС($A2+2*B$1;2*$A2+B$1)
    
  • Здесь знак $ будем использовать для фиксации столбца А и строки 1 при копировании формулы.
  • задание 19 ЕГЭ информатика

  • Скопируем формулу на всю таблицу.
  • Выделим всю таблицу и используем Условное форматирование для выделения тех значений, которые попадают в выигрыш (>76):
  • Выделенные значения — это значения, которые можно получить в сумме двух куч, выполнив ход из данной ячейки. И по сути, это и есть выигрышные позиции с 1 хода.
  • Далее следуем логике рассуждения из предыдущего способа решения.

Ответ: 18

Решение задания смотрите на видео (2 способ, Excel):
Видео
Решение задания смотрите на видео (1 способ):
Видео
Решение подобного задания смотрите на видео:  
🎦 Видео


20.

20 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

Для игры, описанной в предыдущем задании, найдите два таких значения S, при которых у Пети есть выигрышная стратегия, причём одновременно выполняются два условия:

  • Петя не может выиграть за один ход;
  • Петя может выиграть своим вторым ходом независимо от того, как будет ходить Ваня.
  • Найденные значения запишите в ответе в порядке возрастания.

    Ответ: 31 | 34
    ✍ Решение 1:

    • Проанализируем таблицу, увеличивая количество камней в первой куче и выполняя поиск выигрышных позиций с одного хода. Знаком +2 будет отмечать выигрышные позиции со второго хода, т.е. из которых можно перевести соперника в проигрышную позицию со знаком -:
    • Последующая логика рассуждений: Петя может выиграть свои вторым ходом, если он не может выиграть первым ходом, и одновременно получив позицию, выигрышную со второго хода:
    • (7,34) -> (8,34)
      (7,31) -> (14,31)

    Ответ: 31 34

    ✎ Решение 2 (Excel)

    • Продолжаем работать с той же таблицей, что и в задании 19. Выделим все проигрышные позиции (из которых можно походить только в выигрышные позиции для соперника, т.е. в выделенные ячейки):
  • Петя может выиграть свои вторым ходом, если он не может выиграть первым ходом, но может выполнить ход в позицию, проигрышную для соперника (в ячейку, выделенную красным). Такие позиции назовем выигрышные позиции со второго хода:
  • Этим ячейкам соответствует S=31 и S=34.
  • Ответ: 31 34

    Решение задания смотрите на видео (1 способ):
    🎦 Видео


    21.

    21 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

    Для игры, описанной в задании 19, найдите минимальное значение S, при котором одновременно выполняются два условия:

  • у Вани есть выигрышная стратегия, позволяющая ему выиграть первым или вторым ходом при любой игре Пети;
  • у Вани нет стратегии, которая позволит ему гарантированно выиграть первым ходом.
  • ✍ Решение:

    • Необходимо найти для Пети проигрышные позиции со второго хода. Это должна быть первая строка, т.к. это первый ход Пети. Первое подходящее значение — 33, из него Петя может либо сразу походить в выигрышную позицию с первого хода (7, 66), либо в выигрышную позицию со второго хода: (7,34) и (8,33).
    • Но есть значение меньше 33, это значение 30:
    • Ваня выиграет с первого хода, если: Петя (7,60) 
      Ваня выиграет с последующих ходов, если: Петя (7,31), (8,30), (14,30) 
      

    Ответ: 30

    Решение задания смотрите на видео:
    🎦 Видео


    22.

    22 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

    Ниже на четырёх языках программирования записан алгоритм. Получив на вход число x, этот алгоритм печатает два числа: L и M. Укажите наибольшее число x, при вводе которого алгоритм печатает сначала 4, а потом 5.

    Паскаль:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    
    var
      x, L, M, Q: integer;
    begin
      readln(x);
      Q := 9;
      L := 0;
      while x >= Q do
      begin
        L := L + 1;
        x := x - Q;
      end;
      M := x;
      if M < L then
      begin
        M := L;
        L := x;
      end;
      writeln(L);
      writeln(M);
    end.
    Алгоритмический язык:

    алг
    нач
      цел x, L, M, Q
      ввод x
       Q := 9
       L := 0
       нц пока x >= Q
         L := L + 1
         x := x - Q
       кц
       M := x
       если M < L
         то
            M := L
            L := x
       все
       вывод L, нс, M
    кон
    
    Python:

    x = int(input())
    Q = 9
    L = 0
    while x >= Q:
       L = L + 1
       x = x - Q
    M = x
    if M < L:
       M = L
       L = x
    print(L)
    print(M)
    С++:

    #include <iostream>
    using namespace std;
    int main()
    {
     int x, L, M, Q;
     cin >> x;
     Q = 9;
     L = 0;
     while (x >= Q){
       L = L + 1;
       x = x - Q;
     }
     M = x;
     if (M < L){
       M = L;
       L = x;
     }
     cout <<L <<endl <<M <<endl;
     return 0;
    }

    Ответ: 49
      


    23.

    23 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

    Исполнитель преобразует число на экране.
    У исполнителя есть две команды, которым присвоены номера:
    1. Прибавить 1
    2. Умножить на 2
    Первая команда увеличивает число на экране на 1, вторая умножает его на 2.
    Программа для исполнителя – это последовательность команд.

    Сколько существует программ, для которых при исходном числе 1 результатом является число 20, и при этом траектория вычислений содержит число 10?
    Траектория вычислений программы – это последовательность результатов выполнения всех команд программы.

    Например, для программы 121 при исходном числе 7 траектория будет состоять из чисел 8, 16, 17.

    Ответ: 28
      


    24.

    24 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

      

    Задание выполняется с использованием прилагаемых файлов

     
    Текстовый файл состоит не более чем из 106 символов X, Y и Z.
    Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны.
    Для выполнения этого задания следует написать программу.

    Ответ: 35

    🎦 Видео

    ✍ Решение:

      Паскаль:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      
      var
        f: text;
        i, k, max: integer;
        s: string;
       
      begin
        assign(f, 'D:24.txt');
        reset(f);
        readln(f, s);
        max := 1;
        k := 1; // кол-во подряд идущих
        for i := 2 to length(s) do
        begin
          if s[i] <> s[i - 1] then
          begin
            inc(k);
            if k > max then max := k;
          end
          else k := 1;
        end;
        write(max)
      end.

      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      
      f=open('D:/24.txt')
      s=f.readline()
      m=1
      k=1
      for i in range(1,len(s)):
          if s[i]!=s[i-1]:
              k+=1
              m=max(k,m)
          else:
              k=1
      print(m)

    25.

    25 задание. Демоверсия варианта ЕГЭ по информатике 2021, ФИПИ:

    Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [174457; 174505], числа, имеющие ровно два различных натуральных делителя, не считая единицы и самого числа. Для каждого найденного числа запишите эти два делителя в таблицу на экране с новой строки в порядке возрастания произведения этих двух делителей. Делители в строке таблицы также должны следовать в порядке возрастания.

    Например, в диапазоне [5; 9] ровно два целых различных натуральных делителя имеют числа 6 и 8, поэтому для этого диапазона таблица на экране должна содержать следующие значения:

    2 | 3
    2 | 4
    

      
    Ответ:

    3   | 58153
    7   | 24923
    59  | 2957
    13  | 13421
    149 | 1171
    5   | 34897
    211 | 827
    2   | 87251
    

    Разбор подобного задания смотрите на видео:
    🎦 Видео
    ✍ Решение:

    ✎ Метод полного перебора, неоптимизированный:

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      
      begin
        var divs := new integer[2];
        var divCount := 2;
        for var n := 174457 to 174505 do
        begin
          var i := 0; // для индекса массива
          for var d := 2 to n-1 do
          begin
            if n mod d = 0 then 
            begin
              if i < divCount then // чтобы индекс не выходил за границы массива
                divs[i] := d; 
              inc(i);
            end;
            if i > divCount then 
              break; 
          end;
          if i = divCount then
            println(divs)
        end;
      end.
      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      
      divCount = 2  # нужное количество делителей
      for n in range(174457,174505+1):
        divs = [] # чистим список делителей
        for d in range(2,n): # перебор делителей
          if n % d == 0:
            divs = divs + [d] # добавляем делитель в список
            if len(divs) > divCount: break
        if len(divs) == divCount:
          print( divs )
      С++:

      ✎ Решение (оптимизированный вариант 1):

    • Поскольку требуется искать числа, у которых есть всего два делителя, то следует помнить, что:
    • если число имеет ровно два делителя, отличных от единицы и самого числа, то произведение этих делителей и есть само число

    • Будем использовать оптимизированный вариант программы, подходящий для «медленных» компьютеров. Для этого перебор делителей для числа n будем выполнять от 2 до √n, округлив его до ближайшего целого числа (не включая точный квадратный корень, если он существует):
    • вместо диапазона делителей [2; число]
      использовать диапазон [2; округл(√n)]
      
    • При переборе делителей будем определять: если делитель – это точный квадратный корень(n), то в список делителей добавлять будем только сам делитель, если нет – то добавляем пару делителей (делитель и n // делитель):
    • Пример:
      число 8 = 2 * 4
      Достаточно рассмотреть цикл от 2 до округл(√8) (=2)
      если 8 делится на 2 и 8/2 не равно 2, то делители: 2 и 4 (8/2)
      
      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
      begin
        var divCount := 2;
        for var n := 174457 to 174505 do
        begin
          var divs := new List<integer>; 
          for var d := 2 to round(sqrt(n)) do
            if n mod d = 0 then begin
              divs.Add(d);      
              if d <> n div d then 
                divs.Add(n div d);
              if divs.Count > divCount then break;
            end;
          if divs.Count = divCount then
            Println(divs[0], divs[1]);
        end;
      end.
      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
      from math import sqrt
       
      for n in range(174457, 174505+1):
        divs = []
        q = int(sqrt(n))
        for d in range(2,q+1): # перебор делителей
          if n % d == 0:
            if d == n//d: # если точный квадратный корень
              divs = divs + [d]
            else:  
              divs = divs + [d, n//d]
            if len(divs) > 2: break # если превысили кол-во делителей - прерываем цикл
        if len(divs) == 2:
          print(divs) # вывод делителей
      С++:

      ✎ Решение (оптимизированный вариант 2):
      Python:

    • Для каждого числа указанного диапазона генерируем список делителей.
    • Если длина списка равна двум, выводим его.
    • 1
      2
      3
      4
      
      for n in range(174457, 174505+1):
        divs = [d for d in range(2, n) if n % d == 0] # range(2, n), т.к. два делителя, не считая 1 и самого числа
        if len(divs) == 2:
          print( *divs )

    ✎ Решение (оптимизированный вариант 3):

    PascalABC.net:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    
    begin
      var divs := new integer[2];
      var divCount := 2;
      for var n := 174457 to 174505 do
      begin
        var i := 0; // для индекса массива
        for var d := 2 to n div 2 do
        begin
          if n mod d = 0 then 
          begin
            if i < divCount then // чтобы индекс не выходил за границы массива
              divs[i] := d; 
            inc(i);
          end;
          if i > divCount then 
            break; 
        end;
        if i = divCount then
          println(divs)
      end;
    end.
    Python:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    divCount = 2  # нужное количество делителей
    for n in range(174457,174505+1):
      divs = [] # чистим список делителей
      for d in range(2,n//2+1): # перебор делителей
        if n % d == 0:
          divs = divs + [d] # добавляем делитель в список
          if len(divs) > divCount: break
      if len(divs) == divCount:
        print( divs )
    С++:

    26.

    27.

    25 июня 2021

    В закладки

    Обсудить

    Жалоба

    Подборка заданий основной волны прошедшего ЕГЭ по информатике 24 июня.

    Вариант: ege21-inf.pdf
    Файлы к заданиям: fajly.zip

    Источник: vk.com/inform_web

    Уважаемый посетитель!

    Если у вас есть вопрос, предложение или жалоба, пожалуйста, заполните короткую форму и изложите суть обращения в текстовом поле ниже. Мы обязательно с ним ознакомимся и в  30-дневный срок ответим на указанный вами адрес электронной почты

    Статус Абитуриент Студент Родитель Соискатель Сотрудник Другое

    Филиал Абакан Актобе Алагир Алматы Алушта Анапа Ангарск Архангельск Армавир Асбест Астана Астрахань Атырау Баку Балхаш Барановичи Барнаул Белая Калитва Белгород Бельцы Берлин Бишкек Благовещенск Бобров Бобруйск Борисов Боровичи Бронницы Брянск Бузулук Чехов Челябинск Череповец Черкесск Дамаск Дербент Димитровград Дмитров Долгопрудный Домодедово Дубай Дубна Душанбе Екатеринбург Электросталь Елец Элиста Ереван Евпатория Гана Гомель Гродно Грозный Хабаровск Ханты-Мансийск Хива Худжанд Иркутск Истра Иваново Ижевск Калининград Карабулак Караганда Каракол Кашира Казань Кемерово Киев Кинешма Киров Кизляр Королев Кострома Красноармейск Краснодар Красногорск Красноярск Краснознаменск Курган Курск Кызыл Липецк Лобня Магадан Махачкала Майкоп Минеральные Воды Минск Могилев Москва Моздок Мозырь Мурманск Набережные Челны Нальчик Наро-Фоминск Нижневартовск Нижний Новгород Нижний Тагил Ногинск Норильск Новокузнецк Новосибирск Новоуральск Ноябрьск Обнинск Одинцово Омск Орехово-Зуево Орел Оренбург Ош Озёры Павлодар Пенза Пермь Петропавловск Подольск Полоцк Псков Пушкино Пятигорск Радужный Ростов-на-Дону Рязань Рыбинск Ржев Сальск Самара Самарканд Санкт-Петербург Саратов Сергиев Посад Серпухов Севастополь Северодвинск Щербинка Шымкент Слоним Смоленск Солигорск Солнечногорск Ставрополь Сургут Светлогорск Сыктывкар Сызрань Тамбов Ташкент Тбилиси Терек Тихорецк Тобольск Тольятти Томск Троицк Тула Тверь Тюмень Уфа Ухта Улан-Удэ Ульяновск Ургенч Усть-Каменогорск Вёшенская Видное Владимир Владивосток Волгодонск Волгоград Волжск Воркута Воронеж Якутск Ярославль Юдино Жлобин Жуковский Златоуст Зубова Поляна Звенигород

    Тип обращения Вопрос Предложение Благодарность Жалоба

    Тема обращения Поступление Трудоустройство Обучение Оплата Кадровый резерв Внеучебная деятельность Работа автоматических сервисов университета Другое

    * Все поля обязательны для заполнения

    Я даю согласие на обработку персональных данных, согласен на получение информационных рассылок от Университета «Синергия» и соглашаюсь c  политикой конфиденциальности

    Реальный вариант ЕГЭ по информатике 2021 с ответами Евгений Джобс. Вариант с основной волны 2021 по информатике 24 июня 2021 и разбор

    ege2021-inf-real-var-jobs

    Разбор

    ege2021-inf-real-var-jobs-otvet

    Смотрите также:

    Демоверсия ЕГЭ 2022 по информатике с ответами

    Понравилась статья? Поделить с друзьями:
  • Пробник егэ по химии 2023 фипи
  • Пробник по информатике 11 класс 2022 егэ
  • Пробник егэ по физике фоксфорд
  • Пробник по егэ по русскому языку 2019
  • Пробник егэ по физике с решением