Зануление столбцов и строк, содержащих нули

Зануление столбцов и строк, содержащих нули

Итак, уважаемые, читатели сегодня мы разберем решение задачи. Задача такая: в двумерном массиве m на n требуется занулить строки и столбцы содержащие нули. Решение прилагается. Желающие могут попробовать решить сами, а потом если охота, то свериться с данным решением.
Данный пример программы на паскаль, к сожалению, не содержит всех пояснительных комментариев. Открыть можно с помощью программ Pascal ABC.Net, Pascal ABC, FreePascal.3

Исходный код программы:

const nmax=100;
mmax=100;
type Tarray=array [1..nmax] of real;
Tmatrix=array [1..mmax] of tarray;
var b:tarray;
a:tmatrix;
i,j,k,n,m:integer;
flag:boolean;
begin
read(n,m);//считываем размерность массива m-столбцов, n-строк
for i:=1 to n do//записываем в наш массив числа
for j:=1 to m do
a[i,j]:=random(10);
for i:=1 to m do//создаем дополнительный массив в котором будем хранить номера столбцов с нулями
b[i]:=0;
for i:=1 to n do begin//выводим исходный массив
writeln;
for j:=1 to m do
write(a[i,j],' ');
end;
writeln;
writeln;
for i:=1 to n do begin //основная программа
flag:=false;
for j:=1 to m do
if a[i,j]=0 then begin
b[j]:=1;
flag:=true;
end;
if flag then
for k:=1 to m do
a[i,k]:=0;
end;
for i:=1 to m do//вывод дополнительного массива с номерами столбцов с нулями для проверки правильности работы программы
write(b[i],' ');
writeln;
for k:=1 to m do//зануление столбцов с нулями
if b[k]=1 then
for i:=1 to n do
a[i,k]:=0;
for i:=1 to n do begin//вывод основного массива
writeln;
for j:=1 to m do
write(a[i,j],' ');
end;
end.


Кому не понятно решение писать в комментариях, могу объяснить поподробнее. Что такое двумерный массив, Вы можете в уроке №11 - двумерные массивы в паскале.

Скачать исходник: nuuledmas.pas
Дата: 2012-09-21 18:18:43   Просмотров: 5543

Теги: исходник исходники Паскаль Pascal массивы