πЕГЭ · ИИ-репетитор12 предметов · задания ФИПИ
Главная → Информатика → Задания №24 → Задание i24-10

Задание №24 ЕГЭ Информатика с ответом и решением

Ответ: 467

Условие

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

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

Подсказки — как подойти к решению

  1. Здесь файл читается построчно, и решение принимается отдельно для каждой строки. Внутри строки считай количество букв A и E, а счётчики обязательно обнуляй перед следующей строкой.
  2. Строка засчитывается, только если букв E строго больше, чем букв A. При нестрогом сравнении в ответ попадут строки с равным числом букв, и результат окажется завышенным.

Решение

Для решения этой задачи будем построчно считывать файл. В каждой строке с помощью цикла будем считать количество символов A и E, проверяя, является ли данный символ строки символом A или E, и увеличивая счётчики cntA и cntE соответственно. Следовательно, если по окончании итерации значение cntE будет больше значения cntA, переменную cntStr увеличиваем на 1.

Приведём решение данной задачи на языке Pascal.

var

str: string;

cntA, cntE: integer;

cntStr: integer;

f: text;

begin

assign(f,'C:\24.txt');

reset(f);

cntA := 0;

cntE := 0;

cntStr := 0;

while not Eof(f) do begin

readln(f, str);

for k:integer := 1 to length(str) do begin

if (str[k] = 'A') then

cntA := cntA + 1

else if (str[k] = 'E') then

cntE := cntE + 1;

end;

if (cntE > cntA) then

cntStr := cntStr + 1;

cntE := 0;

cntA := 0;

end;

writeln(cntStr);

end.

В результате работы данного алгоритма при вводе данных из файла в условии получаем ответ — 467.

Ответ: 467.

Примечание. Путь к файлу необходимо указать согласно расположению файла на Вашем компьютере.

Приведём решение на языке Python.

f = open('24.txt')

a = 0

for string in f:

if(string.count('A') < string.count('E')):

a += 1

print(a)

Приведём решение Николая Чуркина (Тимашевск) на языке Python.

f = open('24.txt')

c = 0

i = f.readline()

while i != '':

if i.count('E') > i.count('A'): c += 1

i = f.readline()

print(c)

Приведём решение Юрия Красильникова на языке Python.

print(len([s for s in open('inf_22_10_20_24.txt') if s.count('E')>s.count('A')]))

Типичные ошибки

Решить это задание в тренажёре

В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №24 по информатике