Задания
Версия для печати и копирования в MS Word

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

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

За­да­ние 24

Спрятать решение

Ре­ше­ние.

Для ре­ше­ния этой за­да­чи будем по­строч­но счи­ты­вать файл. В каж­дой стро­ке с по­мо­щью цикла будем счи­тать ко­ли­че­ство сим­во­лов 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')]))


Аналоги к заданию № 29672: 33103 Все

Раздел кодификатора ФИПИ: