В каждой из трех матриц найти максимальный элемент и разделить на него каждый отрицательный элемент матрицы - Turbo Pascal

Узнай цену своей работы

Формулировка задачи:

Задание:В каждой из трех матриц Х, Y и Z найти максимальный элемент и разделить на него каждый отрицательный элемент матрицы. Больше всего интересует функция с нахождением максимального элемента и деление на него кажого отрицательного элемента.Помогите пожалуйста.

Решение задачи: «В каждой из трех матриц найти максимальный элемент и разделить на него каждый отрицательный элемент матрицы»

textual
Листинг программы
{ В каждой из трех матриц Х, Y и Z найти максимальный элемент и
разделить на него каждый отрицательный элемент матрицы.}
 
uses
  crt;
const
  nmax=100; {максимальный размер матрицы}
type
  mas=array [1..nmax,1..nmax] of real;
var
  x,y,z:mas;{тип матрицы}
  p:real;
  m:integer;
 
procedure generate_matrix(m:integer; var a:mas);
var
  i,j:integer;
begin
  for i:=1 to m do
    begin
    for j:=1 to m do
      begin
        a[i,j]:=random*m -m div 2;
        write(a[i,j]:6:2);
      end;
    writeln;
    end;
end;
 
function find_max(a:mas):real;
var
  max:real;
  i,j:integer;
begin
  max:=a[1,1];{пусть максимальный-первый}
  for i:=1 to m do
    for j:=1 to m do
      if a[i,j]>max then
        max:=a[i,j];{если найдем больше - он максимальный}
  find_max:=max;
end;
 
function delete_neg(q:real; var a:mas):real;
var
  i,j:integer;
begin
  for i:=1 to m do
    begin
      for j:=1 to m do
        begin
          if a[i,j]<0 then
            a[i,j]:=a[i,j]/q;
          write(a[i,j]:6:2);
        end;
      writeln;
    end;
end;
 
begin
  randomize;
  clrscr;
  repeat
    write('Размер матрицы до ',nmax,' m=');
    readln(m);
  until m in [1..nmax];
  writeln('Матрица X:');
  generate_matrix(m,x);
  p:=find_max(x);
  writeln('Максимальный элемент=',p:6:2);
  writeln('Преобразованная матрица X:');
  delete_neg(p,x);
  write('Нажмите enter '); readln;
  clrscr;
  writeln('Матрица Y:');
  generate_matrix(m,y);
  p:=find_max(y);
  writeln('Максимальный элемент=',p:6:2);
  writeln('Преобразованная матрица Y:');
  delete_neg(p,y);
  write('Нажмите enter '); readln;
  clrscr;
  writeln('Матрица Z:');
  generate_matrix(m,z);
  p:=find_max(z);
  writeln('Максимальный элемент=',p:6:2);
  writeln('Преобразованная матрица Z:');
  delete_neg(p,z);
  write('Нажмите enter '); readln;
 
end.

Объяснение кода листинга программы

  1. В функции generate_matrix используется цикл for, который выполняется m раз (где m - это введенный пользователем размер матрицы). Внутри этого цикла создается вложенный цикл for, который также выполняется m раз и заполняет матрицу случайными числами. Каждое число в матрице умножается на m и делится на 2, чтобы получить отрицательное значение.
  2. Функция find_max находит максимальное значение в матрице. Для этого она использует два вложенных цикла for, которые проверяют каждый элемент матрицы. Если текущий элемент больше предыдущего максимального значения, то оно обновляется.
  3. Функция delete_neg принимает матрицу и коэффициент, на который делятся отрицательные элементы. Она проходит по каждому элементу матрицы и если он отрицательный, то делит его на заданный коэффициент.
  4. Основной цикл программы состоит из трех вызовов функций generate_matrix, find_max и delete_neg для матриц X, Y и Z. После каждого вызова выводится преобразованная матрица.
  5. В конце программы выводится запрос на ввод символа новой строки, чтобы перейти к следующему шагу.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.455 из 5
Похожие ответы