Реализовать функцию - PascalABC.NET

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста, исправить код или написать новый. Суть в том, что мой код заменяет знак "%" сначала, а нужно с конца. И еще он периодически дублирует все буквы. Реализовать функцию Printf(s,а), возвращающую строку, полученную из s заменой символов "%" на элементы массива строк a по порядку, начиная от конца строки. Лишние элементы массива a не используются, лишние знаки "%" не заменяются.

Решение задачи: «Реализовать функцию»

textual
Листинг программы
begin
  var s := 'первый % второй % третий % четвёртый % пятый % шестой % седьмой % восьмой % девятый % десятый % всё.';
  var a := ArrRandomInteger(s.Count(i->i='%'));
  
  Write('Значения массива: '); a.Println;
  WriteLn('Исходная строка: ', s);
  
  var index := 0;
  while s.IndexOf('%') > -1 do
    begin
      var position := s.LastIndexOf('%');
      s := s.Remove(position, 1).Insert(position, a[index].ToString);
      
      WriteLn(s);
      index += 1;
    end;
end.

Оцени полезность:

9   голосов , оценка 3.889 из 5