Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2007, 18:10   #11
WhoThenNow
 
Регистрация: 26.08.2007
Сообщений: 7
По умолчанию

В общем вырезал ненужное, вот аналог код, который не хочет работать.. Локальных массивов вроде не обьявлял. Проблема все та же...
----------------------
type
TDynaArray=array of integer;
var
Form1: TForm1;
B:tdynaarray;

procedure Zapolnenie(A:TDynaArray);
var I:integer;
begin
i:=5;
setlength(A,i);
randomize;
for i:=0 to 4 do
begin
A[i]:=random(100);
end;
end;

procedure Vivod(A:TDynaArray);
var i:integer;
begin
ShowMessage(FloatToStr(Length(A)));
for i:=0 to 4 do
begin
ShowMessage(FloatToStr(A[i]));
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Zapolnenie(B);
Vivod(B);
end;
-----------------------
WhoThenNow вне форума Ответить с цитированием
Старый 17.10.2007, 18:46   #12
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

поменяй FloatToStr на IntToStr

P.S. а теперь подумай сам какие могут быть значения, если длина нулевая? на первой же итерации цикла была бы ошибка доступа к несуществующему элементу
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 17.10.2007 в 18:53.
mutabor вне форума Ответить с цитированием
Старый 17.10.2007, 19:22   #13
WhoThenNow
 
Регистрация: 26.08.2007
Сообщений: 7
По умолчанию

Вот это я не могу понять, почему длина нулевая?
Я ведь присвоил длину через setlength массиву "B" в первой процедуре...
Я же присвоил глобальному массиву длину и забил значениями.

Последний раз редактировалось WhoThenNow; 17.10.2007 в 19:25.
WhoThenNow вне форума Ответить с цитированием
Старый 17.10.2007, 19:35   #14
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

хотя, я совсем забыл, еще надо объявлять так
procedure Zapolnenie(var A:TDynaArray);
процедуру вывода оставь как есть
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог

Последний раз редактировалось mutabor; 17.10.2007 в 19:43.
mutabor вне форума Ответить с цитированием
Старый 17.10.2007, 19:47   #15
WhoThenNow
 
Регистрация: 26.08.2007
Сообщений: 7
По умолчанию

Во! Спасибо..
WhoThenNow вне форума Ответить с цитированием
Старый 17.10.2007, 19:56   #16
mutabor
Телепат с дипломом
Старожил
 
Аватар для mutabor
 
Регистрация: 10.06.2007
Сообщений: 4,929
По умолчанию

еще так можно (это так для общего развития)
Код:
function Zapolnenie: TDynaArray;
var 
I:integer;
A:TDynaArray
begin
i:=5;
setlength(A,i);
randomize;
for i:=0 to 4 do
  begin
  A[i]:=random(100);
  end;
Result:=A;
end;

B:=Zapolnenie;
The future is not a tablet with a 9" screen no more than the future was a 9" black & white screen in a box. It’s the paradigm that survives. (Kroc Camen)
Проверь себя! Онлайн тестирование | Мой блог
mutabor вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив Айвенго PHP 2 22.02.2008 16:34
Массив.С++ bloo[d] Помощь студентам 1 13.01.2008 14:55
массив! Jodu Помощь студентам 2 11.01.2008 20:59
Массив xxxPascalxxx Помощь студентам 10 05.01.2008 16:19
Массив Snake_ua Помощь студентам 2 15.10.2007 07:04