![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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; |