Написать процедуру, которая вставляет в список L действительных чисел новый элемент E1 за...

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

Написать процедуру, которая вставляет в список L действительных чисел новый
элемент E1 за каждым вхождением элемента E. Delhi 7 or Pascal ABC.NET


Информатика (15 баллов) | 115 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

procedure ListInsert(var L:List;e,e1:real);
begin
  for var i:=L.Count-1 downto 0 do
    if L[i]=e then L.Insert(i+1,e1)
end;

begin
  var P:=new List;
  Writeln('Введите последовательность чисел, завершив её нулём');
  P.AddRange(ReadSeqRealWhile(a->a<>0));
  var what:=ReadReal('Что вставить?');
  var before:=ReadReal('После чего вставить?');
  ListInsert(P,before,what);
  Writeln('Результат:');
  P.Println
end.

Пример
Введите последовательность чисел, завершив её нулём
3.8 -6.2 1.45 2.18 -6.2 14 2.7 2.18 2.18 3.8 15.4 0
Что вставить? 0.0001
После чего вставить? 2.18
Результат:
3.8 -6.2 1.45 2.18 0.0001 -6.2 14 2.7 2.18 0.0001 2.18 0.0001 3.8 15.4

(150k баллов)