Предмет: Информатика,
автор: marsmag
Преобразовать исходную строку, заменив каждую из групп стоящих рядом двух или более точек многоточием (т.е. тремя точками).
Ответы
Автор ответа:
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);
insert('...',s,i+1);
i:=i-1;
end
else i:=i-1;
end;
write(s);
readln
end.
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);
insert('...',s,i+1);
i:=i-1;
end
else i:=i-1;
end;
write(s);
readln
end.
Автор ответа:
0
там ошибку времени исполнения выдаёт
Автор ответа:
0
а там j лишняя, или нет?
Автор ответа:
0
Какая ошибка?
Может и лишняя... Это же ацццкий код, даже оптимизировать не успел, ибо в школу
Может и лишняя... Это же ацццкий код, даже оптимизировать не успел, ибо в школу
Похожие вопросы
Предмет: Алгебра,
автор: Alexanderleznin
Предмет: Математика,
автор: Аноним
Предмет: Математика,
автор: Аноним
Предмет: Алгебра,
автор: Арианна122
Предмет: Литература,
автор: корчик