Помогите исправить аналог функции Copy на паскале(турбо)

Примечание реализация без дополнительных строк Вот мой код:

function mycopy(s: string; start: byte; len: byte): string;
var
  i: byte;
begin
  s:='';
  i:=1;
  while  (start<=length(s)) do begin
  s:=s+s[start];
  inc(start);
  inc(i);
  end;
  mycopy:=s;
end;

пример запуска:введите сюда описание изображения

в отмеченной области должен выводится текст, но как видим ничего выводится.


Ответы (1 шт):

Автор решения: CrazyElf

Ошибок сразу несколько:

  • Вы сразу заменяете входную строку s: string; пустой строкой s:='';
  • Вы берёте символ для копирования из самой же результирующей строки s:=s+s[start];
  • Переменная i инкрементируется, но вообще никак не используется

Исправить ошибку можно если сделать для результата переменную с другим именем, не таким же, как аргумент функции. Наверное, вы можете формировать результат в переменной mycopy, в которой он в итоге и должен оказаться.

→ Ссылка