Задание 24 предлагает проанализировать по различным критериям текстовый файл, который состоит из набора символов. Для этого, в начале программы, требуется файл открыть в режиме посимвольного считывания (данная формулировка верна для Паскаля, Python открывает в общем, а далее все зависит от команд считывания) , ну а потом, считывая следующий символ и сравнивая его с предыдущим, настраивать реакцию программы.

Приведем решение наиболее часто встречающегося варианта задания на разных языках программирования.

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

PascalABC.NET

var
  f:file of char;
  s, s_last, s_max:char;
  i,i_max:integer;
begin
assign(f,'C:/EGE/24.txt'); reset(f);
read(f,s_last);
i:=1;i_max:=1;
while not eof(f) do
  begin
  read(f,s);
      if s = s_last then i:=i+1
      else
         begin
            if i>i_max then 
              begin
              i_max:=i; s_max:=s_last
              end;
            i:=1; s_last:=s
         end
  end;
write(i_max,' ',s_max)
end.

Python

f=open('c:/EGE/24.txt')
s=f.read(1); s_last=s; s_max=s
i=1; i_max=1
while len(s)>0:
    s=f.read(1)
    if s==s_last: i+=1
    else:
        if i>i_max: i_max=i; s_max=s_last
        i=1; s_last=s
print(i_max, ' ', s_max)

Java

package zadanie24;
import java.io.*;
import java.text.*;
public class Zadanie24 {
    public static void main(String[] args) {
        try{FileReader reader = new FileReader("C:\\Java\\24.txt");
            DecimalFormat dF = new DecimalFormat();
            int c,c_last,i, i_max;
            c_last=reader.read();
            i=1; i_max=1;
            while((c=reader.read())>10)
            {   if (c==c_last){i+=1;}
                else {  if (i>i_max) {i_max=i;}
                        i=1; c_last=c;
                    }
            }
            System.out.print(dF.format(i_max)+' '+(char)c_last);
            System.out.println();
        }
        catch(IOException ex){System.out.println(ex.getMessage());}   
    }
}