 
			
				14.02.2019, 16:10
			
			
			
		  
	 | 
	
		
		
		
			
			| 
			
				
				
				 Прохожий 
				
				
			 | 
			  | 
			
				
				
					Регистрация: 14.02.2019 
					
					
					Сообщения: 8
 
				Версия Delphi: Delphi 7 
					Репутация: 10 
					    
				 
				
			 | 
		 
		 
		
	 | 
	
	
	
		
			
			
				 
				Работа с квадратными матрицами
			 
			 
			
		
		
		
		Здравствуйте ! Помогите пожалуйста с задачей: 
Даны две действительные квадратные матрицы порядка n. Получить новую матрицу прибавлением к элементам каждого столбца 1-й матрицы произведения элементов соответствующих строк 2-й матрицы. 
Сидел ломал голову, вроде все сделал но в чем-то есть ошибка, числа считает не правильно.
 
	Код: 
	unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Math, StdCtrls, Spin, Grids;
type
  TForm1 = class(TForm)
    G1: TStringGrid;
    Button1: TButton;
    SpinEdit1: TSpinEdit;
    Label1: TLabel;
    G2: TStringGrid;
    Label2: TLabel;
    Label3: TLabel;
    G3: TStringGrid;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure SpinEdit1Change(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private { Private declarations }
    N : integer;
    function UMN(k : integer) : integer;
  public
    { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
 Randomize;
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
var i, j : integer;
    G    : TStringGrid;
begin
 N := SpinEdit1.Value;
 for i := 0 to ControlCount - 1 do
  if Controls[i] is TStringGrid
   then begin
         G := (Controls[i] as TStringGrid);
         G.ColCount := N;
         G.RowCount := G.ColCount;
         for j := 0 to N - 1 do
          begin
           G.Cols[j].Clear;
           G.ColWidths[j] := Round(G.RowHeights[0] * 1.5);
          end;
        end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var i, j : integer;
begin
 for i := 0 to N - 1 do
  for j := 0 to N - 1 do
   begin
    G1.Cells[j, i] := IntToStr(RandomRange(1, 10));
    G2.Cells[j, i] := IntToStr(RandomRange(1, 10));
   end;
 Button2.Enabled := true;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i, j, k : integer;
begin
 for i := 0 to N - 1 do
  begin
   k := UMN(i);
   for j := 0 to N - 1 do
     G3.Cells[j, i] := IntToStr(StrToInt(G1.Cells[j, i]) * k);
  end;
end;
function TForm1.UMN(k: integer): integer;
var i:integer;
    pr:real;
begin
   pr:=1;
   For i:=0 to G2.ColCount-1 do
      pr:=pr*StrToFloat(G2.Cells[i,1])
end;
end. 
  
		
	
		
		
		
		
		
	
		
			
			
			
			
				 
			
			
			
			
		 
		
	
	
	 |