Страница 1 из 1
Вывод двумерного массива в stringgrid
Добавлено: 12.05.2016 20:15:11
Azaza
Здравствуйте.
Я вывожу массив так:
stringgrid1.Cells[j+1,i]:=floattostr(a[i,j]);
Но в учебнике по lazarus написано:
stringgrid1.Cells[i,j]:=floattostr(a[i,j]);
Почему у меня не работает второй вариант?
Re: Вывод двумерного массива в stringgrid
Добавлено: 13.05.2016 03:11:53
Снег Север
Очень содержательный вопрос...
Помедитировав над своим хрустальным шаром, могу предположить, что в вашем stringgrid1 есть фиксированный столбец, от того данные приходится сдвигать на единицу.
А на будущее, для получения ответа, желательно прилагать текст программы с проблемой.
Re: Вывод двумерного массива в stringgrid
Добавлено: 13.05.2016 23:43:41
resident
Снег Север писал(а):от того данные приходится сдвигать на единицу
Я тоже сначала так подумал, но там кроме того индексы поменяли местами.
Добавлено спустя 4 минуты 23 секунды:Azaza писал(а):Почему у меня не работает второй вариант?
Потому шта в примере индексы везде идут сначала i, а потом j. У вас же сначала j, а вправа как в примере i.
Azaza писал(а):stringgrid1.Cells[j+1,i]:=floattostr(a[i,j]);
И еще - если прибавляете 1, то и увеличивайте число колонок или строк, не знаю что вы там хотите, но тоже на единицу.
Re: Вывод двумерного массива в stringgrid
Добавлено: 15.05.2016 09:11:57
Azaza
Код: Выделить всё
var a: array of array of real;
i,j,m,n:integer;
procedure TForm1.Button1Click(Sender: TObject);
begin
val(inputbox('','',''),n);
val(inputbox('','',''),m);
setlength(a,n,m);
stringgrid1.RowCount:=n;
stringgrid1.ColCount:=m+1;
for i:=0 to n-1 do
for j:=0 to m-1 do begin
a[i,j]:=random(20);
stringgrid1.Cells[j+1,i]:=floattostr(a[i,j]);
end;
Это мой код.
В a[i,j] i-строки, j-колонки; В cells наоборот.
Как удаётся использовать одни и те же буквы для разных параметров?
stringgrid1.Cells[i,j]:=floattostr(a[i,j]);
Re: Вывод двумерного массива в stringgrid
Добавлено: 15.05.2016 17:53:53
resident
Azaza писал(а):Код: Выделить всё
val(inputbox('','',''),n);
val(inputbox('','',''),m);
Это что? Инициализация n/m?
Azaza писал(а):Как удаётся использовать одни и те же буквы для разных параметров?
Кхе, да как бы почти все программирование на том и строится, чтобы одно и тоже использовать для всего и вся.
Качайте сюда весь проект, потому что приведенный вами кусок "букв" вроде правильный.
Re: Вывод двумерного массива в stringgrid
Добавлено: 16.05.2016 06:20:39
Снег Север
Azaza писал(а):Как удаётся использовать одни и те же буквы для разных параметров?
Что значит "разных"? Должны совпадать тип параметра и подставляемой переменной, а какой буквой вы их обозначите не имеет значения.
Есть традиция, идущая еще от древнего фортрана, переменным целого типа давать названия из набора i,j,k,l,m,n или начинающиеся на эти буквы, но это не обязательно.