Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > умножение двумерных массивов


Автор: mishamusha 28.9.2014, 17:46
здравствуйте, вводятся 2 матрицы в memo1 и memo2. Размерность задается с помощью SpinEdit. Мне нужно перемножить 2 матрицы одинаковой размерности, вообщем я ввожу матрицы в мемо1 и мемо 2 но результат выходит нулевая матрица.
вот код этого участка:
Код

procedure TForm2.Button3Click(Sender: TObject);
var
   i,j:integer;
   temp:string;
begin
 
   Form3.Memo1.Clear;
   for i:=1 to rowcount do
   begin
   temp:= ' ';
   for j:=1 to colcount do
   begin
      s[i,j]:=s[i,j]+r[i,j]*q[i,j];
      temp:=temp+floattostr(s[i,j])+ ' ';
          end;
      Form3.Label1.Visible:=true;
      Form3.Label1.Caption:='A*B';
      form3.Show;
      Form3.Memo1.Lines.Add(temp);
      temp:= ' ';
 
       end;

P.s. проект приложил

Автор: mishamusha 28.9.2014, 19:29
прошу хоть кто то обьясните в чем моя проблема.. индексы не те ?? или цикла может не хватает??

Автор: drkot 28.9.2014, 20:45
пройдитесь отладчиком и посмотрите пошагово

Автор: mishamusha 28.9.2014, 21:44
Цитата(drkot @ 28.9.2014,  20:45)
пройдитесь отладчиком и посмотрите пошагово

кое что усмотрел, что не хватает еще одного цикла что то типа for k = 1 to <что-то там> do
s[i,j] := s[i,j] + r[i,k]*q[k,j]

Автор: drkot 29.9.2014, 08:02
в коде вообще не понятно, что именно Вы там делаете
Цитата(mishamusha @  28.9.2014,  18:46 Найти цитируемый пост)
    form3.Show;

зачем форму в цикле показывать?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)