Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Проблема со случайным заполнением массива


Автор: nyangassist 13.2.2009, 23:06
необходимо заполнить динамический массив случайными числами.
собственно, на этой простой задаче возникла проблема. код:

Код

for i := 0 to Form1.n - 1 do
                   for j := 0 to Form1.n - 1 do
                       Form3.A[i,j]:=(Random()-0.5)*200;


на последней строчке выдает ошибку:

[Pascal Error] random.pas(60): E2029 '.' expected but '(' found

может, проблема из-за того, что сам массив и его длина находятся в других модулях? или могут быть другие причины?

Автор: Christoph 13.2.2009, 23:33
пишет что ожидалась точка зато скобка найдена
а разве можно вызывать random без параметра?

Автор: SkyAngel 14.2.2009, 14:37
Цитата(THandle @  14.2.2009,  10:10 Найти цитируемый пост)
В 2009 можно,

И тогда в каком промежутке будет получено число? От какого до какого?

Автор: THandle 14.2.2009, 15:23
Насчет 7 поторопился, каюсь...)

А так насчет Random'а:

http://www.delphisources.ru/pages/faq/faq_delphi_basics/Random.php.html

Цитата(nyangassist @  13.2.2009,  23:06 Найти цитируемый пост)
на последней строчке выдает ошибку:


Последняя строчка это последняя строка в приведенном коде?

Такой код компилируется:

Код

procedure TForm1.Button1Click(Sender: TObject);
const
  n = 10;
var
  i, j: Integer;
  A: Array[0..n - 1, 0..n - 1] of Double;
begin
  for i := 0 to n - 1 do
    for j := 0 to n - 1 do
      A[i,j] := (Random - 0.5) * 200;
end;


Если Delphi 7 - то лишними были скобки после Random'а.

Автор: nyangassist 14.2.2009, 22:25
проблема решена - оказывается, я додумалась назвать сам модуль random...(
код 
Код

for i := 0 to Form1.n - 1 do
                   for j := 0 to Form1.n - 1 do
                       Form3.A[i,j]:=(System.Random()-0.5)*200;

замечательно работает)

Автор: Poseidon 15.2.2009, 00:59
Цитата(Christoph @  13.2.2009,  23:33 Найти цитируемый пост)
а разве можно вызывать random без параметра?
 
Цитата(SkyAngel @  14.2.2009,  14:37 Найти цитируемый пост)
И тогда в каком промежутке будет получено число? От какого до какого?
 Ну ребята вы даете...
Цитата
Random - функция
Генерирует последовательность целых или действительных случайных чисел

Модуль System

Объявление
function Random (Range: Integer);

Описание
Функция Random генерирует последовательность целых или действительных случайных чисел. Парметр Range не является обязательным. Если этот параметр не задан, то функция возвращает случайные действительные числа X, равномерно распределенные в интервале 0  <= X < 1.
Если в функции Random задан параметр Range, то функция возвращает случайные целые числа в диапазоне 0 <= X < Range.
 Это как бы паскаль еще smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)