Задание №24 ЕГЭ Информатика с ответом и решением
Ответ: 467
Условие
Текстовый файл содержит строки различной длины. Общий объём файла не превышает 1 Мбайт. Строки содержат только заглавные буквы латинского алфавита (ABC…Z). Определите количество строк, в которых буква E встречается чаще, чем буква A.
Для выполнения этого задания следует написать программу. Ниже приведён файл, который необходимо обработать с помощью данного алгоритма.
Подсказки — как подойти к решению
- Здесь файл читается построчно, и решение принимается отдельно для каждой строки. Внутри строки считай количество букв A и E, а счётчики обязательно обнуляй перед следующей строкой.
- Строка засчитывается, только если букв 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')]))
Типичные ошибки
- В ответ попали строки, где букв A и E поровну: условие строгое, равенство не подходит. Сравнивай количества строго и проверь знак в условии.
В тренажёре: подсказки по шагам, разбор твоей ошибки ИИ-репетитором (он не даёт готовый ответ), повторение ошибок по интервалам и общий прогресс. Все задания №24 по информатике