Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Графика в паскале!

Автор: MagicPRO 7.10.2006 17:01

Помогите кто-то с заданием!!!!!Нужно сортировать заданый массив фигур(треугольник,квадрат,круг) методом перестановки!Помогите пожалуста!!!

Автор: volvo 7.10.2006 17:06

Критерий сортировки, например, треугольников, приведи? А что больше - треугольник или квадрат?

Автор: klem4 7.10.2006 17:12

Что-то на подобии этого ?

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.

Автор: мисс_граффити 7.10.2006 17:20

и, желательно, уточнение, как задаются фигуры.

Автор: volvo 8.10.2006 0:10

Может, и что-то такое:

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.

Автор: MagicPRO 8.10.2006 17:30

Я не знаю, я на С работаю, а дали в универе задание по паскалю, мне не охота в нем шарится! Напиши пожалуста любой какой-то код шоб хоть работал а дальше я уже сам расшарюсь когда будет время!фигуры поидее одного размера должны быть

Автор: klem4 8.10.2006 17:35

Ну в принципе 2 предположения есть, смотри посты #3 и #5 открываю их ...

Опятьже слишком мало информации о задании.