Обработка массива - Free Pascal
Формулировка задачи:
День добрый, есть задачка по Паскалю, которую сдавать через час, а у меня еще долги
Если не сложно, то прошу помочь, буду вам премного благодарен
Дана матрица B[1:6,1:6] и вектор А[1:6]. Из среднеарифметических значений строк матрицы сформировать вектор C. Если минимальный элемент вектора C меньше минимального элемента вектора A, то из элементов главной диагонали матрицы сформировать вектор D. Иначе в матрице B элементы главной диагонали матрицы заменить элементами вектора A по правилу Bi,i= Ai.
Решение задачи: «Обработка массива»
textual
Листинг программы
{Дана матрица B[1:6,1:6] и вектор А[1:6]. Из среднеарифметических значений строк
матрицы сформировать вектор C. Если минимальный элемент вектора C меньше
минимального элемента вектора A, то из элементов главной диагонали матрицы
сформировать вектор D. Иначе в матрице B элементы главной диагонали матрицы
заменить элементами вектора A по правилу Bi,i= Ai}
const
n = 6;
type
matrix = array[1..n, 1..n] of real;
vector = array[1..n] of real;
function Min(x: vector): real;
var
i: integer;
mn: real;
begin
mn := x[1];
for i := 2 to n do
if x[i] < mn then
mn := x[i];
min := mn;
end;
var
B: matrix;
a, c, d: vector;
i, j: integer;
s: real;
begin
randomize;
writeln('Матрица B: ');
for i := 1 to n do
begin
s := 0;
for j := 1 to n do
begin
b[i, j] := -n div 2 + random * n;
write(b[i, j]:8:2);
s := s + b[i, j]
end;
a[i] := -n div 2 + random * n;
c[i] := s / n;
writeln;
end;
writeln('Вектор A: ');
for i := 1 to n do
write(a[i]:8:2);
writeln;
writeln('Минимальный элемент вектора A: ', min(a):8:2);
writeln('Вектор C: ');
for i := 1 to n do
write(c[i]:8:2);
writeln;
writeln('Минимальный элемент вектора C: ', min(c):8:2);
if min(c) < min(a) then
begin
for i := 1 to n do
d[i] := b[i, i];
writeln('Вектор D: ');
for i := 1 to n do
write(d[i]:8:2);
end
else
begin
writeln;
for i := 1 to n do
b[i, i] := a[i];
writeln('Измененная матрица B: ');
for i := 1 to n do
begin
for j := 1 to n do
write(b[i, j]:8:2);
writeln;
end;
end;
end.
Объяснение кода листинга программы
- Объявлены константа
n = 6, типыmatrixиvector, а также функцияMin. - Задана переменная
Bтипаmatrix, инициализированная случайными значениями. - Задана переменная
aтипаvector, инициализированная случайными значениями. - Задана переменная
cтипаvector, инициализированная случайными значениями. - Выводится матрица
B. - Выводится вектор
a. - Находится минимальный элемент вектора
aи выводится на экран. - Выводится вектор
c. - Находится минимальный элемент вектора
cи сравнивается с минимальным элементом вектораa. - Если условие выполняется, то выводится вектор
d. - Иначе, выводится измененная матрица
B.