PDA

Просмотр полной версии : Паскаль матрица



Света7
11.04.2008, 16:14
Дана матрица А(n на m), элементы которой лежат в промежутке[-50;50]. Получить матрицу В, вычеркнув из матрицы А столбцы, где стоят элементы, равные 0. Спасибо!

MOTOCoder
11.04.2008, 19:01
Можно примерно так:

const
N=10;
var
A1,A2:array[1..N,1..N] of integer;
i,j,Next:integer;

procedure CopyCol(SrcIdx,DstIdx:integer);
var
I:integer;
begin
for i:=1 to n do
A2[DstIdx,i]:=A1[SrcIdx,i];
end;

function HasZero(idx:integer):boolean;
var
i:integer;
F:boolean;
begin
F:=False;
for i:=1 to n do
if A1[idx,i]=0 then
f:=True;
HasZero:=F;
end;

begin
for i:=1 to N do
for J:=1 to N do
A1[i,j]:=Random(100)-50;

for i:=1 to N do
begin
For j:=1 to N do
write(A1[J,I]:3,' ');
writeln;
end;

writeln;

for i:=1 to N do
if not HasZero(i) then
begin
inc(Next);
CopyCol(I,Next);
end;
for i:=1 to N do
begin
For j:=1 to Next do
write(A2[J,I]:3,' ');
writeln;
end;
readln;
end.