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

Вниз

заполнить массив   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.045 c
2-1131628594
markers
2005-11-10 16:16
2005.11.27
Выполнить консольную команду и вернуть результат?


3-1129176875
Рафик
2005-10-13 08:14
2005.11.27
MSSQL Dependencies


14-1130900535
КаПиБаРа
2005-11-02 06:02
2005.11.27
Каким должен быть "идеальный" новичек (вопрошающий) и


4-1127313146
Still Swamp
2005-09-21 18:32
2005.11.27
Как сделать окошко которое не будет на себя переключать фокус


2-1131605582
начиннающий
2005-11-10 09:53
2005.11.27
DynamicSkinForm