M
MrVi
Помогите дописать программу,пожалуйта!
Буду очень блогодарен!
Сама задача:
Составить программу для вычесления элементов матрицы С={cij} являющейся суммой матриц A={aij} и B={bij}.Каждый элемент матрицы С вцысисляется по формуле cij=aij+bij i,j=1,2,...n,причем матрица А задана,а элементы матрицы В вычисляются по формуле:
bij=aij,если aij>=0
bij=1,если aij<0
Исходные данные n=4:
A=3.0 0.0 1.0 2.0
3.0 -1.1 2.0 1.0
-1.0 3.0 2.0 1.0
1.0 3.0 2.0 -2.0
Выдает ошибкуroject Project1.exe raised exception class EListError with message 'List Index out of bounds(-1)'.Process stopped.use step or run to continue.
Буду очень блогодарен!
Сама задача:
Составить программу для вычесления элементов матрицы С={cij} являющейся суммой матриц A={aij} и B={bij}.Каждый элемент матрицы С вцысисляется по формуле cij=aij+bij i,j=1,2,...n,причем матрица А задана,а элементы матрицы В вычисляются по формуле:
bij=aij,если aij>=0
bij=1,если aij<0
Исходные данные n=4:
A=3.0 0.0 1.0 2.0
3.0 -1.1 2.0 1.0
-1.0 3.0 2.0 1.0
1.0 3.0 2.0 -2.0
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Label1: TLabel;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
StringGrid3: TStringGrid;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
Const
N=9;
var A,B,C:Array[0..N,0..N] of real;
i,j:Integer;
begin
for i:=0 to N-1 do
for j:=0 to N-1 do begin
A[i,j]:=strtofloat(stringgrid1.Cells[j-1,i-1]);
if A[i,j]>=0 then
B[i,j]:=A[i,j]
else if A[i,j]<0 then
B[i,j]:=1;
stringgrid2.Cells[j-1,i-1]:=floattostr(B[i,j]);
C[i,j]:=A[i,j]+B[i,j];
stringgrid3.Cells[j-1,i-1]:=floattostr(C[i,j]);
end;
end;
end.
Выдает ошибкуroject Project1.exe raised exception class EListError with message 'List Index out of bounds(-1)'.Process stopped.use step or run to continue.