............ s:='..'; read (s1); for i:=1 to length(s1) do if s[i]='.' then insert(s,s1,i); .............
чёт не получается то, что хотел в результате
Altair
19.01.2005 3:38
Код
const s1:string='DDD'; var s:string; I:byte; begin readln(s); While Pos('.',s)<>0 do begin insert(s1,s,pos(s,'.')); delete(s,pos(s,'.'),1); end; writeln(s); end.
ТОлько не вздумай менять "." на "..." - при том алгоритме что я дал, убдет бескоенчный цикл.
Altair
19.01.2005 3:49
вот универсальный алгоритм:
Код
const s1:string='DDD'; var s:string; I,j:byte; a:array[1..255] of byte; begin readln(s); i:=0; While Pos('.',s)<>0 do begin inc(i); a[i]:=pos('.',s); delete(s,pos('.',s),1); end; for j:=1 to i do insert(s1,s,a[j]); writeln(s); end.
SeRGuS
19.01.2005 3:56
Спасибо за помощь пожалуйста!
volvo
19.01.2005 13:33
Oleg_Z
Цитата
вот универсальный алгоритм:
Не такой уж он и универсальный
Код
for j:=1 to i do insert(s1,s,a[j]);
Вот тут после первой же вставки вся нумерация нарушится, и дальнейшие вставки приведут к полной бессмыслице... Нужно двигаться вот так:
Код
for j:=i downto 1 do insert(s1,s,a[j]);
тогда ничего не нарушается ;)
Altair
21.01.2005 0:18
да, точно. вот что значит выбрать правильные тесты при проверке решения!
_trminator
21.01.2005 3:17
Заменить все точки на какой-нибудь неиспользуемый символ (из псевдографики там, или из начала ASCII), а потом этот символ заменить тремя точками =)
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.