Обработка массива - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д