Главная » Статьи » Задачи из заказов » Заказ 09.01.07 Pascal |
Найти наибольший элемент среди стоящихна главной и побочной диагоналях и оменять его местами с элементом, стоящим на пересечении диагоналей.
{ ----------------------------------------------------------------------- 8. Дана действительная квадратная матрица порядка N(n-нечетное).Все элементы матрицы различны.Найти наибольший элемент среди стоящих на главной и побочной диагоналях и поменять его местами с элементом, стоящим на пересечении этих диагоналей. ----------------------------------------------------------------------- } const nmax = 101; var a: array[1..nmax, 1..nmax] of longint; n, i, j, maxi, maxj, v : longint; begin repeat write('Введите нечётное n < ', nmax, ': '); readln(n); if not odd(n) then writeln('n должно быть нечётно'); if n > nmax then writeln('n должно быть меньше ', nmax); until (odd(n) and (n < nmax)); writeln('Ввод матрици'); for i:=1 to n do for j:=1 to n do begin write('a[', i, ',', j, '] = '); readln(a[i, j]); end; maxi := 1; maxj := 1; for i:=1 to n do for j:=1 to n do begin if (a[maxi,maxj] < a[i, j]) then begin maxi := i; maxj := j; end; if (a[maxi, maxj] < a[i, n - j + 1]) then begin maxi := i; maxj := n - j + 1; end; end; v := a[maxi, maxj]; a[maxi, maxj] := a[(n + 1) div 2, (n + 1) div 2]; a[(n + 1) div 2, (n + 1) div 2] := v; writeln('После обработки матрица принела следующий вид:'); for i:=1 to n do begin for j:=1 to n do write(a[i, j], ' '); writeln; end; end. | |
Категория: Заказ 09.01.07 Pascal | Добавил: solver (09.01.2007) | | |
Просмотров: 4022 |