Показать сообщение отдельно
  #7  
Старый 05.10.2011, 19:26
icWasya icWasya вне форума
Местный
 
Регистрация: 09.11.2010
Сообщения: 499
Репутация: 10
По умолчанию

Цитата:
Сообщение от badtrips
наверху написано всё криво,никак не могу придумать логику такой процедуры,решил только ввести m и n что бы сравнивать значение Weight
и сортировать..Есть какой нибудь ещё способ сортировки в таком случае?И из того что я начал делать что нибудь придумать можно?

Ну если пузырьком, то:
почему Temp:Mass;а не Temp:Sportsmen;?
вместо // k - размер массива можно использовать Length(Massiv);
width для вытаскивания одного значениея - совершенно лишнее, особенно когда будут перестановки;
и внутренний цикл можно подсократить.
И с учёто этого
Код:
procedure Puzyrek(var Massiv:Mass);
var
  i,j:integer;
  Temp:Sportsmen;//временная переменная для перемещения
begin
  for j:=0 to Length(Massiv)-1 do
  begin
    for i:=j+1 to Length(Massiv)-1 do
    begin
       if Massiv[i].Weight>Massiv[j].Weight then
       begin
         Temp:=Massiv[j];
         Massiv[j]:=Massiv[i];
         Massiv[i]:=Temp;
      end;//if
    end;//for i
  end;//for j
end;
Ответить с цитированием