Задание 24 ЕГЭ информатика по теме «Программная обработка символьной информации»

Дата изменения: 14 января 2021
На уроке рассмотрен материал для подготовки к ЕГЭ по информатике, разбор 24 задания. Объясняется тема о программной обработке символьной информации.

ЕГЭ по информатике 24 задание объяснение

24-е задание: «Программная обработка символьной информации»
Уровень сложности — повышенный,
Требуется использование специализированного программного обеспечения — нет,
Максимальный балл — 1,
Примерное время выполнения — 8 минут.
  
Проверяемые элементы содержания: Умение создавать собственные программы (10–20 строк) для обработки символьной информации

Выполнение 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)

24 задание с сайта К. Полякова, № 1:
  

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

 
В текстовом файле k7-0.txt находится цепочка из символов латинского алфавита A, B, C.

Найдите длину самой длинной подцепочки, состоящей из символов C.

Ответ: 0

✍ Решение:

    PascalABC.net:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    
    begin
      assign(input, 'k7-0.txt');
      var s: string;
      var c: string;
      read(s);
      c := 'C';
      while c in s do
        c := c + 'C';
      print(length(c) - 1)
    end.

    Python:

    1
    2
    3
    4
    5
    6
    7
    8
    
    with open("k7-0.txt") as Fin:
      s = Fin.readline()
     
    c = 'C'
    while c in s: # ищем CC, потом CCC и т.д
      c += 'C'
    print(len(c)-1 )
    # минус 1, чтобы убрать лишнюю (последнюю добавленную С)

24 задание с сайта К. Полякова, № 21:
  

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

 
В текстовом файле k7a-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E.

Найдите длину самой длинной подцепочки, состоящей из символов A, B или C (в произвольном порядке).

Ответ: 5

✍ Решение:

    PascalABC.net:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    begin
      assign(input, 'k7a-1.txt');
      var s: string;
      read(s);
      var k := 1;
      var maxim := 0;
      for var i := 2 to length(s) do
        if s[i] > s[i - 1] then
        begin
          k += 1;
          if k > maxim then maxim := k
        end
        else k := 1;
        write(maxim)
    end.

    Python:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
    with open("k7a-1.txt") as F:
      s = F.readline() # считали строку
     
    k = 0 # начальная длина цепочки из "A,B,С"
    Max = 0 # макс длина цепочки из "A,B,С"
    for c in s:
      print (c)
      if c in 'ABC':
        k += 1
        if k > Max:
          Max = k # перезаписали Макс длину
      else:
          k = 0 # другая буква - сбрасываем счетчик
    print(Max)

24 задание с сайта К. Полякова, № 26:
  

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

 
В текстовом файле k7a-6.txt находится цепочка из символов латинского алфавита A, B, C, D, E, F.

Найдите длину самой длинной подцепочки, не содержащей гласных букв.

Ответ: 20

✍ Решение:

    PascalABC.net:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    begin
      assign(input, 'k7a-6.txt');
      var s: string;
      read(s);
      var k := 0;
      var maxim := 0;
      for var i := 1 to length(s) do
        if s[i] in 'BCDF' then
        begin
          k += 1;
          if k > maxim then maxim := k
        end
        else k := 0 ;
      write(maxim)
    end.

    Python:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    
    with open("k7a-6.txt") as F:
      s = F.readline() # считали строку
     
    k = 0 # начальная длина цепочки из "B,C,D,F"
    Max = 0 # макс длина цепочки из "B,C,D,F"
    for c in s:
      if c in 'BCDF':
        k += 1
        if k > Max:
          Max = k # перезаписали Макс длину
      else:
          k = 0 # другая буква - сбрасываем счетчик
    print(Max)

24 задание с сайта К. Полякова, № 27:
  

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

 
В текстовом файле k7b-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E.

Найдите максимальную длину цепочки вида EABEABEABE… (состоящей из фрагментов EAB, последний фрагмент может быть неполным).

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

    PascalABC.net:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    
    begin
      assign(input, 'k7b-1.txt');
      var s: string;
      read(s);
      var c := 'EAB';
      while c in s do
      begin
        if c[length(c)] = 'B' then
          c += 'E'
        else if c[length(c)] = 'A' then
          c += 'B'
        else if c[length(c)] = 'E' then
          c += 'A';
      end;
      print(length(c) - 1)
    end.

    Python:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    with open("k7b-1.txt") as Fin:
      s = Fin.readline()
     
    c = 'EAB'
    while c in s: # ищем EAB, потом EABE и т.д
        if c[-1]=="B": c +="E"
        elif c[-1]=="A": c +="B"
        elif c[-1]=="E": c +="A"
    print(len(c)-1)
    Постоянно повторяется фрагмент EAB, поэтому возможны 3 варианта окончания строки:

  • 1 тип = ..EABE — неполный последний фрагмент
  • 2 тип = ..EABEB — неполный последний фрагмент
  • 3 тип = ..EAB — полный последний фрагмент

24 задание с сайта К. Полякова, № 33:
  

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

 
В текстовом файле k7c-1.txt находится цепочка из символов латинского алфавита A, B, C, D, E.
Найдите количество цепочек длины 3, удовлетворяющих следующим условиям:

  • 1-й символ – один из символов B, C или D;
  • 2-й символ – один из символов B, D, E, который не совпадает с первым;
  • 3-й символ – один из символов B, C, E, который не совпадает со вторым.
  • Ответ: 1280

    ✍ Решение:

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      
      begin
        assign(input, 'k7c-1.txt');
        var s: string;
        read(s); // весь текст файла
        var k := 0;
        var c1 := 'BCD';
        var c2 := 'BDE';
        var c3 := 'BCE';
        for var i := 1 to length(s) - 2 do
        begin
          if (s[i] in c1) and (s[i + 1] in c2) and (s[i + 2] in c3)
          and (s[i] <> s[i + 1]) and (s[i + 1] <> s[i + 2]) then
            k += 1
        end;
        print(k)
      end.

      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      
      with open("k7c-1.txt") as Fin:
        s = Fin.readline()
       
      k = 0
      c1 = 'BCD'# строка проверки первого символа
      c2 = 'BDE'# строка проверки второго символа
      c3 = 'BCE'# строка проверки третьего символа
      for i in range(len(s)-2):
          if s[i] in c1 and s[i+1] in c2 and s[i+2] in c3 \
             and s[i]!=s[i+1] and s[i+1]!=s[i+2]: # проверка повтора символов
            k += 1
      print(k)

    Один комментарий

      Мария

      Здравствуйте, подскажите, пожалуйста, что не так. У меня ни ваша программа не работает, ни своя.
      Program N2;
      var b, a, i : integer;
      s: string;
      k:text;
      begin
      s:=’C:\24_demo.txt’;
      assign(k, s);
      reset(k);
      b := 1;
      a := 1;
      for i:=2 to Length(s) do
      if (s[i]=s[i-1]) and (s[i]=’X’) then
      begin
      a:=a+1;
      if b < a then b:=a;
      end
      else a:=1;
      writeln(b);
      end.
      Своя по нахождение максимального кол-во подряд идущих символов
      х. Что не так с программой?

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    *
    *


    Вставить формулу как
    Блок
    Строка
    Дополнительные настройки
    Цвет формулы
    Цвет текста
    #333333
    Используйте LaTeX для набора формулы
    Предпросмотр
    \({}\)
    Формула не набрана
    Вставить