{jmeno programu}
program zpet;

{nadefinovani globalnich promennych}
var text,textzpet:string; {puvodni_text, otoceny_text}

{procedura pro otoceni textu}
procedure proc(text:string; var textzpet:string); {text = retezec znaku: jako retezec; VAR (bude fungovat tak, ze po provedeni 
procedury se zpatky ulozi do globalni promenny (do textzpet)}
var i:integer; {deklarace lokalni promenny i, ktera funguje jen pro proceduru}
    begin
         for i:=length(text) downto 1 do {PRO i=delka(TEXTu) do (downto je opak TO (to pricita +1, downto -1)) 1 delej:}
            begin
            insert(text[i],textzpet,length(textzpet)+1); {vloz(text[na pozici i], do retezce textzpet, 
                            na pozici delka(robsazeneho retezce TEXTZPET)+1) - to +1, aby se to ulozilo za ten cely retezec, jinak
                            by ho to prepisovalo}
            end;
    end;

begin
  write('Zadej text:');
  readln(text); {nacti retezec do TEXT}
  proc(text,textzpet); {vykonej proceduru PROC(a predej ji paramert: text a textzpet)}
  writeln(textzpet); {vypis retezec textzpet}
readln;
end.