Последовательность символов в строке (char) - Free Pascal

Формулировка задачи:

В одной строке вводится последовательность символов (тип char). Ввод завершается символом <*> Определить, встречаются ли в этой последовательности символов группы из трех рядом стоящих точек. Если такие группы присутствуют, вывести номера позиций начала таких групп (то есть номер первой точки в каждой группе). Массивы нельзя использовать. Так вот, я определил количество точек и их позиции в строке (каждой по отдельности). Каким образом определить количество трех точек, которые стоят рядом (именно количество троеточий), а также номера позиции только первых точек из этих групп? Можно ли как-то обойтись без string? Если нет, то как использовать string? Прошу помощи. Заранее спасибо.
Program p1;
var a: char;
i,j,n:integer;
k:real;
Begin
i:=0;
j:=0;
n:=0;
while a<>('*') do
begin
read (a);
i:=i+1;
j:=j+1;
if (a='.') and (a<>'*') then
writeln('pos to4ki = ',j);
if (a='.') and (a<>'*') then
k:=k+1;
end;
writeln('kol-vo simvolov = ',i-1);
writeln ('kol-vo tochek = ',k:2:0);
readln;
readln;
end.

Код к задаче: «Последовательность символов в строке (char) - Free Pascal»

textual
var a: char;
    mt:set of byte;
i,j,k:integer;
Begin
i:=0;j:=0;k:=0;
mt:=[];
repeat
 read(a);
 i:=i+1;
 if a='.'
  then
   begin
    if j=2 then begin include(mt,i-2);j:=0;inc(k) end
           else inc(j)
   end        
until a='*'; 
if k<>0 then 
         begin
          writeln('pos:');
          for i:=1 to i do if i in mt then write(i,' ')
         end
        else writeln('---'); 
readln;
readln;
end.

10   голосов, оценка 4.100 из 5


СОХРАНИТЬ ССЫЛКУ