Лабораторная 7
.docxДана матрица С(n, n). Вычислить сумму и число положительных элементов матрицы, находящихся над главной диагональю и на ней.
procedure TForm1.Button1Click(Sender: TObject);
var i, j: integer;
begin
Randomize;
for i := 0 to StringGrid1.RowCount - 1 do
for j := 0 to StringGrid1.ColCount - 1 do
StringGrid1.Cells[j, i] := IntToStr(Random(100) - 30);
end;
procedure TForm1.Button2Click(Sender: TObject);
var i, j, s, k, n: integer;
c: array[0..100, 0..100] of integer;
begin
n := StringGrid1.ColCount - 1;
for i := 0 to n do
for j := 0 to n do
c[i, j] := StrToInt(StringGrid1.Cells[j, i]);
s := 0;
k := 0;
for i := 0 to n do
for j := i to n do
if c[i, j] > 0 then
begin
s := s + c[i, j];
k := k + 1;
end;
Label3.Caption := 'Сумма элементов над главной диагональю и на ней: ' + IntToStr(s);
Label4.Caption := 'Число таких элементов: ' + IntToStr(k);
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
StringGrid1.RowCount := SpinEdit1.Value;
StringGrid1.ColCount := SpinEdit1.Value;
end;
Дана матрица В(n, n). Заменить элементы матрицы, кратные одновременно 3 и 5, на 100, остальные элементы заменить на 50.
procedure TForm1.Button1Click(Sender: TObject);
var i, j: integer;
begin
Randomize;
for i := 0 to StringGrid1.RowCount - 1 do
for j := 0 to StringGrid1.ColCount - 1 do
StringGrid1.Cells[j, i] := IntToStr(Random(100) - 30);
end;
procedure TForm1.Button2Click(Sender: TObject);
var i, j, n: integer;
b: array[0..100, 0..100] of integer;
begin
n := StringGrid1.ColCount - 1;
for i := 0 to n do
for j := 0 to n do
b[i, j] := StrToInt(StringGrid1.Cells[j, i]);
for i := 0 to n do
for j := 0 to n do
if (b[i, j] mod 3 = 0) and (b[i, j] mod 5 = 0) then
b[i, j] := 100
else
b[i, j] := 50;
StringGrid2.RowCount := StringGrid1.RowCount;
StringGrid2.ColCount := StringGrid1.ColCount;
for i := 0 to n do
for j := 0 to n do
StringGrid2.Cells[j, i] := IntToStr(b[i, j]);
end;
procedure TForm1.SpinEdit1Change(Sender: TObject);
begin
StringGrid1.RowCount := SpinEdit1.Value;
StringGrid1.ColCount := SpinEdit1.Value;
end;