Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2012, 12:31   #1
OverTeam
 
Регистрация: 29.05.2011
Сообщений: 7
Плохо Не могу разобраться в быстрой сортировке на Delphi

Не получается реализовать быструю сортировку в среде Delphi...нашел код, выдает ошибку, в чем дело?
Вот код:
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, StdCtrls, Classes,
  Controls;

type
  TForm1 = class(TForm)
    Memo1: TMemo;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
type
  Tsort = array [1..10] of integer;
var
  Form1: TForm1;

implementation

{$R *.dfm}

function Partition(var Arr: Tsort; start, finish: integer) : integer;
var x, i, j: integer;
begin
  x := Arr[start];
  i := start - 1;
  j := finish + 1;
  while true do
  begin
    repeat
      dec(j);
    until (Arr[j] <= x);
    repeat
      inc(i);
    until (Arr[i] >= x);
    if i < j then
    begin
      Arr[i] := Arr[i] + Arr[j];
      Arr[j] := Arr[i] - Arr[j];
      Arr[i] := Arr[i] - Arr[j];
    end
    else
    begin
      result := j;
      break;
    end;
  end;
end;

procedure QuickSort(var Arr: Tsort; start, finish: integer);
var part: integer;
begin
  if start < finish then
  begin
    part := Partition(Arr, start, finish);
    Quicksort(Arr, start, part);
    QuickSort(Arr, part + 1, finish);
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  sort: Tsort;
  i: integer;
begin
  randomize;
  for i := 1 to length(sort) do
  begin
    sort[i] := random(50);
    memo1.Lines.Add(inttostr(sort[i]));
  end;
  memo1.Lines.Add('');
  QuickSort(sort, 1, length(sort));
  for i := 1 to length(sort) do
    memo1.Lines.Add(inttostr(sort[i]));
end;

end.

Последний раз редактировалось ACE Valery; 13.04.2012 в 14:02. Причина: пере прочел правила форума=\
OverTeam вне форума Ответить с цитированием
Старый 13.04.2012, 15:04   #2
RinatV
Пользователь
 
Регистрация: 06.07.2009
Сообщений: 27
По умолчанию

Написали бы хоть какая ошибка конкретно, случайно не
[Fatal Error] Unit1.pas(7): File not found: 'Winapi.Windows.dcu'
который можно скопировать Ctrl-C когда ошибка выделена синим

тогда нужно удалить префиксные Winapi. и другие, потом уже убрать дубликаты имен модулей в uses

или же может быть



тогда прежде чем копипастить текст нужно закинуть на форму на форму кнопку и мемо с именами Button1 Memo1

а так все норм работает вроде, просто версия дельфи другая
Изображения
Тип файла: jpg ErrorDelphi.JPG (10.5 Кб, 68 просмотров)
RinatV вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++: не могу разобраться...=( Алиса Ростова Помощь студентам 0 03.12.2011 15:27
не могу разобраться as1212 Помощь студентам 0 15.11.2011 21:10
Не могу разобраться Xoksik Общие вопросы по Java, Java SE, Kotlin 4 27.03.2011 23:36
не могу разобраться! Apsalon Microsoft Office Excel 1 28.12.2010 18:54
Не могу разобраться!!! Яна Сафронова Помощь студентам 11 12.05.2010 17:56