Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.074 c
15-1270118822
Knight
2010-04-01 14:47
2010.08.27
Сервис и ADO


3-1221840469
andreoman
2008-09-19 20:07
2010.08.27
cxGridDBTableView, фокус и выделение ячейки


15-1265377108
vovko26
2010-02-05 16:38
2010.08.27
С чего начать?


15-1269552602
Юрий
2010-03-26 00:30
2010.08.27
С днем рождения ! 26 марта 2010 пятница


15-1263742298
@!!ex
2010-01-17 18:31
2010.08.27
Петиция Delphi for Mac OS





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский