Предмет: Информатика, автор: eliza011213

 Помогите описать алгоритм!!!
uses crt;


var s, sn, sg: string;

 
i: integer;


begin


write('s=');


readln(s); sn:='';


for i:=1 to length(s) do    

   
if s[i]='.' then

       
sn:=sn+'...'
else sn:=sn+s[i];


write('s=',sn);


readkey


end.

Ответы

Автор ответа: Аноним
0
А что тут особо описывать? Считывается строка, потом в ней делается корявая попытка заменить найденную точку троеточием. Поскольку при такой замене появляются две добавочные точки, под замену попадает вторая из вставленных точек и заменяется еще на две... строка постоянно растет на две точки, они множатся... а цикл идет до первоначальной длины строки.
Результат - после первой точки в строку вставляются точки в количестве, равном количеству символов, считая от позиции этой точки до конца строки в её первоначальном виде. Остальные символы из первичного вида строки останутся неизменными, следуя за полученным набором точек.

Автор ответа: Аноним
0
Замечание. Подобные замены надо делать с конца строки к началу.
Автор ответа: Аноним
0
И правда новая.... пора очки заводить)))
Автор ответа: archery
0
uses crt;
var s, sn: string;
  i: integer;
begin
  write('s=');
  readln(s);

  sn := '';
  for i := 1 to length(s) do   
    if s[i] = '.' then
      sn := sn + '...'
    else sn := sn + s[i];
   
  write('s=', sn);
  readkey;
end.

Вводим строку. Пробегаем по всей ее длине и каждый символ по очереди записываем в новуйу строку, если же встречаем точку, то записываем вместо нее троеточие
Короче - заменяем все точки строки на троеточия


Похожие вопросы
Предмет: Математика, автор: кузюкос
Предмет: Биология, автор: luybashkoda