uses crt;
const
n = 6;
type
TFigure = (Triangle, Rectangle, Circle); (* 0, 1, 2*)
var
f: array [1..n] of TFigure = (
Triangle, Circle, Circle, Rectangle, Circle, Triangle
);
var
i, j: Integer;
temp: TFigure;
begin
clrscr;
for i := 1 to n - 1 do
for j := i + 1 to n do
if f[i] >= f[j] then begin
temp := f[i];
f[i] := f[j];
f[j] := temp;
end;
for i := 1 to n do
writeln(ord(f[i]));
readln;
end.
uses crt;
const
n = 6;
type
PTFigure = ^TFigure;
TFigure = object
end;
PTTriangle = ^TTriangle;
TTriangle = object(TFigure)
end;
PTRectangle = ^TRectangle;
TRectangle = object(TFigure)
end;
PTCircle = ^TCircle;
TCircle = object(TFigure)
end;
function Less(const a, b: PTFigure): boolean;
begin
Less := true;
// Сравнение по какому-то признаку
end;
var
f: array[1 .. n] of PTFigure;
var
i, j: Integer;
T: PTFigure;
begin
clrscr;
for i := 1 to n do begin
j := random(3) + 1;
case j of
1: f[i] := new(PTTriangle);
2: f[i] := new(PTRectangle);
3: f[i] := new(PTCircle);
end;
end;
for i := 1 to n - 1 do
for j := i + 1 to n do
if not Less(f[i], f[j]) then begin
T := f[i]; f[i] := f[j]; f[j] := T;
end;
// Вывод данных
// Деструкторы
readln;
end.