Как делать 24 задание егэ по информатике на python

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

Содержание:

  • ЕГЭ по информатике 24 задание объяснение
  • Выполнение 24 задания ЕГЭ
    • Последовательности (цепочки) символов
    • Работа с числами (цифрами) в текстовом файле
    • Работа с отдельными строками файла

24-е задание: «Программная обработка символьной информации»

Уровень сложности

— повышенный,

Требуется использование специализированного программного обеспечения

— нет,

Максимальный балл

— 1,

Примерное время выполнения

— 8 минут.

  
Проверяемые элементы содержания: Умение создавать собственные программы (10–20 строк) для обработки символьной информации

Выполнение 24 задания ЕГЭ

Плейлист видеоразборов задания на YouTube:

Задание демонстрационного варианта 2022 года ФИПИ


Последовательности (цепочки) символов

24_1: Демоверсия варианта ЕГЭ по информатике 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)

📹 Видеоразбор:
📹 YouTube здесь

📹 Видеорешение на RuTube здесь


24_2:

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

 
В текстовом файле (выше по ссылке) находится цепочка из символов латинского алфавита 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:

    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, чтобы убрать лишнюю (последнюю добавленную С)

    способ 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    f=open('k7-0.txt')
    s = f.readline() # считали строку
    m = 0 # макс длина цепочки
    l = 0 # начальная длина цепочки
    for i in range(0,len(s)):
        if s[i]=='C':
            l+=1
            m = max(l,m) # перезаписали Макс длину
        else:
            l = 0 #  сбрасываем счетчик
    print(m)

24_3:

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

 
В текстовом файле (выше по ссылке) находится цепочка из символов латинского алфавита A, B, C, D, E.

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

Ответ: 16

✍ Решение:

    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 := 0;
      var maxim := 0;
      for var i := 1 to length(s) do
        if s[i] in 'ABC' 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
    
    f = open('k7a-1.txt')
    s = f.readline() # считали строку
    m = 0 # макс длина цепочки из "A,B,С"
    l = 0 # начальная длина цепочки из "A,B,С"
    for i in range(0,len(s)):
        if s[i] in'ABC':
            l+=1
            m = max(l,m) # перезаписали Макс длину
        else:
            l = 0 # другая буква - сбрасываем счетчик
    print(m)

24_4:

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

 
В текстовом файле (по ссылке выше) находится цепочка из символов латинского алфавита A, B, C, D, E, F.

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

Ответ: 20

✍ Решение:

    PascalABC.net:
    Вариант 1:

    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.

    Вариант 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    begin
      var s := readAllText('d:k7a-6.txt').Trim;
      var (k, max) := (0, 0);
      foreach var c in s do 
        if not (c in 'AE') then
        begin
          k += 1;
          if k > max then max := k;
        end else
          k := 0;
      print(max)
    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_5:

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

 
В текстовом файле (по ссылке выше) находится цепочка из символов латинского алфавита 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:

    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 — полный последний фрагмент
  • Способ 2:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    
    f=open('k7b-1.txt')
    s = f.readline()
    m = 0
    i = 0
    for char in s:
        if (char == 'E' and i%3 == 0) or 
           (char == 'A' and i%3 == 1) or 
           (char == 'B'and i%3 == 2): 
            i += 1
            m = max(i,m)
        elif char == 'E':
            i = 1
        else:
            i = 0
    print(m)

24_6:

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

 
В текстовом файле (по ссылке выше) находится цепочка из символов латинского алфавита 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)


    24_7:

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

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

    Ответ: 2 3

    ✍ Решение:

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      
      begin
        assign(input, 'D:/k8-0.txt');
        var s: string;
        read(s); // весь текст файла
        var k := 1; //длина текущей цепочки одинаковых символов 
        var max := 0; // макс длина цепочки одинаковых символов
        var c := s[1]; //символ, из которого строится самая длинная подцепочка
        for var i := 1 to length(s) - 1 do
        begin
          if s[i] = s[i + 1] then
          begin
            k += 1;
            if k > max then  
            begin
              max := k;
              c := s[i]; // запомнили новый символ
            end
          end
          else
            k := 1;
        end;
        print(c, max)
      end.

      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      
      f=open('k8-0.txt')
      s=f.readline()
      k=1
      m=0
      for i in range (1,len(s)):
          if s[i]==s[i-1] :
              k+=1
              if k>m:
                  m=k
                  symb=s[i]
          else:
              k=1
       
      print(symb,m)

    📹 Видеоразбор:
    📹 YouTube здесь

    📹 Видеорешение на RuTube здесь


    24_8:

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

     
    Текстовый файл (по ссылке выше) содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Определите длину наибольшей убывающей подпоследовательности.

    🎦 Видеоразбор

    Ответ: 3

    ✍ Решение:

      Общая идея:

    • В цикле сравнивается текущий элемент с предыдущим (цикл начинается со второго символа строки и заканчивается длиной строки).
    •  for var i := 2 to length(s) do
        begin
          if s[i] < s[i - 1] then
    • Если текущий элемент меньше предыдущего, то последовательность убывает, — увеличиваем счетчик длины последовательности.
    • Начальное значение счетчика длины последовательности должно быть = 1, так как в цикле сравниваются два элемента, и при истинности условия в последовательность уже должна быть равна двум, а не единице (в случае если счетчик обнуляется).
    • Увеличивая счетчик, сразу же необходимо сравнивать его значение с максимумом, и выполнять переприсваивание максимума, если это требуется.
    •  ...
           if k > max then  
                max := k;
    • В случае, если условие убывающей последовательности ложно, переходим в блок Иначе (else) и сбрасываем счетчик для работы со следующей последовательностью. Счетчик присваиваем единице!
    • После цикла выводим максимальное значение.
    • PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
      begin
        assign(input, 'D:/24.txt');
        var s: string;
        read(s); // весь текст файла
        var k := 1; //длина текущей бывающей последовательности символов 
        var max := 0; // макс длина
        for var i := 2 to length(s) do
        begin
          if s[i] < s[i - 1] then
          begin
            k += 1; // увеличиваем счетчик длины последовательности
            if k > max then  
              max := k;
          end
          else
            k := 1; // сбрасываем счетчик для работы со след. последовательностью
        end;
        print(max)
      end.

      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      
      F= open("24.txt") 
      s = F.readline() # считали строку (весь текст файла в одной строке)
      k = 1
      maxim = 0
      for i in range(1, len(s)):
            if s[i] < s[i - 1]:
                k += 1 # увеличиваем счетчик длины последовательности
                if k > maxim:
                    maxim = k
            else:
                k = 1 # сбрасываем счетчик для работы со след. последовательностью
      print(maxim)

    Работа с числами (цифрами) в текстовом файле

    24_8:

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

     
    Текстовый файл (по ссылке выше) состоит не более чем из 106 символов. Определите максимальное нечётное число, записанное в этом файле.

    🎦 Видеоразбор

    Ответ: 7642289

    ✍ Решение:

      PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      
      begin
        assign(input, '24-1.txt');
        var s: string;
        var b:integer;
        read(s); // весь текст файла находится в s
        var max := 0; // для максимального нечётного числа
        var num:integer;
        var strnum:string; // накапливает строковое представление числа
        strnum:='';
        for var i := 1 to length(s)-1 do
        begin
          if s[i].IsDigit() then // проверяем очередной символ - цифра ли это
            strnum += s[i] //добавляем очередную цифру в число
          else 
            if (strnum <> '') then //если встретилась не цифра, а strnum не пустая строка
              begin
              Val(strnum, num, b); // переводим в число
              if (num mod 2 <> 0) and (num > max) then // условие для поиска макс четного
                max := num;
              strnum:='';  // сбрасываем на начальное значение, чтобы накапливать новое число
              end;
        end;
        // проверка на случай, если самое большое нечётное в самом конце строки
        if (s[length(s)].isdigit()) then
          begin
          Val(strnum, num, b);
          if (num mod 2 <> 0) and (num > max) then
             max:= num;
          end;
      print(max)
      end.

      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      
      F = open("24-1.txt")
      s = F.readline() # считали строку
       
      strnum = ''   #пустая строка,  strnum накапливает строковое представление числа
      maxim = 0            # для максимального нечётного числа
      for sym in s:
            if sym.isdigit(): # проверяем очередной символ - цифра ли это
                strnum += sym # добавляем очередную цифру в число
            elif strnum: # если встретилась не цифра, а strnum не пустая строка
                num = int(strnum) # переводим в число и сохраняем в num
                if num % 2 and num > maxim: # условие для поиска макс четного
                    maxim = num
                strnum = '' # сбрасываем на начальное значение, чтобы накапливать новое число
        # проверка на случай, если самое большое нечётное в самом конце строки
      if s[-1].isdigit():
         num = int(strnum)
         if num % 2 and num > maxim:
            maxim = num
      print(maxim)

    Работа с отдельными строками файла

    24_9:

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

     
    Текстовый файл (по ссылке выше) состоит не более чем из 106 заглавных латинских букв (A..Z). Текст разбит на строки различной длины.
    Определите количество строк, в которых буква J встречается чаще, чем буква E.

    Ответ: 482

    ✍ Решение:

      Общая идея:

    • Так как текст разбит на строки, то используем бесконечный цикл для считывания каждой строки.
    • Если строка пустая (т.е. достигнут конец файла), используем досрочный выход из цикла (оператор break).
    • Для подсчета количества встреченных символов используем строковый метод count(), который возвращает количество найденных вхождений символа (или сочетания символов), заданного аргументом.
    • PascalABC.net:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      
      begin
        assign(input, '24-s1.txt');
        var s: string;
        var k := 0;
        while true do // бесконечный цикл
        begin
          readln(s); // считываем очередную строку
          if s = '' then break; // если строка пустая (т.е. достигнут конец файла), выходим
          if s.Count(c -> c = 'J') > s.Count(c -> c = 'E') then
            k += 1;
        end;
        print(k)
      end.

      Python:

      1
      2
      3
      4
      5
      6
      7
      8
      
      f= open("24-s1.txt")
      k = 0 # счетчик строк 
      while True: # бесконечный цикл
          s = f.readline() # считываем очередную строку
          if not s: break # если строка пустая (т.е. достигнут конец файла), выходим
          if s.count("J") > s.count("E"):
              k +=1
      print(k)

    Сегодня посмотрим одно из самых интересных заданий из ЕГЭ по информатике 2023. Будем решать 24 задание. В этом задании нужно работать с файлами.

    Все решения задач из задания 24 ЕГЭ по информатике 2023 будут приведены на языке программирования Python (Питон).

    Поехали!

    Задача (Самая простая)

    Текстовый файл состоит не более чем из 106 символов A, B и C. Определите максимальное количество идущих подряд символов B. Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.

    Решение:

    Решим данную задачу на языке Python.

    f=open('24_1.txt')
    s=f.read()
    k=0
    kmax=0
    
    for i in range(0, len(s)):
        if s[i]=='B':
            k=k+1
            kmax=max(k, kmax)
        else:
            k=0
    
    print(kmax)
        
    

    С помощью команды open() подвязываемся к файлу. Чтобы не прописывать полный путь, файл должен лежать в той же папке, что и программа.

    С помощью команды .read() зачитываем в переменную s всё содержимое файла.

    Переменная k — это текущий счётчик символов «B». Задача переменной kmax сохранить максимальное значение k.

    С помощью цикла for перебираем все символы из строки s. Переменная i пробегается по номерам всех симолов. Счёт символов начинается в строке с нуля. В начале берём нулевой символ, потом первый и т.д. Конструкция for i in range(0, len(s)) позволяет пройтись по всем символам строки до конца.

    Если нам встретился нужный символ «B», то мы счётчик прибавляем на 1. Это значит, что мы подсчитываем текущую цепочку. Если будет стоять 3 символа «B» подряд, значит, счёт k покажет значение 3. Как только встретится дургой символ, то это означает, что цепочка прервалась и счётчик переводится в первоначальное положение 0.

    При любом увеличении счётчика происходит анализ этого счётчика на максимальность. Функция max выбирает максимальное значение из старого значения kmax и нового показания счётчика k. Если счётчику k удалось победить kmax, то его значение будет считаться максимальным на данный момент времени.

    В ответ идёт значение kmax. Это и есть длина максимальной цепочки. В этой задачке ответ получается 11.

    Ответ: 11

    Закрепим это простое задание из ЕГЭ по информатике 2023.

    Задача (Простая, закрепление)

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

    Решение:

    Решение похоже на предыдущее.

    f=open('24_2.txt')
    s=f.read()
    k=0
    kmax=0
    
    for i in range(0, len(s)):
        if s[i]!='Z':
            k=k+1
            kmax=max(k, kmax)
        else:
            k=0
    
    print(kmax)
        
    

    Если нет символов «Z», то подсчитываем, иначе сбрасываем.

    Задача (Обращаемся к соседу)

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

    Решение:

    f=open('24_2.txt')
    s=f.read()
    k=1
    kmax=0
    
    for i in range(0, len(s)-1):
        if s[i]<=s[i+1]:
            k=k+1
            kmax=max(k, kmax)
        else:
            k=1
    
    print(kmax)
        
    

    В ответе получается 15. Символы можно сравнивать между собой с помощью знаков «>» или меньше «<» ( а так же «>=» или «<=»), причём это сравнение происходит в алфавитном порядке. Например, символ «B» будет больше, чем «A» и т.п. Теперь нам нужно уже обратится к соседу, уже важна связь между соседними символами. Раз мы обращаемся к следующему символу, то должны пробегать до len(s)-1, иначе куда мы будем обращаться, когда дойдём до последнего символа?

    В самом начале цепочки мы анализируем два символа, а к счётчику прибавляем всего лишь 1. Чтобы это учесть, в начале счётчику (переменной k) присваиваем 1. Затем, по мере продвижения по цепочке, мы добавляем в наш анализ 1 новый символ, и к счётчику добавляется одна 1. Дальше уже таких проблем нет.

    Раз мы присвоили в переменную k единицу, то и сбрасывать в ветке else мы тоже должны на 1. Эти значения обычно взаимосвязаны.

    Если мы обращаемся к соседнему символу, как правило, счётчик и сброс устанавливаются в 1. Это не стопроцентная истина, но иметь ввиду это нужно.

    Ответ: 15

    Задача (Обращаемся к соседу, закрепление)

    Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, …,9). Определите максимальное количество идущих подряд цифр, среди которых каждые две соседние различны. Для выполнения этого задания следует написать программу.

    Решение:

    f=open('24_3.txt')
    s=f.read()
    k=1
    kmax=0
    
    for i in range(0, len(s)-1):
        if s[i]!=s[i+1]:
            k=k+1
            kmax=max(k, kmax)
        else:
            k=1
    
    print(kmax)
        
    

    Если соседи различны, мы подсчитываем, иначе сбрасываем.

    Ответ: 120

    Задача (Обращаемся к соседу, ещё сложнее)

    Текстовый файл состоит не более чем из 106 символов арабских цифр (0, 1, …,9). Определите максимальное количество идущих подряд нечётных цифр, расположенных в неубывающем порядке. Для выполнения этого задания следует написать программу.

    Решение:

    f=open('24_3.txt')
    s=f.read()
    k=1
    kmax=0
    
    for i in range(0, len(s)-1):
        if s[i]<=s[i+1] and s[i] in '13579' and s[i+1] in '13579' :
            k=k+1
            kmax=max(k, kmax)
        else:
            k=1
    
    print(kmax) 
    

    Здесь опять можно применить знаки сравнения прям к символам. Удобно проверить принадлежность к нечётным цифрам конструкцией s[i] in ‘13579’. Нечётной цифрой должна быть как текущая, так и следующая.

    Ответ: 8

    Решим ещё одну тренировочную задачу из ЕГЭ по информатике 2023.

    Задача (Обращаемся к соседу, ещё сложнее, закрепление)

    Текстовый файл состоит не более чем из 106 символов 1, 2, 3, A, B, С. Определите максимальное количество идущих подряд символов, среди которых никакие две буквы и никакие две цифры не стоят рядом. Для выполнения этого задания следует написать программу.

    Решение:

    f=open('24_4.txt')
    s=f.read()
    k=1
    kmax=0
    
    for i in range(0, len(s)-1):
        if (s[i] in '123' and s[i+1] in 'ABC') or (s[i] in 'ABC' and s[i+1] in '123') :
            k=k+1
            kmax=max(k, kmax)
        else:
            k=1
    
    print(kmax) 
    

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

    Ответ: 20

    Задача (Исключаем строку из 2-х символов, демо 2022)

    Текстовый файл состоит из символов P, Q, R и S.

    Определите максимальное количество идущих подряд символов
    в прилагаемом файле, среди которых нет идущих подряд символов P.
    Для выполнения этого задания следует написать программу.

    Решение:

    Напишем решение на языке Python.

    f=open('24_5.txt')
    s=f.read()
    k=1
    kmax=0
    
    for i in range(0, len(s)-1):
        if s[i]=='P' and s[i+1]=='P':
            k=1
        else:
            k=k+1
            kmax = max(k, kmax)
    
    print(kmax)
    

    Подсчитываем символы, пока не встретилась комбинация двух P подряд. Как только встретилась данная комбинация, сбрасываем счётчик на 1. Здесь мы сбрасываем счётчик на значение 1, чтобы учесть один символ, которые находится в самой комбинации PP. И в начале мы тоже устанавливаем счётчик в значение 1 по этой же причине.

    ЕГЭ по информатике демоверсия 2022 - задание 24 решение

    Мы проходим в цикле for до длины строки минус один. Значение 1 в счётчике при сбросе и в начале программы так же компенсирует и тот момент, что мы не подсчитываем последний символ!

    При изменении счётчика, сохраняем максимальное значение в переменной mx

    Если бы у нас была вместо PP другая комбинация, состоящая к примеру из 5 символов, то мы бы тогда в начале и при сбросе писали в счётчик значение 5-1=4.

    Здесь тоже работает негласное правило, обращаемся к соседу, значит, счётчик устанавливаем в 1.

    В этой задаче получается ответ 188.

    Ответ: 188

    Задача (Исключаем подстроку из 3-х символов)

    Текстовый файл состоит из символов арабских цифр(0, 1, …,9).

    Определите максимальное количество идущих подряд символов
    в прилагаемом файле, среди которых нет трёх символов 0, стоящих рядом.
    Для выполнения этого задания следует написать программу.

    Решение:

    Напишем решение на языке Python.

    f=open('24_6.txt')
    s=f.read()
    k=2
    kmax=0
    
    for i in range(0, len(s)-2):
        if s[i]=='0' and s[i+1]=='0' and s[i+2]=='0':
            k=2
        else:
            k=k+1
            kmax = max(k, kmax)
    
    print(kmax)
    

    Чтобы понять это решение, нужно посмотреть предыдущую задачу. Мы здесь обращаемся к двум соседям, значит, счётчик устанавливаем в 2. Так же проходим в цикле до len(s)-2. Нежелательная строка может состоять не только из одинаковых символов. Может быть строка «XYYZ», к примеру.

    Ответ: 7684

    Задача (Не более одного символа Z)

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

    Решение:

    В нашей цепочке один раз можно встретиь символ Z, а два раза уже нельзя. Здесь мы применим функцию .split(). Как работает эта фнкция? Напишем тестовую программу.

    s='sadqttqtreq'
    a=s.split('q')
    print(a)
    

    Результат данной программы будет следующим:

    [‘sad’, ‘tt’, ‘tre’, »]

    Команда split «разрезает» строку по символу «q». В результате мы получаем массив с кусочками этой строки.

    Решение нашей задачи.

    f=open('24_7.txt')
    s=f.read()
    a=s.split('Z')
    k=0
    kmax=0
    
    for i in range(0, len(a)-1):
      k = len(a[i]) + 1 + len(a[i+1])
      kmax = max(k, kmax)
    
    print(kmax)
    

    Разрезаем нашу строку по символу «Z». Пробегаемся уже по массиву a. Цепочка-кандидат это текущий кусочек (a[i]), символ Z (1) и следующий кусочек (a[i+1]).

    Каждого кандитата проверяем сразу на максимальность.

    Ответ: 43

    Задача (Не более двух символов Z)

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

    Решение:

    Решение аналогично предыдущему.

    f=open('24_7.txt')
    s=f.read()
    a=s.split('Z')
    k=0
    kmax=0
    
    for i in range(0, len(a)-2):
      k = len(a[i]) + 1 + len(a[i+1]) + 1 + len(a[i+2])
      kmax = max(k, kmax)
    
    print(kmax)
    

    Ответ: 50

    Задача (Звенья)

    Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальную длину цепочки символов, состоящей из повторяющихся фрагментов XYZ. Цепочка должна начинаться с символа X и заканчиваться символом Z. Например, для строки ZZZXYZXYZXZZZ длина цепочки равна 6: XYZ+XYZ

    Решение:

    Если мы подсчитаем количество идущих подряд звеньев XYZ, то, можно сказать, дело сделано.

    f=open('24_8.txt')
    s=f.read()
    s=s.replace('XYZ', '1')
    k=0
    kmax=0
    
    for i in range(0, len(s)):
        if s[i]=='1':
            k=k+1
            kmax=max(k, kmax)
        else:
            k=0
    
    print(kmax*3)
    

    Мы с помощью команды replace заменили звенья на «1» (на символ, которого точно нет в файле). Теперь задача свелась к самой простой, которую мы рассматривали в начале статьи. Нужно просто подсчитать количество идущих поряд единиц.

    В ответе нас просили указать количество символов, а не звеньев, поэтому переменную kmax умножаем на 3.

    Ответ: 66

    Задача (Звенья, закрепление)

    Текстовый файл состоит не более, чем из 106 символов из набора A, B, С. Найдите максимальное количество идущих пар символов AC или AB. Искомая подстрока может включать только пары AB, только пары AC или содержать одновременно как пары AC, так и пары AB.

    Решение:

    f=open('24_9.txt')
    s=f.read()
    s=s.replace('AB', '1')
    s=s.replace('AC', '1')
    k=0
    kmax=0
    
    for i in range(0, len(s)):
        if s[i]=='1':
            k=k+1
            kmax=max(k, kmax)
        else:
            k=0
    
    print(kmax)
    

    Здесь нам подходит звено, как и AB, так и AC. В ответе нужно указать количество пар, поэтому не на что умножать переменную kmax не нужно.

    Ответ: 19

    Задача (Звенья, основная волна 20.06.22)

    Текстовый файл состоит из символов A, B, C, D и O. Определите максимальное количество идущих подряд пар символов вида согласная + гласная в прилагаемом файле. Для выполенения этого задания следует написать программу.

    Решение:

    f=open('24_10.txt')
    s=f.read()
    s=s.replace('BA', '1')
    s=s.replace('CA', '1')
    s=s.replace('DA', '1')
    s=s.replace('BO', '1')
    s=s.replace('CO', '1')
    s=s.replace('DO', '1')
    k=0
    kmax=0
    
    for i in range(0, len(s)):
        if s[i]=='1':
            k=k+1
            kmax=max(k, kmax)
        else:
            k=0
    
    print(kmax)
    

    Ответ: 174

    Задача (Звенья, последнее звено неполное)

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

    Решение:

    Т.к. последнее звено может быть неполным, здесь удобно применить другой алгоритм.

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

    На рисунке представлен данный алгоритм. В нижней строке указано показание счётчика в момент анализа символа.

    ЕГЭ по информатике 2021 - задание 24 (Цепочка символов)

    На данном рисунке максимальная длина цепочки нужных символов равна 9.

    Видим, что для символа X, когда он находится на своём месте, остаток от деления значения счётчика на 3 равен 0.

    Для символа Y, когда данный символ находится на своём месте, остаток от деления значения счётчика на 3 равен 1.

    Для символа Z, когда данный символ находится на своём месте, остаток от деления значения счётчика на 3 равен 2.

    Мы смотрим остаток от деления на 3, потому что у нас длина звена равна трём (XYZ).

    Таким образом, мы и наш анализ очередного символа привяжем к показанию счётчика:

    f=open('24_11.txt')
    s=f.read()
    k=0
    kmax=0
    
    for i in range(0, len(s)):
        if (s[i]=='X' and k%3==0) or  (s[i]=='Y' and k%3==1) or (s[i]=='Z' and k%3==2):
            k=k+1
            kmax = max(k, kmax)
        else:
            if s[i]=='X': k=1
            else: k=0
    
    
    print(kmax)
    

    Важный момент: Если нужную цепочку прервал символ X, то нужно счётчик сразу выставить в 1, иначе может произойти такая ошибка:

    ЕГЭ по информатике 2021 - задание 24 (Цепочка символов 2)

    Т.е. первые три нужных символа в цепочке алгоритм не засчитал.

    Поэтому мы не просто сбрасываем счётчик в ноль, а прописываем условие:

    if s[i]=='X': k=1
    else: k=0
    

    Ответ: 13

    Задача (Полезный приём)

    Текстовый файл 24-157.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Определите символ, который чаще всего встречается в файле между двумя одинаковыми символами. Например, в тексте CCBAABABCBC есть комбинации ABA, BAB, BCB и CBC. Чаще всего – 2 раза – между двумя одинаковыми символами стоит B, в ответе для этого случая надо написать B2 (без пробелов и других разделителей). Если таких символов несколько, выведите тот, который стоит раньше в алфавите.

    Решение:

    f=open('24-157.txt')
    s=f.read()
    a=[0]*150
    
    for i in range(0, len(s)-2):
        if s[i]==s[i+2]:
            a[ord(s[i+1])] = a[ord(s[i+1])] + 1
    
    ch=''
    mx=0
    for i in range(0, 150):
        if a[i]>mx:
            mx=a[i]
            ch=chr(i)
    
    
    print(ch, mx)
    

    Здесь мы заводим массив a. Индексы этого массива — это коды ANSI всех букв латинского алфавита (ABC…Z). Ведь, как мы знаем, каждая буква кодируется определённым числом (кодом ANSI). Вот часть этой таблицы.

    ЕГЭ по информатике 2022 - задание 8 (Фрагмент таблицы ANSI)

    Например, буква A кодируется кодом 65. Коды увеличиваются в алфавитном порядке на 1. Буква Z кодируется числом 90. Таким образом, 150 ячеек точно хватит для нашего алфавита. Здесь берём с запасом, потому что на экзамене можно точно не вспомнить коды, но достаточно запомнить, что 150 ячеек вполне хватит для заглавных и строчных букв латинского алфавита.

    Значит, ячейка 65 отвечает за букву A, ячейка 66 отвечает за букву B и т.д. Если мы встретили букву между двумя одинаковыми буквами, то её ячейка увеличивается на 1.

    Функция ord() превращает символ в код ANSI.

    После того, как мы прошли всю строку и собрали информацию о наших буквах, нужно пройти массив a и найти наибольшее число в нём.

    Здесь мы уже не пользуемся функцией max, а используем условие, потому что нужно кроме максимального числа тянуть ещё один параметр — сам код (переменную i). Функция chr() превращает код ANSI обратно в символ.

    Ответ: W1608

    Задача (Строки различной длины)

    Текстовый файл 24-164.txt состоит не более чем из 106 символов и содержит только заглавные буквы латинского алфавита (ABC…Z). Текст разбит на строки различной длины. Необходимо найти строку, содержащую самую длинную цепочку стоящих подряд одинаковых букв. Если таких строк несколько, надо взять ту, которая в файле встретилась раньше. Определите, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая стоит раньше в алфавите. Запишите в ответе эту букву, а затем – сколько раз она встречается во всем файле.

    Пример. Исходный файл:

    ZZQABA
    ZALAAC
    QRAQUT

    В этом примере в первой и второй строках наибольшая длина цепочек одинаковых буквы равна 2 (ZZ в первой строке, AA во второй), в третьей – 1. Берём первую строку, т.к. она находится в файле раньше. В этой строке чаще других встречаются буквы Z и A (по 2 раза), выбираем букву A, т. к. она стоит раньше в алфавите. В ответе для этого примера надо записать A6, так как во всех строках файла буква A встречается 6 раз.

    Решение:

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

    f=open('24-164.txt')
    kmax=0
    count=0
    n=-1
    for s in f.readlines():
        count=count+1
        k=1
        for i in range(0, len(s)-1):
           if s[i]==s[i+1]:
               k=k+1
               if k>kmax:
                   kmax=k
                   n=count
           else:
               k=1
    
    print(n)
    

    Получается строка под номером 162. Переменная count считает строки по порядку. В переменную n сохраняем номер нужной строки. Опять пользуемся условием, а не функцией max, т.к. здесь нужно и обновлять kmax, и сохранять значение n. У нас условие строгое k>kmax, значит, сохранится первая строка с наибольшей искомой цепочкой.

    f=open('24-164.txt')
    
    count=0
    a=[0]*150
    
    for s in f.readlines():
        count=count+1
        k=1
        if count==162:
            for i in range(0, len(s)):
                a[ord(s[i])] = a[ord(s[i])] + 1
           
    ch=''
    mx=0
    for i in range(0, 150):
        if a[i] > mx:
            mx=a[i]
            ch=chr(i)
    
    print(ch)
    

    Теперь нас интересует только строка под номером 162. Далее используем приём из прошлой задачи. Заводим массив a из 150 ячеек и используем таблицу кодов ANSI. Так определяем какая буква встретилась чаще всего в строке под номером 162. Получается буква K.

    f=open('24-164.txt')
    s=f.read()
    print(s.count('K'))
    

    Осталось найти количестов букв K во всём файле. Для этого используем функцию .count()

    Ответ: K36582

    В задаче 15 «Задача (Полезный приём)», созданы переменные k и kmax — напрасно, они не используются.

    Убрал, по привычке написал.

    Слайд 1

    Задача 24 ЕГЭ Обработка символьных строк Что проверяется: Умение создавать собственные программы (10–20 строк) для обработки символьной информации. Дрынова Светлана Викторовна

    Слайд 2

    Что нужно знать : сначала нужно прочитать строку из файла; эта задача в разных языках программирования решается несколько по-разному в языке Python удобнее всего использовать такую конструкцию: with open(«k7.txt», «r») as F: s = F.readline () конструкция with-as – это контекстный менеджер , в данном случае он открывает указанный файл в режиме чтения (второй аргумент « r » при вызове функции open ), записывает ссылку на него в файловую переменную F , выполняет тело блока (читает первую строку файла в переменную s ) и закрывает (освобождает) файл. 1. Самая длинная цепочка символов «С» пусть требуется найти самую длинную цепочку символов С (или каких-то других, в соответствии с заданием) в символьной строке s ; можно использовать такой алгоритм: for c in s : обработать символ c

    Слайд 3

    будем использовать переменные cLen – длина текущей цепочки букв C maxLen – максимальная длина цепочки букв C на данный момент рассмотрим очередной символ строки; если это буква C, увеличиваем cLen на 1 и, если нужно запоминаем новую максимальную длину; если это не буква C, просто записываем с cLen ноль: maxLen = 0 cLen = 0 for c in s: if c == ‘C’: cLen += 1 # ещё одна буква C if cLen > maxLen : # возможно, новая максимальная длина maxLen = cLen else: cLen = 0 # цепочка букв C кончилась

    Слайд 4

    2. Самая длинная цепочка любых символов теперь поставим задачу найти самую длинную цепочку символов в символьной строке s ; сложность состоит в том, что мы (в отличие от предыдущей задачи) не знаем, из каких именно символов состоит самая длинная цепочка если символов в алфавите немного (скажем, A, B и С), то можно с помощью описанного выше алгоритма найти самые длинные цепочки из букв A, B и C, а затем выбрать из них «длиннейшую»; такая идея может сработать при аккуратной реализации, но плохо обобщается на случай, когда возможных символов много (например, используются все заглавные латинские буквы и цифры) будем использовать переменные curLen – длина текущей цепочки одинаковых символов maxLen – максимальная длина цепочки одинаковых символов на данный момент c – символ, из которого строится самая длинная подцепочка в начальный момент рассмотрим один первый символ (цепочка длины 1 есть всегда!): maxLen = 1 curLen = 1 c = s[0]

    Слайд 5

    будем перебирать в цикле все символы, начиная с s[1] (второго по счёту) до конца строки, постоянно «оглядываясь назад», на предыдущий символ for i in range(1,len(s)): обработать пару символов s [ i -1] и s [ i ] если очередной символ s[i] такой же, как и предыдущий, цепочка одинаковых символов продолжается, и нужно увеличить значение переменной cu r Len ; если значение cu r Len стало больше maxLen , обновляем maxLen и запоминаем новый базовый символ в переменной c : если очередной символ не совпал с предыдущим, началась новая цепочка, и её длина пока равна 1 (это значение записывается в переменную cu r Len )

    Слайд 6

    maxLen , curLen , c = 1, 1, s[0] for i in range(1, len (s)): if s[ i ] == s[i-1]: # цепочка продолжается curLen += 1 # увеличиваем длину if curLen > maxLen : # если цепочка побила рекорд maxLen = curLen # запоминаем её длину c = s[ i ] # и образующий символ else : curLen = 1 # началась новая цепочка

    Слайд 7

    2510) В текстовом файле k7a-2.txt находится цепочка из символов латинского алфавита A, B, C, D, E. Найдите длину самой длинной подцепочки, состоящей из символов A, B или C (в произвольном порядке). сначала нужно открыть файл и прочитать все символы в символьную строку: потом можно в цикле перебрать все символы строки s: определить наибольшую подстроку, состоящей из символов A, B или C, в символьной строке s . Проверку того, что символ – один из набора A, B, C удобно записывать с помощью условия if char in ‘ABC’: s=open(‘k7a-2.txt’).read() count = 0 maxCount = 0 for char in s: if char in ‘ABC’: count += 1 if count> maxCount : maxCount = count else: count=0 print( maxCount )

    Слайд 8

    Решаем номера 2516, 2518, 2520 Использованы задачи с сайта Полякова К.Ю.



    Скачать материал

    решение задач компьютерного егэ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON3Задачи № 24...



    Скачать материал

    • Сейчас обучается 84 человека из 29 регионов

    • Сейчас обучается 117 человек из 41 региона

    • Сейчас обучается 33 человека из 18 регионов

    Описание презентации по отдельным слайдам:

    • решение задач компьютерного егэ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON3Задачи № 24...

      1 слайд

      решение задач компьютерного егэ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PYTHON3
      Задачи № 24, № 25
      Сабитова Д.А.
      Методист отдела дистанционного образования

    • Полезные ссылки:https://pythontutor.ru

https://stepik.org/

https://kpolyak...

      2 слайд

      Полезные ссылки:

      https://pythontutor.ru

      https://stepik.org/

      https://kpolyakov.spb.ru/school/ege.htm

    • Список = [элемент1, элемент2, элемент3]

Пример:
a1 = ['a', 'b', 'c']
b1 = [...

      3 слайд

      Список

      <Имя списка> = [элемент1, элемент2, элемент3]

      Пример:
      a1 = [‘a’, ‘b’, ‘c’]
      b1 = [1, 2, 3, 4, 5]
      c = a + b # c=[‘a’, ‘b’, ‘c’,1, 2, 3, 4, 5]
      d = [] #пустой список

    • Доступ к элементам спискаДлина списка: Len(список) – возвращает количество э...

      4 слайд

      Доступ к элементам списка

      Длина списка: Len(список) – возвращает количество элементов списка
      Пример:
      a1 = [‘a’, ‘b’, ‘c’]
      b1 = [1, 2, 3, 4, 5]
      c1 = len(a1) # c1 = 3
      print (a1[0]) # ‘a’
      print (b1[4]) # 5
      print (a1[-1]) # ‘c’
      print (a1[-2]) # ‘b’

    • Доступ к элементам спискаПример:
a1 = ['a', 'b', 'c']
b1 = [1, 2, 3, 4, 5]...

      5 слайд

      Доступ к элементам списка

      Пример:
      a1 = [‘a’, ‘b’, ‘c’]
      b1 = [1, 2, 3, 4, 5]

      print(b1[:3]) # начиная с 0 по 2: [1, 2, 3]
      print (a1[::-1]) #все элементы в противоположном порядке: [‘c’, ‘b’, ‘a’]

    • Доступ к элементам спискаПример:
a1 = ['a', 'b', 'c']
b1 = [1, 2, 3, 4, 5]
f...

      6 слайд

      Доступ к элементам списка

      Пример:
      a1 = [‘a’, ‘b’, ‘c’]
      b1 = [1, 2, 3, 4, 5]
      for i in a1:
      print(i)# все элементы списка в столбец
      a
      b
      c

    • Доступ к элементам спискаПример:
a1 = [‘a’, ‘b’, ‘c’]
b1 = [1, 2, 3, 4, 5]...

      7 слайд

      Доступ к элементам списка

      Пример:
      a1 = [‘a’, ‘b’, ‘c’]
      b1 = [1, 2, 3, 4, 5]

      for i in b1:
      print(i, end = ‘ ‘)
      # все элементы списка в строку через пробел:
      1 2 3 4 5

    • Доступ к элементам спискаПример:
b1 = [1, 2, 3, 4, 5]

for i in range(len(b1...

      8 слайд

      Доступ к элементам списка

      Пример:
      b1 = [1, 2, 3, 4, 5]

      for i in range(len(b1)):
      print(b1[i] * 2, end = ‘ ‘)

      2 4 6 8 10

    • Заполнение спискаПример:
N = int(input())
b1 = []
for i in range(n):
    b1....

      9 слайд

      Заполнение списка

      Пример:
      N = int(input())
      b1 = []
      for i in range(n):
      b1.append(int(input()))

      #заполнение списка с клавиатуры

    • Операции со спискамиСложение списков
Пример:
a1 = ['a', 'b', 'c']
b1 = [1, 2...

      10 слайд

      Операции со списками

      Сложение списков
      Пример:
      a1 = [‘a’, ‘b’, ‘c’]
      b1 = [1, 2, 3, 4, 5]
      a1 += [13, 14]
      print (a1)

      [‘a’, ‘b’, ‘c’, 13, 14]

    • Операции со спискамиУмножение списка на число
Пример:
a1 = ['a', 'b', 'c']
a...

      11 слайд

      Операции со списками

      Умножение списка на число
      Пример:
      a1 = [‘a’, ‘b’, ‘c’]
      a1 *= 3
      print (a1)

      [‘a’,’b’,’c’,’a’,’b’,’c’,’a’,’b’,’c’]

    • Задача № 24Обработка символьных строк

108) (В.Н. Шубинкин, г. Казань) Текст...

      12 слайд

      Задача № 24

      Обработка символьных строк

      108) (В.Н. Шубинкин, г. Казань) Текстовый файл 24.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Определите длину наибольшей убывающей подпоследовательности.

    • Задача № 24Обработка символьных строк

113) (В.Н. Шубинкин, г. Казань) Текст...

      13 слайд

      Задача № 24

      Обработка символьных строк

      113) (В.Н. Шубинкин, г. Казань) Текстовый файл 24.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Запишите в ответе наибольшую убывающую подпоследовательность.

    • Задача № 24Обработка символьных строк

118) (В.Н. Шубинкин, г. Казань) Текст...

      14 слайд

      Задача № 24

      Обработка символьных строк

      118) (В.Н. Шубинкин, г. Казань) Текстовый файл 24.txt содержит последовательность из строчных и заглавных букв английского алфавита и цифр, всего не более 106 символов. Запишите в ответе номер символа, с которого начинается наибольшая убывающая подпоследовательность. Нумерация символов начинается с 1.

    • Задача № 25Обработка целочисленных данных. Поиск делителей
№ 3780) Найдите в...

      15 слайд

      Задача № 25

      Обработка целочисленных данных. Поиск делителей

      № 3780) Найдите все натуральные числа, принадлежащие отрезку [63 000 000; 75 000 000], у которых ровно пять различных нечётных делителей (количество чётных делителей может быть любым). В ответе перечислите найденные числа, справа от каждого числа запишите его наибольший нечётный делитель.

    • Задача № 25Обработка целочисленных данных. Поиск делителей
№ 3752) Найдите в...

      16 слайд

      Задача № 25

      Обработка целочисленных данных. Поиск делителей

      № 3752) Найдите все натуральные числа, принадлежащие отрезку [103 000 000; 104 000 000], у которых ровно три различных чётных делителя. В ответе перечислите найденные числа в порядке возрастания, справа от каждого числа запишите его второй по величине нетривиальный делитель (не равный 1 и самому числу).

    • Задача № 25Обработка целочисленных данных. Поиск делителей
№ 3161) Рассмотри...

      17 слайд

      Задача № 25

      Обработка целочисленных данных. Поиск делителей

      № 3161) Рассмотрим произвольное натуральное число, представим его всеми возможными способами в виде произведения двух натуральных чисел и найдём для каждого такого произведения разность сомножителей. Например, для числа 18 получим: 18 = 18*1 = 9*2 = 6*3, множество разностей содержит числа 17, 7 и 3. Подходящей будем называть пару сомножителей, разность между которыми не превышает 120. Найдите все натуральные числа, принадлежащие отрезку [2000000; 3000000], у которых есть не менее трёх подходящих пар сомножителей. В ответе перечислите найденные числа в порядке возрастания, справа от каждого запишите наибольший из всех сомножителей, образующих подходящие пары.

    • Задача № 25Обработка целочисленных данных. Поиск делителей
№ 2901) Напишите...

      18 слайд

      Задача № 25

      Обработка целочисленных данных. Поиск делителей

      № 2901) Напишите программу, которая ищет среди целых чисел, принадлежащих числовому отрезку [4671032; 4671106], простые числа. Выведите все найденные простые числа в порядке возрастания, слева от каждого числа выведите его номер по порядку.

    Найдите материал к любому уроку, указав свой предмет (категорию), класс, учебник и тему:

    6 153 805 материалов в базе

    • Выберите категорию:

    • Выберите учебник и тему

    • Выберите класс:

    • Тип материала:

      • Все материалы

      • Статьи

      • Научные работы

      • Видеоуроки

      • Презентации

      • Конспекты

      • Тесты

      • Рабочие программы

      • Другие методич. материалы

    Найти материалы

    Материал подходит для УМК

    • «Информатика. Углубленный уровень (в2 частях)»,  Поляков К.Ю., Еремин Е.А.

    Другие материалы

    «Информатика. Углубленный уровень (в 2-ух частях) », Поляков К.Ю., Еремин Е.А.

    • 28.05.2021
    • 152
    • 0

    «Информатика. Углубленный уровень (в2 частях)»,  Поляков К.Ю., Еремин Е.А.

    «Информатика. Учебное пособие для общеобразовательных учреждений с русским языком обучения», Г. А. Заборовский, А. Е. Пупцев

    «Информатика. Углубленный уровень (в2 частях)»,  Поляков К.Ю., Еремин Е.А.

    «Информатика. Углубленный уровень (в2 частях)»,  Поляков К.Ю., Еремин Е.А.

    • 28.05.2021
    • 179
    • 4

    «Информатика. Углубленный уровень (в2 частях)»,  Поляков К.Ю., Еремин Е.А.

    «Информатика (базовый и углублённый уровни) (в 2 частях)», Поляков К.Ю., Еремин Е.А.

    Вам будут интересны эти курсы:

    • Курс повышения квалификации «Внедрение системы компьютерной математики в процесс обучения математике в старших классах в рамках реализации ФГОС»

    • Курс повышения квалификации «Организация работы по формированию медиаграмотности и повышению уровня информационных компетенций всех участников образовательного процесса»

    • Курс повышения квалификации «Облачные технологии в образовании»

    • Курс повышения квалификации «Сетевые и дистанционные (электронные) формы обучения в условиях реализации ФГОС по ТОП-50»

    • Курс повышения квалификации «Развитие информационно-коммуникационных компетенций учителя в процессе внедрения ФГОС: работа в Московской электронной школе»

    • Курс профессиональной переподготовки «Информационные технологии в профессиональной деятельности: теория и методика преподавания в образовательной организации»

    • Курс повышения квалификации «Использование компьютерных технологий в процессе обучения в условиях реализации ФГОС»

    • Курс профессиональной переподготовки «Управление в сфере информационных технологий в образовательной организации»

    • Курс повышения квалификации «Современные тенденции цифровизации образования»

    • Курс повышения квалификации «Современные языки программирования интегрированной оболочки Microsoft Visual Studio C# NET., C++. NET, VB.NET. с использованием структурного и объектно-ориентированного методов разработки корпоративных систем»

    • Курс повышения квалификации «Применение интерактивных образовательных платформ на примере платформы Moodle»

    f = open (’24 (1).txt’)

    s = f.readlines()
    minn = 10*30
    noms = ''
    for i in s:
        if i.count('N') < minn:
            minn = i.count('N')
            noms = i
    sl = dict()
    for i in range(len(noms)):
        if noms[i] in sl:
            sl[noms[i]] = sl[noms[i]] + 1
        else:
            sl[noms[i]] = 1
    for j in sorted(sl, key=sl.get, reverse=True):
        print(j, sl[j])
    Текстовый файл содержит строки различной длины. Общий объём файла не превышает 1 Мбайт.
    Строки содержат только заглавные буквы латинского алфавита (ABC…Z). Необходимо найти строку, содержащую наименьшее количество букв N (если таких строк несколько, надо взять ту,
    которая находится в файле раньше), и определить, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая позже стоит в алфавите. f = open('24.txt') s = f.readlines() mn = 10**10 ms = '' for i in s: if i.count('N') < mn: mn = i.count('N') ms = i d = dict() for i in range(len(ms)): if ms[i] in d: d[ms[i]] += 1 else: d[ms[i]] = 1 for w in sorted(d, key=d.get, reverse=True): print(w, d[w]) #print(max(d, key=d.get))

    #24 f = open('241.txt').readline() k = m = 0 for i in range(len(f)): if (f[i] == 'L' and k%3 == 0) or (f[i] == 'D' and k%3 == 1) or (f[i] == 'R' and k%3 == 2): k += 1 m = max(m, k) elif f[i] == 'L': k = 1 else: k = 0 print(m)

    В строках, содержащих менее 25 букв A, нужно определить и вывести максимальное расстояние между одинаковыми буквами в одной строке.
    f = open(’24.txt’)
    s = f.readlines()
    maxi = 0
    for a1 in s:
        if a1.count(‘A’) < 25:
           m = 0
        for i in range(len(a)):
            if a1.count(a[i])>1:
                r1=a1.find(a[i])
                r2=a1.rfind(a[i])
                r=r2-r1
                if r>m:
                    m=r
        if m > maxi:
            maxi = m
    print(maxi)

    Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны.
    f = open(«24_demo.txt»)
    p = f.read()
    ma = 1
    kur = 1
    for i in range(1, len(p)):
        if p[i] != p[i-1]:
            kur = kur + 1
        else:
            if kur > ma:
                 ma = kur
                 kur = 1
    print(ma)

    Определите максимальное количество идущих подряд символов, среди которых не более одной буквы A.
    f = open(’24.txt’)
    s = f.read().split(‘A’)
    m = 0
    for i in range(len(s) — 1):
        if len(s[i])+len(s[i+1])+1 > m:
            m = len(s[i])+len(s[i+1])+1
    print(m)

    Определите количество групп из идущих подряд не менее 12 символов, которые начинаются и заканчиваются буквой E и не содержат других букв E (кроме первой и последней) и букв F.
    f = open(’24.txt’).readline().replace(‘E’ , ‘E E’).split()
    k = 0
    for i in range(len(f)):
        if f[i].count(‘F’) == 0 and len(f[i]) >= 12:
            k+=1
    print(k)

    Определите длину самой длинной последовательности, состоящей из символов R
    f = open(«zadanie24.txt»)
    maxLen = 1
    curLen = 1
    s = f.readline()
    for i in range(2, len(s)):
            if s[i] == s[i-1] and s[i]== ‘R’:
                curLen = curLen+1
                if curLen > maxLen:
                    maxLen = curLen
            else:
                curLen=1
    print(maxLen)

    Определите количество строк, в которых буква E встречается чаще, чем буква A.
    result = 0
    with open(’24.txt’, encoding=’utf-8′) as f:
        for line in f:
            if line.count(‘E’) > line.count(‘A’):
                result += 1
    print(result)

    Найти длинну, состоящую из одинаковых символов
    f =open(’24_demo.txt’)
    s = f.readline()
    c=0
    m=0
    ch=[o]
    for i in range(1,len(s)):
        if s[i] == s[i+1]:
            c = c + 1
            if c>m:
                m, ch =c, s[i]
        else:    
            c=1
    print(ch,m)

    Определите символ, который чаще всего встречается в файле между двумя одинаковыми символами
    f = open(‘24345.txt’, ‘r’)
    s = f.read()
    d = dict()
    for i in range(1, len(s) — 1):
        if s[i-1] == s[i+1]:
            if s[i] not in d:
                d[s[i]] = 1
            else:
                d[s[i]] += 1
    print(max(d, key=lambda k: d[k]))

    Найти длинну самой длинной подцепочки, состоящей из символов С
    f =open(’24_demo.txt’)
    s = f.readline()
    c=0
    m=0
    for i in range(len(s)):
        if s[i] == ‘C’:
            c = c + 1
            m=max(c,m)
        else:    
            c=0
    print(m)

    f =open(’24_demo.txt’)
    s = f.readline()
    c=0
    m=0
    for i in range(len(s)):
        if s[i] == ‘C’:
            c = c + 1
        elif c>0:
            m=max(c,m)    
            c=0
    print(m)

    Определить максимальное количество подряд идущих символов, среди которых каждые два соседних символа различны
    f=open(’24.txt’)
    s=f.readline()
    c= m = s[0]
    for i in range(1,len(s):
        if s[i-1] != s[i]:
            c+=s[i]
            m=max(m,c,key=len)
        else:
            c=s[i]
    print(m,len(m))

    Определить максимальное количество подряд идущих символов, среди которых нет сочетания символов PPP
    f=open(’24.txt’)
    s=f.readline()
    while ‘PPP’ in s: s=s.perlace(‘PPP’, ‘PP PP’)
    m=max(s.split(),key=len)
    print(len(m))

    f=open(’24.txt’)
    s=f.readline()
    c= m = s[0]+s[1]
    for i in range(2,len(2,len(s)):
        if s[i-2]+s=s[i-1]+s[i] != ‘PPP’:
            c+=s[i]
            m=max(m,c,key=len)
        else:
            c=s[i-1]+s[i]
    print(len(m))

    Текстовый файл состоит из символов A B … Z. Определите максимальное количество идущих подряд символов, среди которых нет рядом стоящих букв A Z (в любом порядке).
    f=open(’24.txt’)
    s=f.readline()
    s=replace(‘AZ’, ‘A Z’).replace(‘AZ’, ‘Z A’)
    m=max(s.split(),key=len)
    print(m, len(m))

    f=open(’24.txt’)
    s=f.readline()
    s= m = s[0]
    for i in range(1,len(s)):
        if s[i-1]+s[i] !=’AZ’ and s[i-1]+s[i] !=’ZA’:
            c +=s[i]
            m=max(s.c,key=len)
        else:
            c=s[i]
    print(len(m))

    Текстовый файл состоит из символов A B … Z. Определите максимальное количество идущих подряд символов, среди которых нет сочетания ST.
    1. При разбиении слева и справа от РАЗРЫВА должно оставаться как можно больше символов.
    2. Слева НЕ включается последний сивол.
    3. Справа НЕ включается первый символ.
    f=open(’24.txt’)
    s=f.readline()
    s=replace(‘ST’, ‘S T’)
    m=max(s.split(),key=len)
    print(m,len(m))

    f=open(’24.txt’)
    s=f.readline()
    s= m = s[0]
    for i in range(1,len(s)):
        if s[i-1]+s[i] !=’ST’:
            c +=s[i]
            m=max(s,c,key=len)
        else:
            c=s[i]
    print(len(m))

    Текстовый файл состоит не более чем из 1 200 000 символов X, Y, и Z. Определите максимальное количество идущих подряд символов, среди которых нет подстроки XZZY.
    with open(’24.txt’)as f: s = f.read()
    s = s.replace(‘XZZY’,’AAA AAA’)
    print(len(max(s.split(),key=len)))

    Текстовый файл состоит не более чем из 1 200 000 символов X, Y, и Z. Определите максимальное количество идущих подряд символов, среди которых нет подстроки KEGE.
    with open(’24.txt’)as f: s = f.read()
    s = s.replace(‘KEGE’,’KEG EGE’)
    m = max(s.split(),key=len)
    print(len(m))

    f=open(’24.txt’)
    s=f.readline()
    c= m = 3
    for i in range(3,len(s)):
        s[i-3]+s[i-2]+s[i] != ‘KEGE’:
            c +=1
            m = max(m,c,key=len)
        else:
            c=3
    print(m)

    Текстовый файл содержит строки различной длины. Общий объём файла не превышает 1 Мбайт. Строки содержат только заглавные буквы латинского алфавита (ABC…Z). В строках, содержащих менее 25 букв A, нужно определить и вывести максимальное расстояние между одинаковыми буквами в одной строке.
    with open (‘inf_26_04_21_24.txt’) as f:
        maximum = 0
        for a in f.readlines():
            if a.count(‘A’) < 25:
                for i in range(len(a)):
                    t1 = a.find(a[i])
                    t2 = a.rfind(a[i])
                    t = abs(t1-t2)
                    maximum = max(maximum,t)
        print(maximum)

    Найти длинну самой длинной цепочки, состоящей из символов С.
    f=open(’24.txt’)
    s=f.readline()
    s1=’C’
    while s1 in s:
        s1 += ‘C’
    print(len(s1)-1)

    f=open(’24.txt’)
    s=f.readline()
    l = lmax = 0
    for i in range(len(s)):
        l+=1
        if l>lmax:
            lmax=l
        else:
            l=0
    print(lmax)

    Определите максимальную длину цепочки вида LDRLDRLDR… (составленной из фрагментов LDR, последний фрагмент может быть неполным).
    f=open(’24.txt’)
    s=f.readline()
    s1=»
    while s1 in s:
        s1+=’LDR’
    s2=’LDR’*2+’LD’
    print(len(s2))

    f=open(’24.txt’)
    s=f.readline()
    s1=’E’
    while s1 in s:
        if s1[-1] ==’E’:
            s1+= ‘A’
        elif s1[-1] ==’B’:
            s1+= ‘B’
        else:
            s1+=’E’
    print(len(s1)-1)

    Найти длинну самой длинной подцепочки, состоящей из одинаковых символов. Если в файле несколько цепочек, взять первую из них. Вывести сначала символ, из которого строилась эта цепочка, а затем через пробел — длинну цепочки.
    f=open(’24.txt’)
    s=f.readline()
    t=»
    l = lmax = 1
    for i in range(len(s)-1):
        l+=1
        if l>=lmax:
            lmax=l
            t=s[i]
        else:
            l=1
    print(lmax)

    Опеределить самое большое число, состоящее только из нечетных цифр
    f=open(’24.txt’)
    s=f.readline()
    a=’13579′
    l = »
    lmax = 1
    for i in range (len(s)):
        if s[i] in s:
            l=l+s[i]
            if int(l}>lmax:
                lmax = int(l)
        else:
            l=»
    print(lmax)

    Опеределить максимальное число идущих подряд символов, среди которых каждые два соседних различны
    f=open(’24.txt’)
    s=f.readline()
    maxim = 1
    k=1
    for i in range(len(s)):
        if s[i]!=s[i+1]:
            k=k+l
            maxim=max(k,maxim)
        else:
            k=1
    print(maxim)

    В текстовом файле цепочка из символов A,B,C,D,E. Опеределить длинну самой длинной подцепочки, состоящей из символов A , B, или C — в произвольном порядке.
    f=open(’24.txt’)
    s=f.readline()
    maxim = 0
    k=0
    for i in range(len(s)):
        if s[i] in ‘ABC’:
            k=k+l
            maxim=max(k,maxim)
        else:
            k=0
    print(maxim)

    Текстовый файл содержит строки различной длины. Общий объём файла не превышает 1 Мбайт. Строки содержат только заглавные буквы латинского алфавита (ABC…Z). Необходимо найти строку, содержащую наименьшее количество букв G (если таких строк несколько, надо взять ту, которая находится в файле раньше), и определить, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая позже стоит в алфавите.
    from collection import counter
    f=open(’24.txt’)
    line=f.readline()

    s=’G’ * 100000
    for line in lines:
        if line.count(‘G’) < s.count(‘G’):
            s=line
    print(Counter(s).most_counter())

    f=open(’24.txt’)
    line=f.readline()
    s=’G’ * 100000
    for line in lines:
        if line.count(‘G’) < s.count(‘G’):
            s=line
    a=[]
    for i in range(len(s)):
        if s[i] not in a:
            a[s[i]] = 0
        else:
            a[s[i]] += 1
    print(a)

    в файле цепочка из символов A,B,C. Найти длинну самой длинной подцепочки, состоящей из символов B
    f=open(’24.txt’)
    s=f.readline()
    s=replace(‘A’,’ ‘).replace(‘B’,’ ‘)
    m =max(s.split(),key=len)
    print(len(m)


     Текстовый файл содержит строки различной длины. Общий объём файла не превышает 1 Мбайт. Строки содержат только заглавные буквы латинского алфавита (???…?).

    Необходимо найти строку, содержащую наименьшее количество букв ? (если таких строк несколько, надо взять ту, которая находится в файле раньше), и определить, какая буква встречается в этой строке чаще всего. Если таких букв несколько, надо взять ту, которая позже стоит в алфавите.

    Пример. Исходный файл:

    GIGA
    GABLAB
    AGAAA

    В этом примере в первой строке две буквы G, во второй и третьей – по одной. Берём вторую строку, т. к. она находится в файле раньше. В этой строке чаще других встречаются буквы A и B (по два раза), выбираем букву B, т. к. она позже стоит в алфавите. В ответе для этого примера надо записать B.

    # С помощью списка
    f = open('./Data/24/ИН2010401.txt')
    minG = 1_000_000_000
    for stroka in f:
        kcurrG = stroka.count('G')
        if kcurrG < minG:
            minG, s = kcurrG, stroka
    f.close()
    cnt = [0]*26
    for i in range(0, len(s) - 1):
        cnt[ord(s[i]) - ord('A')] += 1
    maxCount = 0
    maxi = 0
    for i in range(len(cnt)):
        if cnt[i] >= maxCount:
            maxCount = cnt[i]
            maxi  = i
    print(chr(maxi  + ord('A')))

    # С помощью словаря f = open('./Data/24/ИН2010401.txt') minG = 1_000_000_000 for stroka in f: kcurrG = stroka.count('G') if kcurrG < minG: minG, s = kcurrG, stroka f.close() D = {} for c in s: if c in D: D[c] += 1 else: D[c] = 1 mx = max(D.values()) ans = [] for key, value in D.items(): if mx == value: ans.append(key) ans.sort() print(ans[-1])

    # Текстовый файл содержит только заглавные буквы латинского алфавита (ABC...Z). Определите максимальное количество идущих подряд символов, среди которых нет
    ни одной буквы A и при этом не менее трёх букв E. s=open('24.txt').readline() p=s.split('A') m=0 for t in p: if t.count('E')>=3: m=max(m,len(t)) print(m) s=open('24.txt').readline() L=Lmax=k=0 for c in s: if c!='A': L+=1 if c=='E': k+=1 else: if k>=3 and L>Lmax: Lmax=L L= k = 0 if k>=3 and L>Lmax: Lmax=L print(Lmax)
    f =open('24_demo.txt')
    s = f.readline()
    counta=0
    countn=0
    for i in range(len(s)-2):
        if s[i] != s[i+1] != s[i+2] and s[i]=s[i+2]:
            if s[i]=='a' or s[i+1]=='a' or s[i+2]=='a':
                counta=counta+1
            else:
                countn=countn+1
    print(counta - countn)

    f =open('24_demo.txt')
    s = f.readline()
    count=1
    countMax=1
    for i in range(len(s)-1):
        if s[i] == s[i+1]:
            count = count + 1
            countMax=max(count,countMax)
        else:    
            count=1
    print(countMax)

    f =open('24_demo.txt') s = f.readline() cLen=0 maxLen=0 for char in s: if char == 'C': cLen = cLen + 1 if cLen > maxLen: maxLen=cLen else: cLen=0 print(maxLen)

    f =open('24_demo.txt') s = f.readline() cLen=0 maxLen=0 for char in s: if char == 'ABC': cLen = cLen + 1 if cLen > maxLen: maxLen=cLen else: cLen=0 print(maxLen)

    f =open('24_demo.txt') s = f.readline() count=0 for i in range(len(s)-2): if s[i] in 'BCD' and s[i+1] in 'BDE' and s[i+2] in 'DCE' and s[i] != s[i+1] and s[i+1] != s[i+2]: count = count + 1 print(count)

    f =open('24_demo.txt') s = f.readline() clen=maxlen=1 for i in range(1,len(s)): if s[i] != s[i-1]: clen= clen+1 if clen > maxlen: clen= maxlen else: clen=1 print(maxlen)

    s=list(map(str,open('24.txt').readline().split('E'))) count=0 for string in s: if string.count('F')==string.count('E')==0 and len(string)>=10: count+=1 print(count)

     
    f =open('24_demo.txt') s = f.readline() count=0 countmax=0 for i in range(len(s)): if s[i] != ' ': count=count+1 countmax=max(count,countmax) else: count=0 countmax=max(count,countmax) print(countmax)
    
    
    f =open('24_demo.txt') s = f.readline() count=0 countmax=0 for i in range(len(s)): if s[i] != ' ': count=count+1 countmax=max(count,countmax) else: count=0 countmax=max(count,countmax) print(countmax)
    

    Разбор 24 задания на Python | ЕГЭ по информатике 2022

    Канал видеоролика: Иван Викторович

    Разбор 24 задания на Python | ЕГЭ по информатике 2022

    Смотреть видео:

    Свежая информация для ЕГЭ и ОГЭ по Информатике (листай):

    С этим видео ученики смотрят следующие ролики:

    Разбор 2 задания ЕГЭ по информатике решение в pascal и python (2019 вариант 4, Крылов С.С., Чуркина)

    Разбор 2 задания ЕГЭ по информатике решение в pascal и python (2019 вариант 4, Крылов С.С., Чуркина)

    Светлана Майер

    Разбор 24 задания ЕГЭ по информатике демо 2021 и с сайта Полякова К. (21) , на Pascal и Python

    Разбор 24 задания ЕГЭ по информатике демо 2021 и с сайта Полякова К. (21) , на Pascal и Python

    Светлана Майер

    Разбор 6 задания ЕГЭ по информатике 2021 и с сайта Полякова К. (68 b 83) , на Pascal и Python

    Разбор 6 задания ЕГЭ по информатике 2021 и с сайта Полякова К. (68 b 83) , на Pascal и Python

    Светлана Майер

    Разбор 24 задания ЕГЭ по информатике 2021 на Pascal и Python с сайта Полякова (задания 108, 52, 87)

    Разбор 24 задания ЕГЭ по информатике 2021 на Pascal и Python с сайта Полякова (задания 108, 52, 87)

    Светлана Майер

    Облегчи жизнь другим ученикам — поделись! (плюс тебе в карму):

    14.01.2022

    • Комментарии

    RSS

    Написать комментарий

    Нет комментариев. Ваш будет первым!

    Ваше имя:

    Загрузка…

    Помогите пожалуйста
    Написал код, но не знаю, как организовать подсчёт символов и как их сравнить, чтобы получалось в общей сумме не больше трёх в строке.

    f=open (’24.txt’)
    s=f.readline()
    k=1
    m=0
    for i in range (len(s)-1):
    if s[i]==’A’ and s[i]==’B’:
    k=k+1
    m=max(m,k)
    else:
    k=1
    print (m)

    Само задание выглядит так:

    Текстовый файл содержит только заглавные буквы латинского алфавита
    (ABC…Z). Определите максимальное количество идущих подряд символов,
    среди которых буквы A и B в общей сложности встречаются не более трёх раз.

    __________________
    Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

    Понравилась статья? Поделить с друзьями:

    Новое и интересное на сайте:

  • Как делать 22 задание егэ по физике
  • Как делать 21 номер в егэ по обществознанию
  • Как делать 21 задание по обществу егэ
  • Как делать 21 задание в егэ по русскому тире
  • Как готовиться к егэ по обществознанию 2022 самостоятельно

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии