Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 08.05.2011, 18:21
k1ng_k0ng k1ng_k0ng вне форума
Прохожий
 
Регистрация: 08.05.2011
Сообщения: 6
Репутация: 10
Восклицание Реализация сортировки включением (вставками) и Прочесыванием. (Помогите, виснет)

Доброго времени суток, господа!
Такая проблемка нужно реализовать 2 метода сортировки чтоб результаты выводились в стрнггрид а в лейблы выводилсь количество перестановок для сровнения.
Я зделал генерацию и открытие файла содержащего масив а с сортировкой проблемка, подскажите пожалуйста.
Виснет после нажатия кнопки метода включением.

Код:
unit Grishman1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls, Grids;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Label2: TLabel;
    Label3: TLabel;
    StringGrid2: TStringGrid;
    Bevel1: TBevel;
    Label4: TLabel;
    StringGrid3: TStringGrid;
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Button5: TButton;
    procedure Button5Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure vkluch(var a: array of integer;n:integer);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
const
n=1000;
var
  Form1: TForm1;
  f:textfile;
  a:array[1..n] of integer;
  i:integer;
  S:string;

implementation

{$R *.dfm}
procedure tform1.vkluch(var a: array of integer;n:integer);
var
j,i,cv,mv:integer;
f:textfile;
B: array [0..10000] of integer;
begin
if OpenDialog1.Execute then begin
assignfile(f,opendialog1.FileName);
reset(f);
i:=1;
while not eof(f) do begin
for i:=0 to n do begin
j:=i;
cv:=0;
mv:=0;
while (j>1) and (B[j-1]>A[i]) do begin
B[j]:=B[j-1];
j:=j-1;
end;
B[j]:=A[i];
end;
for i:=0 to N do begin
A[i]:=b[i];
stringgrid2.cells[i,0]:=inttostr(a[i]);
end;
end;
end;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
stringgrid1.colcount:=n+1;

if savedialog1.execute then
  begin
  assignfile(f,savedialog1.filename);
  rewrite(f);

  randomize;
  for i:=1 to n do begin
   a[i]:=random(1000)-500;

  writeln(f,a[i]);
  end; end;
  closefile(f);
  end;


procedure TForm1.Button1Click(Sender: TObject);
begin
stringgrid1.colcount:=n+1;
stringgrid1.rowcount:=0;
  if opendialog1.Execute then begin
  assignfile(f,opendialog1.FileName);
  for i:=1 to n do begin
  stringgrid1.cells[i,0]:=inttostr(a[i]);
  reset(f);
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
stringgrid2.colcount:=n+1;
stringgrid2.rowcount:=0;
vkluch(a,n);

end;

end.

Изначально код был другим (процедура включ) но все равно не работало
Обясните пожалуйста как реализовать ети методы в интернете куча примеров но я немогу понять как оно работает
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:22.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025