![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
заполнить массив
RiP © (2005-11-12 10:58:00)а как мне заполнить числами массив я делаю
procedure SortPuz (var Arr : array of Integer; n : Integer);
var
i : Integer;
Temp : Integer;
Flag : Boolean;
begin
n:=10;
for i:=0 to n do
arr[i]:=random(100);
repeat
Flag := False;
for i := 0 to n - 1 do
if Arr [i] > Arr [i + 1] then begin
Temp := Arr [i];
Arr [i] := Arr [i + 1];
Arr [i + 1] := Temp;
Flag := True;
end;
until Flag = False;
end;
а он не пашет
Virgo_Style (2005-11-12 15:35:00) [1]При таком (еще раз бр-р) методе у тебя наверняка возникнут еще два вопроса -
Как сделать паузу - ответSleep()
и
Почему не перерисовался Edit - ответApplication.ProcessMessages;, а уже после негоSleep();
Вообще-то так не делают, конечно.
Virgo_Style (2005-11-12 15:32:00) [2]Сдается мне, что твой SortPuz не является методом формы... так что если уж хочешь делать именно так (бр-р), то либо передавай свой Edit параметром в процедуру, либо обращайся к нему так:
Form1.Edit1
RiP (2005-11-12 13:48:00) [3]for i:=0 to n do
arr[i]:=random(100);
я здесь писал но он говорит типа Edit1 не объявлен
Tonich (2005-11-12 13:36:00) [4]вот тут ты его заполняешь
for i:=0 to n do
arr[i]:=random(100);
следовательно там и показывай ))
но как тебе уже посоветовали сделай 2 процедуры, так действительно логичнее будит
RiP (2005-11-12 13:23:00) [5]сортировка пашет только где мне тут вставить процедуру на показ неотсорт массива
const n=10;
var
Form1: TForm1;
arr:array [0..10]of integer;
i:integer;
implementation
{$R *.dfm}
procedure SortPuz (var Arr : array of Integer; n : Integer);
var
i : Integer;
Temp : Integer;
Flag : Boolean;
begin
randomize;
for i:=0 to n do
arr[i]:=random(100);
repeat
Flag := False;
for i := 0 to n - 1 do
if Arr [i] > Arr [i + 1] then begin
Temp := Arr [i];
Arr [i] := Arr [i + 1];
Arr [i + 1] := Temp;
Flag := True;
end;
until Flag = False;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
edit2.text:='';
SortPuz(arr,n);
for i:=0 to n do
edit2.Text:=edit2.Text+' '+inttostr (arr[i]);
end;
end.
Virgo_Style (2005-11-12 13:17:00) [6]RiP (12.11.05 13:12) [4]
логично будет написать две процедуры,
procedure FillArray(var Arr:array of integer);
вызывать в OnClick на "заполнить массив"
и
procedure SortArray(var Arr:array of integer);
вызывать в OnClick на "сортировать массив"
Virgo_Style (2005-11-12 13:14:00) [7]RiP (12.11.05 10:58)
телепатов мало. ОЧЕНЬ мало.
где объявление массива, как вызывается процедура, какое сообщение об ошибке - нам самим придумать?
RiP (2005-11-12 13:12:00) [8]Большое спасибо, все работает!!!
вот только последнее у меня показывает отсортированный массив
а как мне увидеть Random куда вставить
edit1.Text:=edit1.Text+' '+inttostr (arr[i]);
Tonich (2005-11-12 12:53:00) [9]ну блин ты ж пишешь процедуру в которую по ссылке передается массив!!
конечно его надо объявить (что ж ты туда будешь передавать), мало того еще и задать длину...
RiP (2005-11-12 12:45:00) [10]ошибку выдает
но он ведь объявлен в формальных параметрах или его надо еще объявлять?
Tonich (2005-11-12 11:05:00) [11]а что значить
> а он не пашет
, он же что-то должен говорить ??
а ты его вообще хоть создаешь предварительно ?
SetLength(...)