Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.04.2011, 22:23
gralex gralex вне форума
Прохожий
 
Регистрация: 15.04.2009
Сообщения: 14
Репутация: 10
Сообщение Ошибка "array type required"

Здравствуйте.
Нужно заполнить массив не повторяющимися, рандомными значениями из диапазона от 1 до значения, задаваемого переменной. В результате получаю ошибку, указанную в куске кода ниже.
Искал решение в интернетах, но не нашел. Помогите, укажите в чем ошибка. (Перевод ошибки знаю, значение этого сообщения тоже, исправить не получается)

Код:
var
...
  NQuest, MQuest:Integer;
  N:array[1..500] of Integer;
implementation

{$R *.dfm}

...

procedure TForm1.Button2Click(Sender: TObject);
var i,j,k:integer;
begin
  For i:=1 to MQuest do
  begin
    N[i]:=Random[NQuest]; //array type required
    For j:=1 to i-1 do
    If N[i]=N[j] then
    i:=i-1;
  end;
Ответить с цитированием
  #2  
Старый 07.04.2011, 22:25
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

N[i]:=1+Random(NQuest-1);
Ответить с цитированием
  #3  
Старый 07.04.2011, 22:32
gralex gralex вне форума
Прохожий
 
Регистрация: 15.04.2009
Сообщения: 14
Репутация: 10
По умолчанию

А можете еще объяснить, из-за чего эта ошибка именно в этом случае?
Ответить с цитированием
  #4  
Старый 07.04.2011, 22:35
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

потому что функция Random возвращает не массив чисел а всего одно число
Ответить с цитированием
  #5  
Старый 07.04.2011, 22:36
Assistant Assistant вне форума
Продвинутый
 
Регистрация: 20.02.2011
Адрес: там где правят идиоты
Сообщения: 603
Версия Delphi: 7
Репутация: выкл
По умолчанию

в том что функции и процедуры должны принимать параметры в круглых скобках, а не в квадратных. Через квадратные скобки - это обращение к элементу массива.
__________________
взялся из неоткуда, ничего не прошу, помогаю просто так
ICQ: 593977748 - стучать в случае КРАЙНЕЙ необходимости, ну, или если вы со Ставрополя

Последний раз редактировалось Assistant, 07.04.2011 в 22:39.
Ответить с цитированием
  #6  
Старый 07.04.2011, 22:38
gralex gralex вне форума
Прохожий
 
Регистрация: 15.04.2009
Сообщения: 14
Репутация: 10
По умолчанию

Ох.... Все, увидел и понял.
Спасибо огромное.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:10.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter