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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 15.05.2011, 13:24   #1
ilushka2306
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 48
По умолчанию Пирамидальная сортировка

Нужно сделать пирамидальную сортировку в Delphi, подскажите с чего начать, и по какому принципу делать, а также какие элементы лучше использовать для ввода начальных элементов, а затем и вывод самой пирамиды.
ilushka2306 вне форума Ответить с цитированием
Старый 16.05.2011, 00:26   #2
ilushka2306
Пользователь
 
Регистрация: 19.06.2010
Сообщений: 48
По умолчанию

Вот набросал немного, но возникают ошибки:


а форма


Код:
unit Unit2;

interface

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

type
  TForm2 = class(TForm)
    Edit1: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    Memo1: TMemo;
    SpinButton1: TSpinButton;
    StringGrid1: TStringGrid;
    Label1: TLabel;
    Button4: TButton;
    procedure Button3Click(Sender: TObject);
    procedure SpinButton1UpClick(Sender: TObject);
    procedure SpinButton1DownClick(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;
  n,i:integer;
  a:array[0..10]of integer;
implementation

{$R *.dfm}


procedure TForm2.Button1Click(Sender: TObject);
begin
randomize;
for i := 0 to 10 do
  a[i]:=random(10);
  i:=i+1;

for i := 0 to StringGrid1.ColCount-1 do
  StringGrid1.Cells[i,1]:=IntToStr(a[i]);
  i:=i+1;
  memo1.Lines.Clear;
  for i := 0 to n-1 do
  memo1.Lines.Add(inttostr(a[i]));
  i:=i+1;
end;

procedure TForm2.Button2Click(Sender: TObject);
var
p,c:integer;
s:array[1..10]of integer;
begin
for i := 0 to n do
p:=a[i];
c:=a[i+1];
if a[i]<a[i+1] then
    s[i]:= c;
    s[i+1]:= p
else
  s[i]:=p;
  s[i+1]:=c;
i:=i+1;
for i := 0 to do
  memo1.Lines.Add(IntToStr(s[i]));
  i:=i+1;
end;

procedure TForm2.Button3Click(Sender: TObject);
begin
application.Terminate;
end;


procedure TForm2.Button4Click(Sender: TObject);
begin
  memo1.Lines.Clear;
end;

procedure TForm2.SpinButton1DownClick(Sender: TObject);
begin
n:=StrToInt(edit1.Text);
if n >2 then
n:=n-1
else
n:=2;
stringGrid1.ColCount:=n;
edit1.Text:= IntToStr(n);
end;


procedure TForm2.SpinButton1UpClick(Sender: TObject);
begin
n:=StrToInt(edit1.Text);
if n<=9 then
n:=n+1
else
n:=10;
stringGrid1.ColCount:=n;
edit1.Text:= IntToStr(n);
end;

end.
и еще в массиве s[i]хранятся какие то совсем другие числа, не те которые генерируются
Помогите пожалуйста исправить

Последний раз редактировалось ilushka2306; 16.05.2011 в 00:47.
ilushka2306 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка массива методами предсортировки и слияния, и пирамидальная сортировка. lenny_24 Помощь студентам 2 17.04.2011 18:57
Пирамидальная сортировка nunj39 Общие вопросы C/C++ 0 21.06.2010 18:07
Пирамидальная сортировка QuadroX Фриланс 7 26.05.2010 20:16
Пирамидальная сортировка GaLiof Помощь студентам 1 28.03.2010 12:24
Пирамидальная Сортировка super-leon Помощь студентам 0 02.10.2009 20:52