Помощь - Поиск - Пользователи - Календарь
Полная версия: заполнение массива через Stringrid
Форум «Всё о Паскале» > Delphi, Assembler и другие языки. > Delphi
BananaMan
программа перемножения матриц
тремя переменными здесь уже вроде не обойтись, поэтому приходится обращаться к массивам
НО при попытке заполнить массив данными вылетает страшная ошибка в 8 строке

type vec=array of integer;
var i,j,k:integer;
a,b,res:array of vec;
begin
for i:=1 to StringGrid1.RowCount-1 do
for j:=1 to StringGrid1.ColCount-1 do
begin
a[i,j]:=StrToInt(StringGrid1.Cells[i,j]);
end;


что не так? и можно ли вобще так делать?
volvo
Прежде, чем массив заполнять, надо выделить для него место, правда?

Var a: array of array of integer;
...
SetLength(a, StringGrid1.RowCount, StringGrid1.ColCount);

должно помочь...
BananaMan
ойойой
елки
точно
забыл) blush.gif
извянитя=)
BananaMan
не получается cray.gif
посмотрите пжлст программу (умножение)
архив прикрепляю
BananaMan
и еще вопрос
можно ли это сделать без массива, и правильно ли это будет
мисс_граффити
предлагаешь по 4 модулям искать нужную процедуру и пытаться отладить?
имхо, это банальное проявление неуважения.

дальше.
делфи вывод вполне конкретную ошибку. читать не пробовал, какую?

сделать без массива при большом желании можно.
будет ли правильно - зависит от того, как сформулировано задание. с учетом, что этого мы не знаем, задай вопрос на оракул.ру.

З.Ы. судя по коду, ты абсолютно не понимаешь принципа работы с двумерными массивами. в другой теме тебе указывала на эти ошибки - и ты опять повторяешь.
циклы по строкам и столбцам должны быть связаны вполне определенным образом.

например, вот это:
for j:=1 to StringGrid1.RowCount-1 do
begin
if (StringGrid1.Cells[1,j]='') or (StringGrid2.Cells[1,j]='') then
begin
ShowMessage('Матрицы имеют незаполненные ячейки');
break;
end

-ерунда полная. ты проверишь на наличие незаполненных ячеек только первый столбец.

for i:=0 to m-1 do
for j:=0 to n-1 do
begin
a[i,j]:=StrToInt(StringGrid1.Cells[i,j]);
end;

-у стринггридов и массивов нумерация идет наоборот. если элемент массива [i,j], то у стринггрида [j,i]
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.