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

0 голосов
99 просмотров

Преобразовать исходную строку, заменив каждую из групп стоящих рядом двух или более точек многоточием (т.е. тремя точками).


Информатика (1.2k баллов) | 99 просмотров
Дан 1 ответ
0 голосов
uses crt;
var s:string;
     i,j:byte;
begin
 clrscr;
writeln('Введите строку, содержащую точки, как по 1, так и группами:');
readln(s);
if (length(s)>1)and(copy(s,1,2)='..') then{если в начале строки более 1 точки}
  begin
                                    {или строка вообще из точек}
   while (s[1]='.')and(length(s)>0) do delete(s,1,1);
   insert('...',s,1);
 end; if(length(s)>2)and(s<>'...') then{если осталось более 2 сиволов, начнем                                   проверять с конца}  
begin   i:=length(s)-2;  
while i>=1 do
  if (s[i]<>'.')and(copy(s,i+1,2)='..') then
   begin  
  while (s[i+1]='.')and(i+1<=length(s)) do delete(s,i+1,1);    <br> insert('...',s,i+1);  
   i:=i-1;
    end  
else i:=i-1;
 end;
write(s);
readln
end.
(16.9k баллов)
0

там ошибку времени исполнения выдаёт

0

а там j лишняя, или нет?

0

Какая ошибка?
Может и лишняя... Это же ацццкий код, даже оптимизировать не успел, ибо в школу