Если в строке матрицы есть хотя бы один нулевой элемент, то найти произведение всех ненулевых элементов - 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.
Объяснение кода листинга программы
- Создается переменная m, которая представляет собой количество строк в матрице.
- Создается переменная z, которая представляет собой матрицу целых чисел размером m x m.
- Создается переменная b, которая представляет собой массив целых чисел размером m.
- Создаются три переменные i, j и k, которые будут использоваться для итерации по матрице.
- Создается переменная f, которая будет использоваться для отслеживания наличия нулевых элементов в матрице.
- Инициализируется генератор случайных чисел.
- Выводится исходная матрица z.
- Для каждой строки матрицы 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].
- Завершается программа.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д