
Дан массив D(n,m) . Написать программу обнуления сток и столбцов , в которых есть хотя бы одно
значение =0. Можно использовать дополнительный массив.

Ответы на вопрос

nn=20;
var
d:array[1..nn,1..nn] of integer;
zr,zc:array[1..nn] of boolean; { строки и столбцы }
n,m,i,j,nr,nc:integer;
begin
Write('Укажите n и m: '); Read(n,m);
Randomize;
Writeln('И с х о д н ы й м а с с и в');
nr:=0; nc:=0;
for i:=1 to n do zr[i]:=False;
for j:=1 to m do zc[j]:=False;
for i:=1 to n do begin
for j:=1 to m do begin
d[i,j]:=Random(21)-10;
Write(d[i,j]:4);
if d[i,j]=0 then begin zr[i]:=True; zc[j]:=True end;
end;
Writeln
end;
for i:=1 to n do
if zr[i] then
for j:=1 to m do d[i,j]:=0;
for j:=1 to m do
if zc[j] then
for i:=1 to n do d[i,j]:=0;
Writeln('М а с с и в - р е з у л ь т а т');
for i:=1 to n do begin
for j:=1 to m do Write(d[i,j]:4);
Writeln
end
end.
Пример
Укажите n и m: 7 12
И с х о д н ы й м а с с и в
-10 8 -4 -3 -8 9 1 -6 4 -6 5 -1
-8 -2 -8 -7 -3 -1 4 4 5 -1 7 -6
8 -5 8 -1 -8 9 8 -4 -6 -2 0 4
7 -4 8 -9 3 2 9 3 3 6 9 4
9 -3 8 8 -4 9 7 2 -10 -8 -1 8
-10 -8 -8 6 -4 -2 -6 4 8 -1 -3 -9
2 2 -9 -7 0 -6 2 -9 -4 -6 0 5
М а с с и в - р е з у л ь т а т
-10 8 -4 -3 0 9 1 -6 4 -6 0 -1
-8 -2 -8 -7 0 -1 4 4 5 -1 0 -6
0 0 0 0 0 0 0 0 0 0 0 0
7 -4 8 -9 0 2 9 3 3 6 0 4
9 -3 8 8 0 9 7 2 -10 -8 0 8
-10 -8 -8 6 0 -2 -6 4 8 -1 0 -9
0 0 0 0 0 0 0 0 0 0 0 0



Для решения данной задачи, можно написать программу, которая будет обнулять строки и столбцы в массиве D(n,m), в которых есть хотя бы одно значение равное нулю. Можно использовать дополнительный массив для отслеживания, какие строки и столбцы нужно обнулить.
Вот пример программы на языке Python, которая решает данную задачу:
```python def zero_out_rows_and_columns(matrix): rows = len(matrix) cols = len(matrix[0])
# Создаем дополнительные массивы для отслеживания строк и столбцов, которые нужно обнулить zero_rows = [False] * rows zero_cols = [False] * cols
# Проходим по всем элементам матрицы и отмечаем строки и столбцы с нулевыми значениями for i in range(rows): for j in range(cols): if matrix[i][j] == 0: zero_rows[i] = True zero_cols[j] = True
# Обнуляем строки for i in range(rows): if zero_rows[i]: for j in range(cols): matrix[i][j] = 0
# Обнуляем столбцы for j in range(cols): if zero_cols[j]: for i in range(rows): matrix[i][j] = 0
return matrix
# Пример использования matrix = [ [1, 2, 3], [4, 0, 6], [7, 8, 9] ]
result = zero_out_rows_and_columns(matrix) print(result) ```
В данном примере, функция `zero_out_rows_and_columns` принимает матрицу в качестве аргумента и возвращает матрицу, в которой все строки и столбцы, содержащие нулевые значения, обнулены. Вывод программы будет следующим:
``` [[1, 0, 3], [0, 0, 0], [7, 0, 9]] ```
В данном случае, строка 2 и столбец 1 содержат нулевые значения, поэтому они были обнулены.
Примечание: Приведенный пример программы на языке Python является одним из возможных решений данной задачи. В зависимости от требований и ограничений, возможно, потребуется внести некоторые изменения в программу.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili