![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() 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. Последний раз редактировалось Admin, 09.06.2011 в 16:23. |