Здравствуйте.
Я вывожу массив так:
stringgrid1.Cells[j+1,i]:=floattostr(a[i,j]);
Но в учебнике по lazarus написано:
stringgrid1.Cells[i,j]:=floattostr(a[i,j]);
Почему у меня не работает второй вариант?
Вывод двумерного массива в stringgrid
Модератор: Модераторы
- Снег Север
- долгожитель
- Сообщения: 3069
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Очень содержательный вопрос...
Помедитировав над своим хрустальным шаром, могу предположить, что в вашем stringgrid1 есть фиксированный столбец, от того данные приходится сдвигать на единицу.
А на будущее, для получения ответа, желательно прилагать текст программы с проблемой.
Помедитировав над своим хрустальным шаром, могу предположить, что в вашем stringgrid1 есть фиксированный столбец, от того данные приходится сдвигать на единицу.
А на будущее, для получения ответа, желательно прилагать текст программы с проблемой.
Снег Север писал(а):от того данные приходится сдвигать на единицу
Я тоже сначала так подумал, но там кроме того индексы поменяли местами.
Добавлено спустя 4 минуты 23 секунды:
Azaza писал(а):Почему у меня не работает второй вариант?
Потому шта в примере индексы везде идут сначала i, а потом j. У вас же сначала j, а вправа как в примере i.
Azaza писал(а):stringgrid1.Cells[j+1,i]:=floattostr(a[i,j]);
И еще - если прибавляете 1, то и увеличивайте число колонок или строк, не знаю что вы там хотите, но тоже на единицу.
Код: Выделить всё
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]);
Azaza писал(а):Код: Выделить всё
val(inputbox('','',''),n);
val(inputbox('','',''),m);
Это что? Инициализация n/m?
Azaza писал(а):Как удаётся использовать одни и те же буквы для разных параметров?
Кхе, да как бы почти все программирование на том и строится, чтобы одно и тоже использовать для всего и вся.
Качайте сюда весь проект, потому что приведенный вами кусок "букв" вроде правильный.
- Снег Север
- долгожитель
- Сообщения: 3069
- Зарегистрирован: 27.11.2007 15:14:47
- Контактная информация:
Что значит "разных"? Должны совпадать тип параметра и подставляемой переменной, а какой буквой вы их обозначите не имеет значения.Azaza писал(а):Как удаётся использовать одни и те же буквы для разных параметров?
Есть традиция, идущая еще от древнего фортрана, переменным целого типа давать названия из набора i,j,k,l,m,n или начинающиеся на эти буквы, но это не обязательно.
