Rozwiązań jest wiele. Na przykład takie jak poniżej.
program Project2;
{$APPTYPE CONSOLE}
uses
SysUtils;
procedure SortArrayOfStr(var A : array of string);
procedure QuickSort(var A : array of string; iLo, iHi : Integer);
var
Lo, Hi : Integer;
Mid, T : string;
begin
Lo := iLo;
Hi := iHi;
Mid := A[(Lo + Hi) div 2];
repeat
while AnsiCompareStr(A[Lo], Mid) < 0 do
begin
Lo := Lo + 1;
end;
while AnsiCompareStr(A[Hi], Mid) > 0 do
begin
Hi := Hi - 1;
end;
if Lo <= Hi then
begin
T := A[Lo];
A[Lo] := A[Hi];
A[Hi] := T;
Inc(Lo);
Dec(Hi);
end;
until Lo > Hi;
if Hi > iLo then
begin
QuickSort(A, iLo, Hi);
end;
if Lo < iHi then
begin
QuickSort(A, Lo, iHi);
end;
end;
begin
QuickSort(A, Low(A), High(A));
end;
var
I : integer;
Arr : array of string;
begin
SetLength(Arr, 3);
for I := Low(Arr) to Length(Arr) - 1 do
begin
Write('Podaj wyraz ', I + 1, ' z ', Length(Arr), ': ');
Readln(Arr[I]);
end;
SortArrayOfStr(Arr);
for I := Low(Arr) to Length(Arr) - 1 do
begin
Writeln(Arr[I]);
end;
Readln;
end.