Заменить элемент матрицы с использованием подпрограммы - Pascal ABC

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

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

Ввести матрицы A(n1,n1), B(n2,n2). Найти среднее арифметическое положительных элементов в каждой из них. Найденным значением заменить главные диагонали соответствующих матриц. Подпрограммы: ввод матрицы, поиск среднего, замена диагонали, вывод матрицы.

Решение задачи: «Заменить элемент матрицы с использованием подпрограммы»

textual
Листинг программы
Program Dworf;
uses crt;
 
const N1 = 1; // Размер массива A
const N2 = 1; // Размер массива B
 
var
A: array[0..N1, 0..N1] of integer;
B: array[0..N2, 0..N2] of integer;
i, j: integer; // Счетчики
AVal, BVal: integer;
ACount, BCount: integer;
AMax, BMax: integer;
Begin
   for j := 0 to N1 do  // Ввод матрицы  A
    for i := 0 to N1 do
    begin
        Write('A[',j,',',i,'] = ');
        ReadLn(A[j,i]);
        if (AMax < Length(inttostr(A[j,i]))) then AMax := Length(inttostr(A[j,i]));
        if (A[j,i] > 0) then
        begin
            inc(ACount);
            AVal := AVal + A[j,i];
        end;
    end;
   if (ACount > 0) then
        AVal := AVal div ACount;
    for j := 0 to N2 do  // Ввод матрицы  B
     for i := 0 to N2 do
     begin
        Write('B[',j,',',i,'] = ');
        ReadLn(B[j,i]);
        if (BMax < Length(inttostr(B[j,i]))) then BMax := Length(inttostr(B[j,i]));
        if (B[j,i] > 0) then
        begin
            inc(BCount);
            BVal := BVal + B[j,i];
        end;
     end;
     if (BCount > 0) then
        BVal := BVal div BCount;
    
    for j := 0 to N1 do  // Вывод матрицы  A
    begin
      for i := 0 to N1 do
       begin
         if (j = i) then A[j,i] := AVal;
         Write(A[j,i]:AMax + 2);
       end;
       WriteLn();
    end;
    for j := 0 to N2 do  // Вывод матрицы  B
    begin
      for i := 0 to N2 do
       begin
         if (j = i) then B[j,i] := BVal;
         Write(B[j,i]:BMax + 2);
       end;
       WriteLn();
    end;
end.

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

  1. Объявлены константы N1 и N2, которые определяют размер массивов A и B соответственно.
  2. Объявлены переменные A, B, i, j, AVal, BVal, ACount, BCount, AMax, BMax.
  3. Ввод матрицы A с помощью цикла for и вложенного цикла for. Значения матрицы считываются с помощью функции ReadLn и сохраняются в переменной A. Также в этом цикле выполняется подсчет количества положительных элементов матрицы A и вычисляется их сумма.
  4. Если количество положительных элементов матрицы A больше нуля, то выполняется подсчет среднего значения положительных элементов и сохраняется в переменной AVal.
  5. Ввод матрицы B с помощью цикла for и вложенного цикла for. Значения матрицы считываются с помощью функции ReadLn и сохраняются в переменной B. Также в этом цикле выполняется подсчет количества положительных элементов матрицы B и вычисляется их сумма.
  6. Если количество положительных элементов матрицы B больше нуля, то выполняется подсчет среднего значения положительных элементов и сохраняется в переменной BVal.
  7. Вывод матрицы A с помощью цикла for и вложенного цикла for. В каждой итерации внутреннего цикла проверяется равенство индексов j и i. Если условие выполняется, то значение элемента матрицы A заменяется на среднее значение положительных элементов AVal.
  8. Вывод матрицы B с помощью цикла for и вложенного цикла for. В каждой итерации внутреннего цикла проверяется равенство индексов j и i. Если условие выполняется, то значение элемента матрицы B заменяется на среднее значение положительных элементов BVal.

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


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

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

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