![]() |
|
|
#1
|
|||
|
|||
|
Доброго всем! Может кто-нибудь помочь с задачкой?
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); |