Получить новый массив путем деления всех элементов данного массива на ее больший по модулю элемент. - Turbo Pascal
Формулировка задачи:
4. Дан действительный массив размерностью n*m, в которой не все элементы равны нулю. Получить новый массив путем деления всех элементов данного массива на ее больший по модулю элемент.
Решение задачи: «Получить новый массив путем деления всех элементов данного массива на ее больший по модулю элемент.»
textual
Листинг программы
uses crt;
const m=10; n=5;
var a,b:array [1..m,1..n] of real;
i,j:integer;
max:real;
begin
clrscr;
Writeln('Исходная матрица: ');
max:=0;
For i:=1 to m do
begin
For j:=1 to n do
begin
randomize;
a[i,j]:=random*50-20;
write(a[i,j]:8:3);
if abs(a[i,j])>max then max:=a[i,j];
end;
writeln;
end;
Writeln;
Writeln('Новая матрица: ');
For i:=1 to m do
begin
For j:=1 to n do
begin
a[i,j]:=a[i,j]/max;
write(a[i,j]:8:3);
end;
writeln;
end;
readkey;
end.
Объяснение кода листинга программы
- В начале кода подключается библиотека crt, которая необходима для работы с функцией randomize.
- Затем определяются две константы m и n, которые задают размеры исходной и новой матрицы соответственно.
- Далее объявляются переменные a, b, i и j. Переменная a представляет собой матрицу размером m x n, в которой будут храниться значения новой матрицы. Переменная b используется для хранения результата деления элементов матрицы на максимальное значение.
- После этого выполняется инициализация переменной max, которая будет хранить максимальное значение из элементов матрицы.
- Затем начинается цикл, который проходит по каждому элементу исходной матрицы.
- Внутри первого цикла выполняется итерация по каждому элементу второго столбца исходной матрицы.
- Для каждого элемента второго столбца вызывается функция randomize, которая генерирует случайное число в диапазоне от -20 до 20.
- Полученное случайное число присваивается элементу матрицы a[i,j].
- Выводится значение элемента a[i,j] с помощью функции write.
- Если полученное случайное число больше текущего максимального значения, то обновляем значение переменной max.
- По завершении внутреннего цикла первого цикла выводится символ новой строки.
- Затем начинается второй цикл, который проходит по каждому элементу исходной матрицы.
- Внутри второго цикла выполняется итерация по каждому элементу первого столбца исходной матрицы.
- Для каждого элемента первого столбца вызывается функция randomize, которая генерирует случайное число в диапазоне от -20 до 20.
- Полученное случайное число присваивается элементу матрицы a[i,j].
- Выводится значение элемента a[i,j] с помощью функции write.
- Если полученное случайное число больше текущего максимального значения, то обновляем значение переменной max.
- По завершении внутреннего цикла второго цикл выводится символ новой строки.
- Завершается основной цикл с помощью функции readkey, которая позволяет пользователю ввести новую команду до тех пор, пока не будет введено некорректное значение.
- Конец программы.