• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Матрицы

  • Автор темы MrVi
  • Дата начала
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

Код:
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.

Выдает ошибку:project Project1.exe raised exception class EListError with message 'List Index out of bounds(-1)'.Process stopped.use step or run to continue.
 
M

MrVi

-master-
великое значение наверное это не играет если я переделаю на i,j
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!