Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Делфи _ заполнение массива через Stringrid

Автор: BananaMan 1.06.2006 18:44

программа перемножения матриц
тремя переменными здесь уже вроде не обойтись, поэтому приходится обращаться к массивам
НО при попытке заполнить массив данными вылетает страшная ошибка в 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 1.06.2006 18:48

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

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

должно помочь...

Автор: BananaMan 1.06.2006 18:52

ойойой
елки
точно
забыл) blush.gif
извянитя=)

Автор: BananaMan 1.06.2006 20:05

не получается cray.gif
посмотрите пжлст программу (умножение)
архив прикрепляю


Прикрепленные файлы
Прикрепленный файл  ________.rar ( 38.67 килобайт ) Кол-во скачиваний: 271

Автор: BananaMan 2.06.2006 0:11

и еще вопрос
можно ли это сделать без массива, и правильно ли это будет

Автор: мисс_граффити 3.06.2006 2:46

предлагаешь по 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]

Автор: sildenafil citrate generic viagr 1.11.2021 10:44

Comprar Cialis Generico En Espana Contrareembolso

Автор: how long does gabapentin stay in 9.12.2021 3:22

Discount Elocon Best Website

Автор: nishaknapp 16.01.2023 6:31

Why not settling on games that is fun and at the same time your earning. Well it'll make suspense because the game is well but dude just try it and it gave me hope while pandemic is real rn. https://techmagazines.org/4-benefits-of-free-online-games-to-casino-newbies/