Переставить элементы массива в порядке убывания и найти сумму элементов массива находящихся между наибольшим и наименьшим элементом массива не включая их самих pascal

arpine1977 arpine1977    1   02.10.2019 02:20    3

Ответы
ieoeoeoeosikskd ieoeoeoeosikskd  10.09.2020 22:25
PascalABC.NET 3.4.2, сборка 1880 от 18.11.2018Внимание! Если программа не работает, обновите версию!

begin

 var a := ArrRandom(ReadInteger('n='), -10, 10);

 a.Println;

 a := a.OrderDescending.ToArray;

 a.Println;

 var (max, min) := (a.Max, a.Min);

 var i1 := a.IndexesOf(t -> t = max).Last;

 var i2 := a.IndexOf(min);

 a?[i1 + 1:i2].Sum.Println

end.

Примерn= 15-10 9 9 -10 -5 -7 -9 1 -8 -10 1 7 10 4 -510 9 9 7 4 1 1 -5 -5 -7 -8 -9 -10 -10 -10-3
ПОКАЗАТЬ ОТВЕТЫ
CoJlne4Hblu CoJlne4Hblu  10.09.2020 22:25
У, сначала нужно найти макс и мин элементы. 
Max = A(1) 
nMax = 1 
Min = A(1) 
nMin = 1 
For i = 2 to N 
if A(i) > Max Then 
Max = A(i) 
nMax = i 
End If 
if A(i) < Min Then 
Min = A(i) 
nMin = i 
End If 
Next i 
Таким образом мы узнали макс и мин элементы, а главное, их номера nMax и nMin. 
Проверим, какой номер больше, и сделаем так, чтобы было nMin < nMax. 
Если nMin > nMax, поменяем их местами 
If nMin > nMax Then 
Q = nMin 
nMin = nMax 
nMax = Q 
End If 
Теперь нужно отсортировать элементы между ними пузырьковой сортировкой по убыванию 
For i = nMin + 1 To nMax - 1 
Здесь вставляется алгоритм пузырьковой сортировки, который я не помню. Поищи в Интернете. 
Next i
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика