Главная Обратная связь

Дисциплины:






Метод решения задачи. Для поиска индекса минимального элемента массива используется метод перебора



Для поиска индекса минимального элемента массива используется метод перебора. На первом шаге переменной i_min, хранящей индекса минимального элемента массива, присваивается значение 0, т.е. за минимальный элемент принимается первый элемент массива ( у него индекс равен 0). На втором и следующих шагах элементы массива сравниваются с элементом, имеющим индекс i_min. Если какой-либо элемент массива имеет значение меньше, чем элемент с индексом i_min, то переменной i_min присваивается значение его индекса. Процесс повторяется, пока не выполнится сравнение всех элементов массива.

Для поиска индекса максимального элемента массива используется аналогичный метод.

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

Если количество минимальных или максимальных элементов больше одного, то для вычисления суммы необходимо использовать другой алгоритм. При равенстве всех элементов нет ни минимального, ни максимального значений, т. е. задача теряет смысл и вычисления можно не выполнять, но сообщение нужно вывести, например: " Все элементы массива имеют одно значение". Если в массиве несколько элементов с минимальным значением и несколько элементов с максимальным значением, тогда можно поступить следующим образом.

Введем флаги fmin, fmax и f3 - переменные с помощью которых будем управлять процессом вычисления. Опустим флаги fmin и fmax ( fmin=0, fmax= 0), флагу f3 присвоим нуль, обнулим сумму S и начнем просматривать значения элементов массива с первого элемента. Если он не равен ни минимальному, ни максимальному значению, переходим к следующему элементу. Если элемент равен минимальному значению, поднимем флаг fmin и выведем индекс этого элемента. Далее, поскольку флаг fmin поднят, а флаг fmax опущен присвоим флагу f3 значение -1 и начнем накапливать сумму из элементов массива, проверяя их значения на равенство минимальному или максимальному значению. Накопление суммы будет происходить до тех пор, пока не встретится элемент с максимальным значением. Как только такой элемент встретится, флаг fmax необходимо поднять и вывести индекс этого элемента, т.к. удалось достичь конца промежутка суммирования. Накопление прекращается, т.к. оба флага fmin и fmax подняты (равны единице), из суммы вычитается значение минимального элемента, т. к. значения граничных элементв не должны входить в сумму, значение суммы выводится на дисплей, далее всем флагам и сумме присваивается нуль, т.к. процесс накопления на этом промежутке от минимального значения до максимального закончен.

Подобным образом вычисляется сумма между элементами с максимальным и минимальным значениями, с той лишь разницей, что сначала поднимается флаг fmax, а потом fmin, и флагу f3 присваивается значение 1.

После накопления суммы на очередном промежутке, продолжаем просматривать значения элементов до следующего элемента с минимальным или максимальным значением.

В случае, если для какого-то минимаксного значения не будет пары, можно вывести сообщение, например: " Нет максимального элемента массива " или "Нет минимального элемента массива ". Значение суммы в данном случае не выводится.





sdamzavas.net - 2019 год. Все права принадлежат их авторам! В случае нарушение авторского права, обращайтесь по форме обратной связи...