|
#1
|
|||
|
|||
Массивы Delphi
Доброго всем! Может кто-нибудь помочь с задачкой?
a)В матрице n-ого порядка найти максимальный среди элементов, лежащих ниже побочной диагонали, и минимальный среди элементов , лежащих выше главной диагонали. b) Определить кол-во инверсий в этом массиве X. Алгоритм можете пояснить? Заранее благодарен. |
#2
|
||||
|
||||
Для а) я вам написал:
Код:
program Project32; {$APPTYPE CONSOLE} uses SysUtils; Var Matrix: Array of Array of Integer; i,j,N,Max,Min: Integer; begin // Формируем квадратную матрицу N-размерности Randomize; N := Random(9)+2; SetLength(Matrix, N); for i := 0 to N-1 do begin SetLength(Matrix[i], N); for j := 0 to N-1 do begin Matrix[i,j] := Random(99)+1; Write(Matrix[i,j]:3) end; WriteLn; end; //Ищем максимальный среди элементов, лежащих ниже побочной диагонали Max := Matrix[1,N-1]; for i := 1 to N-1 do for j := N-i to N-1 do if Matrix[i,j] > Max then Max := Matrix[i,j]; WriteLn('Max = ',Max:3); //Ищем минимальный среди элементов, лежащих выше главной диагонали Min := Matrix[0,1]; for i := 1 to N-2 do for j := i+1 to N-1 do if Matrix[i,j] < Min then Min := Matrix[i,j]; WriteLn('Min = ',Min:3); ReadLn; end. Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
спасибо огромное.
Не подскажите где там еще можно обработку исключительных ситуаций подключить? Во 2-ой дан двумерный динамический массив. инверсия это такие пары элементов, в которых большее число находится слева от меньшего: xi>xj при i<j. |
#4
|
||||
|
||||
Цитата:
Цитата:
Цитата:
Код:
Inv := 0; for i := 0 to N-1 do for j := 0 to N-2 do if Matrix[i,j] > Matrix[i,j+1] then Inc(Inv); WriteLn('Inv = ',Inv:3); Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |