Информатика подготовка к ЕГЭ. ЕГЭ по информатике 2021 Задание. Егэ по информатике 2021. Задание 24 (Обработка символьной информации)
![]()
|
ЕГЭ по информатике 2021. Задание 24(Обработка символьной информации)Двадцать четвёртое задание из ЕГЭ по информатике нацелено на обработку символьной информации. При его разборе с учащимися необходимо повторить работу с файлами и файловыми переменными. Учащиеся должны четко понимать: как назначить файл для чтения, как открыть файл для чтения, как считываются данные из файла с помощью файловой переменной и как при этом формируется строка символов, полученных из файла. Работа с данными, полученными из файла используется и при выполнении последующих заданий. Поэтому важно, чтобы участники ЕГЭ отработали данную часть программного кода до автоматизма. После получения символьной строки содержащей данные из файла пережодим к решению сформулированной в условии задачи. В качестве примера расмотрим пример из демоверсии ЕГЭ по информатики 2021 года. Текстовый файл состоит не более чем из 106 символов X, Y и Z. Определите максимальное количество идущих подряд символов, среди которых каждые два соседних различны. Для выполнения этого задания следует написать программу. Скачать файл Главное здесь правильно понять задание. Обязательно надо привести пример и с его помощью пояснить - в чем заключаеися поиск решения данного задания. К примеру расмотрим последовательность символов: XYZZYXZYYXZXYXZXY. Найдем в этой цепочке максимальную длину идущих подряд символов, среди которых каждые два соседних различны. В нашем примере оказалось три фрагмента идущих подрям символов, у которых нет двух «одинаковых соседей». Наибольшее количство символов содержит желтая цепочка символов. Задание стало понятным, переходим к разработке алгоритма. Алгоритм будет следующий: Берём символ, сравниваем его со следующим, если они разные, то добавляем к счётчику 1. Счётчик начинает работать с 1, чтобы засчитать самый первый символ. Если символы одинаковые, то сбрасываем счётчик на 1 (первоначальное значение). Таким образом, у нас будет разная длина цепочек не повторяющихся символов в нашем файле. Но нам нужно в ответе написать наибольшую длину. Количество символов в первой цепочке надо запомнить, чтобы в последствии сравнить с количеством следующей и запомниить максимальное с целью вывода ответа на консоль. В начале количество символов, удовлетворяющих условию задачи, равно нулю. Если в строке не окажеся цепочки из не повторяющихся символов, то ответ к заданию. будет нулевым. Но такая ситуация маловероятна. Как только обнаружилась цепочкка сравниваем её количество символов с первоначальны значением и делаем замену на большее найденное количество символов цепочки. И так повторяем до тех пор, пока не проверим всю строку. Так выглядит программа на языке Pascal, которая решит нашу задачу. prugramm z24; var f: file of char; c1, c2: char; c, m : integer; begin assign (f, 'c:\24.txt'); reset (f); c := 1; m := 0; read (f, c1); while not eof (f) do begin read (f, c2); if c1 <> c2 then begin c := c + 1; if c > m then m := c; end else begin c := 1; end; c1:=c2; end; Writeln(m); close (f); end. В ответе получится число 35. Ответ 35 |