![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Здравствуйте, вводятся 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; Прошу, скажите чего тут не хватает?? Цикла, индексы неправильны или что?? Спасибо! Проэкт приложил |
#2
|
|||
|
|||
![]() Для начала раздели этап умножения и этап вывода результата.
во вторых, если это умножение матриц из линейной алгебры, то ныжно использовать тройной цикл Код:
for i:=1 to rowcount do begin for j:=1 to colcount do begin s[i,j]:=0; for k :=0 to ПОДСТАВЬ_САМ do s[i,j]:=s[i,j]+r[i,k]*q[k,j]; end; end; |