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