Есть матрица(случайная) нужно вывести кроме нее (StringGrid1) StringGrid2!
В которой нужно вывести сумму элементов которые находятся ниже главной диагонали!
Я сделал программу в которой подчитывается и записывается сумма елементов каждого столбца! - что мне нужно изменить и что добавить,что бы подчитать сумму лишь тех элементов что находятся
ниже главной диагонали!
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
Button3: TButton;
Label3: TLabel;
StringGrid2: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var c,r,n:byte;s:integer;
begin
Randomize;
n:=strtoint(edit1.text);
with Stringgrid1 do
begin
inc(n);
colcount:=n;
rowcount:=n;
width:=defaultcolwidth*(n+1);
height:=defaultrowheight*(n+1);
cells[0,0]:='№';
for c:=1 to colcount do
cells[c,0]:=inttostr(c);
for r:=1 to rowcount do
cells[0,r]:=inttostr(r);
for c:=1 to colcount do
for r:=1 to rowcount do
Cells[c,r]:=inttostr(Random(10));
end;
with Stringgrid2 do
begin
colcount:=n;
rowcount:=2;
width:=defaultcolwidth*(n+1);
cells[0,0]:='s\№';
for c:=1 to colcount do
cells[c,0]:=inttostr(c);
cells[0,1]:='Sum';
end;
for r:=1 to n-1 do
begin
s:=0;
for c:=1 to n-1 do
s:=s+strtoint(stringgrid1.Cells[r,c]);
stringgrid2.Cells[r,1]:=inttostr(s);
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
end.
[/code]