Форум: "Начинающим";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Вниззаполнить массив Найти похожие ветки
← →
RiP (2005-11-12 10:58) [0]а как мне заполнить числами массив я делаю
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;
а он не пашет
← →
Tonich © (2005-11-12 11:05) [1]а что значить
> а он не пашет
, он же что-то должен говорить ??
а ты его вообще хоть создаешь предварительно ?
SetLength(...)
← →
RiP (2005-11-12 12:45) [2]ошибку выдает
но он ведь объявлен в формальных параметрах или его надо еще объявлять?
← →
Tonich © (2005-11-12 12:53) [3]ну блин ты ж пишешь процедуру в которую по ссылке передается массив!!
конечно его надо объявить (что ж ты туда будешь передавать), мало того еще и задать длину...
← →
RiP (2005-11-12 13:12) [4]Большое спасибо, все работает!!!
вот только последнее у меня показывает отсортированный массив
а как мне увидеть Random куда вставить
edit1.Text:=edit1.Text+" "+inttostr (arr[i]);
← →
Virgo_Style © (2005-11-12 13:14) [5]RiP (12.11.05 10:58)
телепатов мало. ОЧЕНЬ мало.
где объявление массива, как вызывается процедура, какое сообщение об ошибке - нам самим придумать?
← →
Virgo_Style © (2005-11-12 13:17) [6]RiP (12.11.05 13:12) [4]
логично будет написать две процедуры,procedure FillArray(var Arr:array of integer);
вызывать в OnClick на "заполнить массив"
иprocedure SortArray(var Arr:array of integer);
вызывать в OnClick на "сортировать массив"
← →
RiP (2005-11-12 13:23) [7]сортировка пашет только где мне тут вставить процедуру на показ неотсорт массива
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.
← →
Tonich © (2005-11-12 13:36) [8]вот тут ты его заполняешь
for i:=0 to n do
arr[i]:=random(100);
следовательно там и показывай ))
но как тебе уже посоветовали сделай 2 процедуры, так действительно логичнее будит
← →
RiP (2005-11-12 13:48) [9]for i:=0 to n do
arr[i]:=random(100);
я здесь писал но он говорит типа Edit1 не объявлен
← →
Virgo_Style © (2005-11-12 15:32) [10]Сдается мне, что твой SortPuz не является методом формы... так что если уж хочешь делать именно так (бр-р), то либо передавай свой Edit параметром в процедуру, либо обращайся к нему так:
Form1.Edit1
← →
Virgo_Style © (2005-11-12 15:35) [11]При таком (еще раз бр-р) методе у тебя наверняка возникнут еще два вопроса -
Как сделать паузу - ответSleep()
и
Почему не перерисовался Edit - ответApplication.ProcessMessages;
, а уже после негоSleep();
Вообще-то так не делают, конечно.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.012 c