Решить уравнение c/n+b/l=a/m, где l,c – количество и сумма отрицательных элементов матрицы d(8,8) , расположенных выше главной диагонали;n,a – количество и сумма отрицательных элементов матрицы t(10,10) , расположенных выше главной диагонали;m,b – количество и сумма отрицательных элементов матрицыq(7,7) , расположенных выше главной диагонали. Знакопеременные массивы сформировать случайным образом. на языке паскаль.

21 Окт 2019 в 12:42
177 +1
0
Ответы
1

program negative_elements;

const
N = 8;
M = 10;
K = 7;

type
matrix = array[1..N, 1..N] of integer;
vector = array[1..N] of integer;

procedure fillRandomArray(var a: vector);
var
i: integer;
begin
for i := 1 to N do
a[i] := random(100) - 50;
end;

procedure fillRandomMatrix(var a: matrix);
var
i, j: integer;
begin
for i := 1 to N do
for j := 1 to N do
a[i, j] := random(100) - 50;
end;

function countNegativesAboveDiagonal(a: matrix): integer;
var
i, j, count: integer;
begin
count := 0;
for i := 1 to N do
for j := i + 1 to N do
if a[i, j] < 0 then
count := count + 1;
countNegativesAboveDiagonal := count;
end;

function sumNegativesAboveDiagonal(a: matrix): integer;
var
i, j, sum: integer;
begin
sum := 0;
for i := 1 to N do
for j := i + 1 to N do
if a[i, j] < 0 then
sum := sum + a[i, j];
sumNegativesAboveDiagonal := sum;
end;

var
d: matrix;
t, q: matrix;
l, c, n, a, m, b: integer;

begin
randomize;

fillRandomMatrix(d);
fillRandomMatrix(t);
fillRandomMatrix(q);

l := countNegativesAboveDiagonal(d);
c := sumNegativesAboveDiagonal(d);

n := countNegativesAboveDiagonal(t);
a := sumNegativesAboveDiagonal(t);

m := countNegativesAboveDiagonal(q);
b := sumNegativesAboveDiagonal(q);

if n <> 0 then
writeln('Solution: ', c/n + b/l:0:2, ' = ', a/m);

end.

19 Апр 2024 в 10:05
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир