Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Задана квадратная матрица. Поменять местами строку с максимальным элементом на главной диагонали со строкой с заданным номером M.
- Program CPascal;
- const nmax=10;
- var x:array [1..nmax,1..nmax] of integer;
- temp:integer;
- i,j,n,m,imax:byte;
- Begin
- Repeat // Защита от дураков...
- Write('Введите размер квадратной матрицы (2 <= N <= ',nMax,'): '); Readln(N);
- if not ((2 <= N) and (N <= nMax)) then Writeln('Ошибка:( Неверный диапазон. Повторите ввод...');
- Until (2 <= N) and (N <= nMax);
- Writeln('Исходная матрица:');
- for i:=1 to n do
- Begin
- for j:=1 to n do
- Begin
- X[i,j]:=Random(51)-25;
- Write(X[i,j]:4);
- end;
- Writeln;
- end;
- // Определим строку с максимальным элементом на главной диагонали
- iMax:=1;
- for i:=2 to n do if X[iMax,iMax] < X[i,i] then iMax:=i;
- Writeln('Максимальный элемент главной диагонали находится в строке ',iMax,' и равен ',X[iMax,iMax]);
- Repeat // Защита от дураков...
- Write('Введите номер строки для замены (1 <= M <= ',N,'): '); Readln(M);
- if not ((1 <= M) and (M <= N)) then Writeln('Ошибка:( Неверный диапазон. Повторите ввод...');
- Until (1 <= M) and (M <= N);
- // Поменяем строку M со строкой Index местами
- if (M <> iMax) then for i:=1 to n do
- Begin
- Temp:=X[iMax,i];
- X[iMax,i]:=X[m,i];
- X[m,i]:=Temp;
- end;
- Writeln('Преобразованная матрица:');
- for i:=1 to n do
- Begin
- for j:=1 to n do Write(X[i,j]:4);
- Writeln;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement