Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.08.27;
Скачать: CL | DM;

Вниз

сортировка методом Шелла   Найти похожие ветки 

 
Nostalgia ©   (2010-04-12 14:08) [0]

Мне нужно с помощью Эдита ввести целочисленный масив, который должен отобразится в мемо1. потом этот масив должен пройти сортировку методом Шелла и отобразится в Мемо2. я новичек и не уверена, что правильно работаю с масивом и считываю его с Эдита как масив, а не как обычный текст. Пожалуйста, исправьте ошибки или укажите на них мне, чтоб я знала, что не так.unit Unit1;

interface

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

const
 n=7;

type
 TForm1 = class(TForm)
   Memo1: TMemo;
   Memo2: TMemo;
   Label1: TLabel;
   Label2: TLabel;
   Button1: TButton;
   Button2: TButton;
   Button3: TButton;
   Edit1: TEdit;
   procedure Button3Click(Sender: TObject);
   procedure Button1Click(Sender: TObject);
   procedure Button2Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;
type
 SEQ=array[1..N] of integer;
  procedure Sort;

var
 Form1: TForm1;
 i:byte;
  a:SEQ;
implementation

{$R *.dfm}

procedure TForm1.Button3Click(Sender: TObject);
begin
 Form1.Close;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
 s:Ansistring;
 z:byte;
begin
  z:=1;
  for i:=1 to n do
  s:=s+Edit1.Text[i];
  if Edit1.Text[i]=" " then begin
                               a[z]:=StrToInt(s);
                                s:="";
                                z:=z+1;
                             end;
  Memo1.Lines.Add(Edit1.Text);

end;

procedure TForm1.Button2Click(Sender: TObject);
begin
 Sort;
 for i:=1 to n do
 Memo1.Lines.Add(inttostr(a[i]));
end;

procedure Sort( var a:seq);
var
 d,i,t:integer;
 k:boolean;
begin
 d:=N div 2;
   begin
     k:=true;
     while k do
       begin
         k:=false;
         i:=1;
         for i:=1 to N-d do
           begin
             if a[i]>a[i+d] then begin
             t:=a[i];
             a[i]:=a[i+d];
             a[i+d]:=t;
             k:=true;
           end;
         d:=d div 2;

end;
end;
end;
end;
end.


 
Как-то так   (2010-04-12 14:24) [1]

 z := 1;
 s := "";
 for i := 1 to Length(Edit1.Text) do
   if Edit1.Text[i] = " " then
     if TryStrToInt(s, a[z]) then
     begin
       Memo1.Lines.Add("a[" + IntToStr(z) + "] = " + s);
       s := "";
       z := z + 1;
     end
     else
       Memo1.Lines.Add("Errorneous integer: " + s);
   else
    s := s + Edit1.Text[i];


 
12 ©   (2010-04-12 14:25) [2]


>   for i:=1 to n do
>   s:=s+Edit1.Text[i];

-- цикл закончен, потому ерунда, проще s := Edit1.Text;

 if Edit1.Text[i]=" " then begin -- j уже неопределена, т.к. -- цикл закончен
далее лень смотреть

бардак..


 
Игорь Шевченко ©   (2010-04-12 14:28) [3]

ура, стеки кончились


 
Как-то так   (2010-04-12 14:41) [4]

ура, стеки кончились

*С ужасом в голосе* А если не кончились? А если еще одна напасть?


 
12 ©   (2010-04-12 14:51) [5]

IDs : array of integer;

showmessage("А если ты после последнего числа не поставил зпт и вводишь всякую фигню - это твои проблемы. Поехали, смертнички :)");
sIDs := Edit1.Text;
 s:="";
 for i := 1 to Length(sIDs) do
 begin
   if sIDs[i] <> "," then s := s + sIDs[i]
   else begin
     SetLength(IDs, length(IDs) + 1);
     IDs[length(IDs)-1] := StrToInt(s);
     s := "";
   end;
 end;


 
Jeer ©   (2010-04-12 15:40) [6]

"И все бросились спасать дэвушку, которая даже ничего не пообещала" (С)


 
Dennis I. Komarov ©   (2010-04-12 15:48) [7]


> Jeer ©   (12.04.10 15:40) [6]

И оперы, "как надо задавать вопросы" :)



Страницы: 1 вся ветка

Текущий архив: 2010.08.27;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.158 c
2-1266411889
Сосиськин
2010-02-17 16:04
2010.08.27
Помогите разобрать с запросом


15-1269981002
Юрий
2010-03-31 00:30
2010.08.27
С днем рождения ! 31 марта 2010 среда


15-1268353325
Сергей
2010-03-12 03:22
2010.08.27
Помогите пожалуйста выучить физику!


15-1267474353
Правильный$Вася
2010-03-01 23:12
2010.08.27
Настроить монитор под свои глаза


15-1263472383
xayam
2010-01-14 15:33
2010.08.27
DMSearch