1 курс не могу решить задачу для допуска на экзамен помогите плз!)
задача.
Уплотнить матрицу A(nxm)влево и вверх.Для выявления нулевых строк и столбцов используйте подпрограмму.
в задаче скобками обозначен мои попытки написать подпрограмму но не получается(
в общем нужна подпрограмма которая находит нулевую строку или столб и удаляет ее . помогите!)
Код:
program Project148;
{$APPTYPE CONSOLE}
{$R+}
uses
SysUtils,
inout;
type
TMatrix=array of array of integer;
function TRX(A:TMatrix;i,j:integer):integer;
var
b:boolean;
k,rowcount:integer;
begin
{k:=0;
for i:=0 to high(A) do
begin
b:=true;
for j := 0 to high(A[i]) do begin
if a[i,j]<>0 then b:=false;
if not b then
begin
inc(k);
for j := 0 to high(A[i]) do
a[k,j]:=a[i,j];
end;
end;
ROWcount:=k;
writeln(' результат: ');
for i:=0 to high(A) do
begin
for j := 0 to high(A[i]) do
writeln( a[i,j]:3);
writeln;
end;
end;
end;}
var
A: TMatrix;
RowCount, ColCount:integer;
i,j:integer;
key:Char;
Fok:boolean;
begin
SetConsoleTitleCyr ('Л.р.');
SetConsoleCP_1251;
repeat
Randomize;
{$I-}
repeat
write ('введите число строк матрицы ');
readln(RowCount);
FOK:=(ioresult=0) and (RowCount>0);
if not(FOK) then
writeln('ОШИБКА');
until FOK ;
repeat
write ('введите число столбцов матрицы ');
readln(ColCount);
FOK:=(ioresult=0) and (ColCount>0);
if not(FOK) then
writeln('ОШИБКА');
until FOK ;
{$I+}
SetLength (A,RowCount,ColCount);
writeln ('матрица A:');
for i := 0 to high(A) do
begin
for j := 0 to high(A[i]) do
begin
A[i,j]:=-1+random(3);
write (A[i,j]:3 );
end;
writeln;
end;
{$I-}
begin
TRX(A,i,j);
end;
Writeln (' для продолжения работы программы нажмите Y');
Readln (key);
until upcase(key) <>'Y' ;
end.
Админ: Пользуемся тегами для оформления кода!