Вывод строки в обратном порядке через рекурсивную процедуру - Free Pascal

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

Скопипастил сию процедурку, но вот как именно она работает так и не разобрался. Буду благодарен если кто объяснит простым языком
Procedure Revers(S : String);
Begin
  If Length(S)>0 then
  Begin
    Write(S[Length(S)]);
    Revers(Copy(S,1,Length(S)-1));
  end;
end;

Код к задаче: «Вывод строки в обратном порядке через рекурсивную процедуру - Free Pascal»

textual
{$MODE ObjFPC}
procedure RS(s:string;n:integer=1);
begin
  if n<length(s) then RS(s,n+1);
  write(s[n]);
end;
begin
  RS('нофелет');
end.

10   голосов, оценка 4.200 из 5


СОХРАНИТЬ ССЫЛКУ