Помощь - Поиск - Пользователи - Календарь
Полная версия: Проблема с массивом случайных чисел
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Делфи
nblazhko
Создал массив с помощью рандома но он выдает какие то запредельные цифры,не подскажите почему?


unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Buttons;

type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
BitBtn1: TBitBtn;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
x:array[1..3,1..3] of integer;
i,j:integer;
begin
randomize;

for i:=1 to 3 do
for j:=1 to 3 do

x[i,j]:=random(10);
for i:=0 to 2 do
for j:=0 to 2 do
StringGrid1.Cells[i,j]:=IntToStr(x[i,j]);
end;

end.
volvo
Цитата
не подскажите почему?
Ты скажи спасибо, что вообще не вылетает smile.gif

У тебя массив индексируется с 1 до 3? Чего ж ты обращаешься к индексу = 0? Там мусор (массив-то локальный, был бы глобальный - были бы нули)...
nblazhko
 
for i:=0 to 2 do
for j:=0 to 2 do
StringGrid1.Cells[i,j]:=IntToStr(x[i,j]);



Это для вывода массива в стринг грид
snopy
Попробуй так
Код

procedure TForm1.FormCreate(Sender: TObject);
var
x:array[1..3,1..3] of integer;
i,j:integer;
begin
randomize;

for i:=1 to 3 do
for j:=1 to 3 do

x[i,j]:=random(10);
for i:=1 to 3 do
  for j:=1 to 3 do
  StringGrid1.Cells[i,j]:=IntToStr(x[i,j]);
end;
end.

nblazhko
неа,он выводит в стринг грит все элементы кроме 1 столбца и первой строки
мисс_граффити
а так?
 for i:=1 to 3 do
for j:=1 to 3 do
begin
x[i,j]:=random(10);
StringGrid1.Cells[j-1,i-1]:=IntToStr(x[i,j]);
end;
nblazhko
Вот так да работает,спасибо! smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.