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

Delphi Sources



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

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.08.2009, 13:23
kaizer131 kaizer131 вне форума
Начинающий
 
Регистрация: 01.11.2008
Сообщения: 112
Репутация: 10
По умолчанию перемешать массив

Доброго времени суток уважаемые форумчане !
Я хочу перемешать числа в массиве (для того, чтоб получился неупорядоченный массив неповторяющихся чисел)
делаю так :
Создаю упорядоченный массив
Код:
procedure TForm1.FormCreate(Sender: TObject);
var
i,a:integer;
begin
 a:=1;
for I := 0 to n-1   do
  begin
   osn_mass[i]:=a;
   a:=a+1;
  end;
end;

затем при показе формы перемешиваю его и вывожу в label :
Код:
procedure TForm1.FormShow(Sender: TObject);
var
i,tmp,j,z:integer;
s:string;
begin
for I := 0 to n-1  do
begin
Randomize;
j:=Random(n);
z:=Random(n);
tmp:=osn_mass[z];
osn_mass[z]:=osn_mass[j];
osn_mass[j]:=tmp;
end;
 s:='';
for I := 0 to n-1  do
  begin
   s:=s+ Inttostr( osn_mass[i])+' ';
  end;
   form1.Label1.Caption:= s;
end;
При компиляции выдаёт ошибку
First chance exception at $7C81EB33. Exception class EAccessViolation with message 'Access violation at address 00465B9D in module '....exe'. Read of address 0000037C'. Process .....exe (15052)
и указывает на строку form1.Label1.Caption:= s;
Насколько я понимаю проблемы с памятью, при прогоне програппы по строкам (F7) обратил внимание что последний элемент массива всегда принимает значение 0 , и при обращении к нему возможно возникает ошибка .
Подскажите в чём может быть проблема ?
PS: Изменение условия цикла на for I := 1 to n do и от for I := 1 to n-1 do не помогло
Ответить с цитированием
 


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

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