Главная страница
    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.46 MB
Время: 0.06 c
11-1216809601
Dy1
2008-07-23 14:40
2010.08.27
утечки памяти. Помогите, пожалуйста


15-1269458292
@!!ex
2010-03-24 22:18
2010.08.27
Теперь банановый!... ой. то есть теперь и в книгах....


15-1269858477
12
2010-03-29 14:27
2010.08.27
xml - не так и страшен :)


15-1273179971
Германн
2010-05-07 01:06
2010.08.27
Video CD


4-1231600539
Nucer
2009-01-10 18:15
2010.08.27
LSP (Layered Service Provider)





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский