Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите с сортировкой
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
tory
М
Читай правила!
В следующий раз, пост без тегов - удалю!


Список устройств нужно отсортировать по убыванию их стоимости.
Вот что получилось, но не работает... Не могу скомпилировать.
Помогите довести до ума.

Program Lab;
uses crt;
const
   n = 5;

type
   TRec = record
	end;
Var
      TBase: array [1..n] of TRec;
      Name : string;
      Ves : real;
      Vus : real;
      Dli : real;
      Shi : real;
      Stoim : real;
      procedure Input (var b : TBase); {ўў(r)¤ ¤ ­­ле}
var
   i : byte;
begin
   for i := 1 to n do begin
      writeln('‡ ЇЁбм N ',i);
      write('Naimenovanie ustroistva : '); readln(b[i].name);
      write('Ves : '); readln(b[i].Ves);
      write('Vusota : '); readln(b[i].Vus);
      write('Dlina : '); readln(b[i].Dli);
      write('Shirina : '); readln(b[i].Shi);
      write('Stoimost : '); readln(b[i].Stoim);
      writeln;
   end;
end;

procedure Print(b : TBase); // ўлў(r)¤ ¤ ­­ле
var
   i : byte;
begin
   for i := 1 to n do begin
      writeln('‡ ЇЁбм N ',i);
      write('Naimenovanie ustroistva : '); readln(b[i].name);
      write('Ves : '); readln(b[i].Ves);
      write('Vusota : '); readln(b[i].Vus);
      write('Dlina : '); readln(b[i].Dli);
      write('Shirina : '); readln(b[i].Shi);
      write('Stoimost : '); readln(b[i].Stoim);
      writeln;
   end;
end;
procedure Sort(var b : TBase); {б(r)авЁа(r)ўЄ  § ЇЁбЁ Ї(r) Ї(r)«о Age}
var
   i : byte;
   temp : TRec;
   flag : boolean;
begin
   repeat
      flag := true;
      for i := 1 to n - 1 do
       if not (b[i].Stoim >= b[i+1].Stoim) then begin
          temp := b[i];
          b[i] := b[i + 1];
          b[i + 1] := temp;
          flag := false;
       end;
   until flag;
end;

var
   base : TBase;
Begin
clrscr;
Writeln(' ':25,'Vedomost P-21');
writeln(' ':5,'|---|--------------|-----|--------------------------|-------|');
writeln(' ':5,'|   |Naimenovanie  |Ves  |        Gabaritu, cm      | Stoim |');
writeln(' ':5,'    | ustroistva   | kG  | Vusota |  Dlina |Shirina |  grn  |');
writeln(' ':5,'|---|--------------|-----|--------------------------|-------|');
var
base : TBase;
begin
   writeln('‚ў(r)¤ ¤ ­­ле : ');
   Input(base);
   writeln('‚лў(r)¤ ¤(r) б(r)авЁа(r)ўЄЁ : ');
   Print(base);
   Sort(base);
   writeln;
   writeln('‚лў(r)¤ Ї(r)б«Ґ б(r)авЁа(r)ўЄЁ : ');
   Print(base);
   readln;
end.
volvo
type
   TRec = record
	end;
Var
      TBase: array [1..n] of TRec;
      Name : string;
      Ves : real;
      Vus : real;
      Dli : real;
      Shi : real;
      Stoim : real;
заменить на
type
   TRec = record
      Name : string;
      Ves : real;
      Vus : real;
      Dli : real;
      Shi : real;
      Stoim : real;
   end;
   TBase = array [1..n] of TRec;

Основная программа должна выглядеть так:
Begin
clrscr;
Writeln(' ':25,'Vedomost P-21');
writeln(' ':5,'|---|--------------|-----|--------------------------|-------|');
writeln(' ':5,'|   |Naimenovanie  |Ves  |        Gabaritu, cm      | Stoim |');
writeln(' ':5,'    | ustroistva   | kG  | Vusota |  Dlina |Shirina |  grn  |');
writeln(' ':5,'|---|--------------|-----|--------------------------|-------|');
{
  Этот фрагмент - лишний, убираем...
var
base : TBase;
begin
}
   writeln('‚ў(r)¤ ¤ ­­ле : ');
   Input(base);
   writeln('‚лў(r)¤ ¤(r) б(r)авЁа(r)ўЄЁ : ');
   Print(base);
   Sort(base);
   writeln;
   writeln('‚лў(r)¤ Ї(r)б«Ґ б(r)авЁа(r)ўЄЁ : ');
   Print(base);
   readln;
end.

Теперь программа компилируется... Отлаживай... smile.gif
tory
Вольво лучший. Спасибо!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.