переставить элементы массива в порядке убывания и отыскать сумму частей массива

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

Задать свой вопрос
2 ответа

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 -gt; 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 -5

10 9 9 7 4 1 1 -5 -5 -7 -8 -9 -10 -10 -10

-3

У, поначалу необходимо отыскать макс и мин элементы. 
Max = A(1) 
nMax = 1 
Min = A(1) 
nMin = 1 
For i = 2 to N 
if A(i) gt; Max Then 
Max = A(i) 
nMax = i 
End If 
if A(i) lt; Min Then 
Min = A(i) 
nMin = i 
End If 
Next i 
Таким образом мы узнали макс и мин элементы, а основное, их номера nMax и nMin. 
Проверим, какой номер больше, и создадим так, чтоб было nMin lt; nMax. 
Если nMin gt; nMax, поменяем их местами 
If nMin gt; nMax Then 
Q = nMin 
nMin = nMax 
nMax = Q 
End If 
Сейчас необходимо отсортировать элементы меж ними пузырьковой сортировкой по убыванию 
For i = nMin + 1 To nMax - 1 
Тут вставляется метод пузырьковой сортировки, который я не помню. Поищи в Вебе. 
Next i
Кира Залюкова
В общем, это какая-то ерунда. Сказано, что поначалу элементы надобно отсортировать, а позже с ними что-то делать.
Лидия Циницкая
И не пренебрегайте учесть, что наибольший и/или минимальный элемент может быть не единственным.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт