Главная страница
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.029 c
14-1130934487
Del_programmer
2005-11-02 15:28
2005.11.27
МОБИЛЫ


14-1130612804
tesseract
2005-10-29 23:06
2005.11.27
Выбор клавы


14-1131228298
alexdrob
2005-11-06 01:04
2005.11.27
Браузер отображает не все страницы.


2-1130948667
serg128
2005-11-02 19:24
2005.11.27
Правильное округление числа


14-1130915005
Saruwatari
2005-11-02 10:03
2005.11.27
Кто что знает об ипотеке поделитесь мыслями...