В зависимости от местоположения максимального элемента, домножить матрицу на 10 или сформировать массив - Pascal
Формулировка задачи:
дана вещественная матрица A(n*n). Если максимальный элемент матрицы находится на главной диагонали или выше её то все элементы матрицы домножить на 10. в противном случае получить одномерную матрицу
Решение задачи: «В зависимости от местоположения максимального элемента, домножить матрицу на 10 или сформировать массив»
textual
Листинг программы
const n = 6;
var a: array[1..n, 1..n] of real;
b: array[1..n*n] of real;
i, j, imax, jmax: integer;
begin
randomize;
imax := 1;
jmax := 1;
writeln('Исходная матрица:');
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := 198 * random - 99;
write(a[i, j]:10:4);
if a[imax, jmax] < a[i, j]
then begin
imax := i;
jmax := j
end
end;
writeln
end;
writeln('Максимальный элемент матрицы: A[', imax, ', ', jmax, '] = ', a[imax, jmax]:0:4);
if jmax >= imax
then begin
if imax = jmax
then writeln('Максимальный элемент матрицы находится на главной диагонали')
else writeln('Максимальный элемент матрицы находится выше главной диагонали');
writeln('Все элементы матрицы умножены на 10:');
for i := 1 to n do
begin
for j := 1 to n do
begin
a[i, j] := a[i, j] * 10;
write(a[i, j]:10:3)
end;
writeln
end
end
else begin
writeln('Максимальный элемент матрицы находится ниже главной диагонали');
for i := 1 to n do
for j := 1 to n do
b[(i - 1) * n + j] := a[i, j];
writeln('Одномерный массив:');
for i := 1 to n * n do write(b[i]:10:4)
end;
readln
end.
Объяснение кода листинга программы
- Объявление переменных:
n- константа, равная 6.a- двумерный массив размером n x n для хранения вещественных чисел.b- одномерный массив размером n * n для хранения вещественных чисел.i, j, imax, jmax- целочисленные переменные.
- Инициализация матрицы:
- Выполняется инициализация матрицы
aслучайными вещественными числами в диапазоне от -99 до 99.
- Выполняется инициализация матрицы
- Поиск максимального элемента:
- Происходит обход всех элементов матрицы
aс целью найти максимальный элемент. - Для каждого элемента матрицы проверяется, является ли он максимальным. Если находится новый максимальный элемент, его индексы запоминаются.
- Происходит обход всех элементов матрицы
- Вывод информации о максимальном элементе:
- Выводится информация о максимальном элементе матрицы (его значение и индексы).
- Определяется местоположение максимального элемента относительно главной диагонали матрицы.
- Умножение всех элементов матрицы на 10:
- Если максимальный элемент находится на главной или выше диагонали, все элементы матрицы умножаются на 10.
- Если максимальный элемент находится ниже диагонали, матрица
aпреобразуется в одномерный массивb.
- Вывод результата:
- Выводится преобразованная матрица (если максимальный элемент находится на или выше диагонали) или одномерный массив
b(если максимальный элемент находится ниже диагонали).
- Выводится преобразованная матрица (если максимальный элемент находится на или выше диагонали) или одномерный массив
- Ожидание ввода пользователя.