Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program SamRab;
- uses
- System.SysUtils;
- Type
- TArr = array of array of integer;
- Function InputSize(N: integer): integer;
- Begin
- Writeln('Enter matrix size: ');
- Readln(N);
- InputSize := N;
- End;
- Function InputMatrix(Var Matrix: TArr; N: integer): TArr;
- Var
- i,j: byte;
- Begin
- for i := 0 to High(Matrix) do
- for j := 0 to High(Matrix) do
- Begin
- Writeln('Enter [',i + 1,'][',j + 1,'] element of the matrix: ');
- Readln(Matrix[i][j]);
- End;
- InputMatrix := Matrix;
- End;
- Procedure OutputMatrix(Matrix: TArr; N: integer);
- Var
- i,j: byte;
- Begin
- for i := 0 to High(Matrix) do
- Begin
- for j := 0 to High(Matrix) do
- Write(Matrix[i,j]:6);
- Writeln;
- End;
- End;
- Function FindMaxElement(Matrix: TArr; N: integer): integer;
- Var
- i,j: byte;
- Max: integer;
- Begin
- Max := Matrix[0,0];
- for i := 0 to High(Matrix) - 1 do
- Begin
- for j := 0 to High(Matrix) - 1 do
- Begin
- If(Max < Matrix[i + 1,j + 1]) then
- Max := Matrix[i + 1,j + 1];
- End;
- End;
- FindMaxElement := Max;
- End;
- Function Swap(Matrix: TArr; N: integer): integer;
- Var
- i,j: byte;
- tmp: integer;
- multiply: integer;
- NewMatrix: TArr;
- Begin
- SetLength(NewMatrix,N,N);
- for i := 0 to High(Matrix) do
- for j := 0 to High(Matrix) do
- NewMatrix[i,j] := Matrix[j,i];
- Writeln('Transposed matrix: ');
- OutputMatrix(NewMatrix,N);
- Multiply := 1;
- for i := 0 to High(Matrix) do
- Begin
- Multiply := Multiply * NewMatrix[i,i];
- End;
- Swap := Multiply;
- End;
- Function Comparison(Var Matrix: TArr; N,MaxElement,Multiply: integer): TArr;
- Var
- i,j: byte;
- Begin
- Writeln('Side Diagonal Product: ', Multiply);
- Writeln('Max element of matrix : ', MaxElement);
- if MaxElement > Multiply then
- Begin
- for i := 0 to High(Matrix) do
- for j := 0 to High(Matrix) do
- Matrix[i,j] := Matrix[i,j] * MaxElement;
- End;
- if MaxElement < Multiply then
- Begin
- for i := 0 to High(Matrix) do
- for j := 0 to High(Matrix) do
- Matrix[i,j] := Matrix[i,j] - MaxElement;
- End;
- Comparison := Matrix;
- End;
- Procedure Main();
- Var
- Matrix: TArr;
- N: integer;
- MaxElement: integer;
- Multiply: integer;
- begin
- N := InputSize(N);
- Setlength(Matrix,N,N);
- Matrix := InputMatrix(Matrix,N);
- Writeln('Source matrix: ');
- OutputMatrix(Matrix,N);
- MaxElement := FindMaxElement(Matrix,N);
- Multiply := Swap(Matrix,N);
- Matrix := Comparison(Matrix,N,MaxElement,Multiply);
- Writeln('Final matrix: ');
- OutputMatrix(Matrix,N);
- Readln;
- end;
- Begin
- Main();
- End.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement