Сформировать и вывести матрицу - Pascal ABC

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

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

Задано кол-во строк и столбцов матрицы(не более 10) и действительные значения ее элементов.Сформировать и вывести матрицу, каждый элемент которой равен среднему арифметическому исходных значений данного элемента и восьми соседних с ним.Значения элементов,находящихся за пределами заданной матрицы,считать равными нулю

Решение задачи: «Сформировать и вывести матрицу»

textual
Листинг программы
program For_seregaPovar;
 
uses
   crt;
 
var
   a: array[1..12, 1..12] of integer;
   b: array[1..12, 1..12] of real;
   i, j, n, m: integer;
   avg: real;
 
procedure main(ip, jp: integer);
var
   i, j: integer;
begin
   for i := ip - 1 to 3 do
      for j := jp - 1 to 3 do
         avg := avg + a[i, j];
   
   avg := avg / 9;
end;
 
begin
   Write('Введите кол-во столбцов: ');Readln(n);
   Write('Введите кол-во строк: ');Readln(m);
   Writeln('Вводите значения:');
   for i := 2 to m + 1 do
   begin
      writeln();
      for j := 2 to n + 1 do
         Read(a[i, j]);
   end;
   
   for i := 2 to m + 1 do
      for j := 2 to n + 1 do
      begin
         main(i, j);
         b[i - 1, j - 1] := avg;
         avg := 0;
      end;
   
   for i := 1 to m do
   begin
      for j := 1 to n  do
         Write(b[i, j]:1:3, ' ');
      writeln();
   end;
   
   
   
   
   
end.

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

  1. Создается программа For_seregaPovar, использующая язык программирования Pascal ABC.
  2. В программе используются следующие переменные:
    • a: двумерный массив целых чисел размером от 1 до 12 на 12 строк.
    • b: двумерный массив чисел с плавающей точкой размером от 1 до 12 на 12 строк.
    • i, j, n, m: целые числа, используемые для итерации по массивам.
    • avg: переменная для хранения среднего значения.
  3. В процедуре main() происходит следующее:
    • Цикл for i := ip - 1 до 3 do выполняется три раза.
    • В каждой итерации цикла происходит еще один цикл for j := jp - 1 до 3 do, который собирает среднее значение a[i, j] в переменную avg.
    • После завершения внутреннего цикла avg увеличивается на 9 раз (поскольку a[i, j] содержит целое число).
    • Затем avg делится на 9, чтобы получить среднее значение.
  4. Далее происходит ввод значений для n и m с помощью функции Readln().
  5. Затем происходит ввод значений для a[i, j] с помощью функции Read(), где i и j начинаются с 2 и заканчиваются m + 1 и n + 1 соответственно.
  6. Для каждого i и j выполняется процедура main(), которая в свою очередь выполняет следующие действия:
    • Выводит среднее значение avg.
    • Записывает avg в b[i - 1, j - 1].
    • Обнуляет переменную avg.
  7. Наконец, происходит вывод матрицы b с помощью функции Write(), где каждая строка выводится через пробел.

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

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