Příklad: Vstup -- řada řetězců. Výstup -- a) řada řetězců uspořádaná v opačném pořadí. b) řada řetězců uspořádaná podle délky vzestupně. const MaxPole=1000; MaxString=100; type Indexy=1..MaxPole; Pristupy=0..MaxPole; Retez=string[MaxString]; Pole=array [Indexy] of Retez; var P: Pole; I, Pocet: Pristupy; k: byte; function CtiJedenRetezec: Retez; var x: byte; pom: Retez; begin Pom:=''; for x:=1 to K do begin read(Pom[x]); if Pom[x] < ' ' then Pom[x]:=' ' end; Pom[0]:=char(K); CtiJedenRetezec:=Pom; end; function CtiDruhyRetezec: Retez; var x: byte; pom: Retez; znak:char; begin Pom:=''; read(znak); while not ((znak in [#0..' ']) or eof) do Pom:=Pom+Znak; read(Znak) end; CtiDruhyRetezec:=Pom end; function CtiTretiRetezec: Retez; var pom: Retez; begin readln(pom); CtiTretiRetezec:=Pom end; type TypCteni = function: Retez; var Cteni: TypCteni; begin K:=6; Cteni:=@CtiPrvniRetezec; Pocet:=0; while not eof do begin Inc(Pocet); P[Pocet]:=Cteni; end; for I:=Pocet downto 1 do writeln(P[I]) end.