Помогите кто-то с заданием!!!!!Нужно сортировать заданый массив фигур(треугольник,квадрат,круг) методом перестановки!Помогите пожалуста!!!
Критерий сортировки, например, треугольников, приведи? А что больше - треугольник или квадрат?
Что-то на подобии этого ?
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.
Я не знаю, я на С работаю, а дали в универе задание по паскалю, мне не охота в нем шарится! Напиши пожалуста любой какой-то код шоб хоть работал а дальше я уже сам расшарюсь когда будет время!фигуры поидее одного размера должны быть
Ну в принципе 2 предположения есть, смотри посты #3 и #5 открываю их ...
Опятьже слишком мало информации о задании.