Если в строке матрицы есть хотя бы один нулевой элемент, то найти произведение всех ненулевых элементов - Turbo Pascal

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

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

Задана матрица Z(5,5). Если в строке есть хотя бы один нулевой элемент, то найти произведение всех ненулевых элементов, стоящих справа от первого нулевого и заменить полученным значением последний элемент данной строки. Заменяемые значения вывести в массив В. Вывести на экран полученную матрицу и массив B. Буду признателен за любую помощь.

Решение задачи: «Если в строке матрицы есть хотя бы один нулевой элемент, то найти произведение всех ненулевых элементов»

textual
Листинг программы
const m = 5;
 
var z: array [1..m, 1..m] of integer;
    b: array [1..m] of integer;
    i, j, k: integer;
    f: boolean;
 
begin
  randomize;
  writeln('Source array Z:');
  for j := 1 to m do
    begin
      for i := 1 to m do
        begin
          z[i, j] := random(18) - 9;
          write(z[i, j]:7)
        end;
      writeln
    end;
  for j := 1 to m do
    begin
      f := false;
      b[j] := 0;
      for i := 1 to m do
        case f of
          true: if z[i, j] <> 0 then b[j] := b[j] * z[i, j];
          false: if (z[i, j] = 0) and (j <> m)
                   then begin
                     f := true;
                     b[j] := 1;
                   end
        end;
      if f then z[m, j] := b[j]
    end;
  writeln('Result array Z:');
  for j := 1 to m do
    begin
      for i := 1 to m do write(z[i, j]:7);
      writeln
    end;
  writeln('Array B:');
  for i := 1 to m do write(b[i]:7);
  readln
end.

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

  1. Создается переменная m, которая представляет собой количество строк в матрице.
  2. Создается переменная z, которая представляет собой матрицу целых чисел размером m x m.
  3. Создается переменная b, которая представляет собой массив целых чисел размером m.
  4. Создаются три переменные i, j и k, которые будут использоваться для итерации по матрице.
  5. Создается переменная f, которая будет использоваться для отслеживания наличия нулевых элементов в матрице.
  6. Инициализируется генератор случайных чисел.
  7. Выводится исходная матрица z.
  8. Для каждой строки матрицы z (от j = 1 до m) выполняется следующая последовательность действий:
    • Инициализируется переменная f значением false.
    • Инициализируется переменная b значением 0.
    • Для каждого элемента i матрицы z (от i = 1 до m) выполняется следующая последовательность действий:
      • Если значение переменной f равно true, то вычисляется произведение b[j] и z[i, j].
      • Если значение переменной f равно false и текущая строка j не является последней строкой матрицы (т.е. j < m), то устанавливается значение переменной f равным true и значение переменной b[j] равным 1.
    • Если значение переменной f равно true, то значение переменной z[m, j] устанавливается равным значению переменной b[j].
    • Выводится результат - матрица z.
    • Выводится значение переменной b[j].
  9. Завершается программа.

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


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

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

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