Программа вычисляющая минимальный элемент массива

Дан массив X , состоящий из n элементов. Найти максимальный элемент массива и номер, под которым он хранится в массиве.

Алгоритм решения задачи следующий. Пусть в переменной с именем Max хранится значение максимального элемента массива, а в переменной с именем Nmax – его номер. Предположим, что нулевой элемент массива является максимальным, и запишем его в переменную Max , а в Nmax — его номер (то есть ноль). Затем все элементы, начиная с первого, сравниваем в цикле с максимальным.

Если текущий элемент массива оказывается больше максимального, то записываем его в переменную Max , а в переменную Nmax – текущее значение индекса i . Процесс определения максимального элемента в массиве приведён в табл. 5.3 и изображён при помощи блок-схемы на рис. 5.8. Соответствующий фрагмент программы имеет вид:

for (Max=X [ 0 ], Nmax= i =0; i cout

Таблица 5.3. Определение максимального элемента и его номера в массиве
Номера элементов 1 2 3 4 5
Исходный массив 4 7 3 8 9 2
Значение переменной Max 4 7 7 8 9 9
Значение переменной Nmax 1 2 2 4 5 5

Поиск максимального элемента и его номера в массиве

УРОК 9 -10. Максимальный и минимальный элемент массива (10 класс)


Рис. 5.8. Поиск максимального элемента и его номера в массиве

При поиске максимального элемента и его номера, можно найти только номер максимального элемента, а потом по номеру извлечь значение максимального элемента из массива.

Текст программы поиска номера максимального элемента:

#include using namespace std; int main ( ) < float *X; int i,N, nom; cout>N; //Ввод размерности динамического массива X=new float [N ]; //Выделение памяти для хранения динамического массива X. cout>X [ i ]; //В переменной nom будем хранить номер максимального элемента. nom=0; //Предположим, что максимальным элементом является элемент с номером 0. for ( i =1; iX [ nom ] ) nom= i; cout

Найти минимальный элемент массива. Поиск минимального элемента в массиве. C++ для начинающих. ДЗ#8.

Совет. Алгоритм поиска минимального элемента в массиве будет отличаться от приведённого выше лишь тем, что в условном блоке и, соответственно, в конструкции if текста программы знак поменяется с «».

Рассмотрим несколько задач.

Задача 5.3. Найти минимальное простое число в целочисленном массиве x[N].

Эта задача относится к классу задач поиска минимума (максимума) среди элементов, удовлетворяющих условию. Подобные задачи рассматривались в задачах на обработку последовательности чисел. Здесь поступим аналогично. Блок-схема приведена на рис. 5.9.

Необходимо первое простое число объявить минимумом, а все последующие простые элементы массива сравнивать с минимумом. Будем в цикле последовательно проверять, является ли элемент массива простым числом (функция prostoe). Если X[i] является простым числом, то количество простых чисел (k) увеличиваем на 1 (k++), далее, проверяем, если k равен 1 (if (k==1)), то этот элемент объявляем минимальным (min=x[i]; nom=i;), иначе сравниваем его с минимальным (if (x[i] ).

Текст программы:

#include using namespace std; bool prostoe ( int N) < int i; bool pr; if (N<2) pr=false; else for ( pr=true, i =2; i<=N/ 2; i++) if (N%i ==0) < pr=false; break; >return pr; > int main ( int argc, char **argv ) < int i, k, n, nom, min, *x; cout>n; //Ввод количества элементов в массиве. x=new int [ n ]; //Выделяем память для динамического массива x. cout>x [ i ]; //С помощью цикла по переменной i, перебираем все элементы в массиве x, //k — количество простых чисел в массиве. for ( i=k=0; i else //Все последующие простые числа в массиве сравниваем с минимальным простым числом. //Если текущее число меньше min, перезаписываем его в переменную min, //а его номер — в переменную nom. if ( x [ i ] > //Если в массиве были простые числа, выводим значение и номер минимального простого числа. if ( k>0) cout<<» min = «<

Читайте также:
Выполни действия по программе запиши сколько ты видишь на рисунке

Блок-схема решения задачи 5.3

Рис. 5.9. Блок-схема решения задачи 5.3

Аналогичным образом можно написать программу любой задачи поиска минимума (максимума) среди элементов, удовлетворяющих какому-либо условию (минимум среди положительных элементов, среди чётных и т.д.).

k

Задача 5.4. Найти минимальных чисел в вещественном массиве.

Перед решением этой довольно сложной задачи рассмотрим более простую задачу.

Найти два наименьших элемента в массиве. Фактически надо найти номера ( nmin1, nmin2 ) двух наименьших элементов массива. На первом этапе надо найти номер минимального ( nmin1 ) элемента массива. На втором этапе надо искать номер минимального элемента, при условии, что он не равен nmin1 . Вторая часть очень похожа на предыдущую задачу (минимум среди элементов, удовлетворяющих условию, в этом случае условие имеет вид i!=nmin1 ).

Решение задачи с комментариями:

#include using namespace std; int main ( int argc, char **argv ) < int kvo, i, n, nmin1, nmin2; double *X; cout>n; X=new double [ n ]; cout>X [ i ]; //Стандартный алгоритм поиска номера первого минимального элемента (nmin1). for ( nmin1=0, i =1; i //Вывод двух минимальных элементов и их индексов. cout

По образу и подобию этой задачи можно написать задачу поиска трёх минимальных элементов в массиве. Первые два этапа (поиск номеров двух минимальных элементов в массиве) будут полным повторением кода, приведённого выше. На третьем этапе нужен цикл, в котором будем искать номер минимального элемента, при условии, что его номер не равен nmin1 и nmin2.

Авторы настоятельно рекомендуют читателям самостоятельно написать подобную программу. Аналогично можно написать программу поиска четырёх минимальных элементов. Однако при этом усложняется и увеличивается код программы. К тому же, рассмотренный приём не позволит решить задачу в общем случае (найти k минимумов).

Для поиска kминимумов в массиве можно поступить следующим образом. Будем формировать массив nmin, в котором будут храниться номера минимальных элементов массива x.

Для его формирования организуем цикл по переменной jот 0 до k-1. При каждом вхождении в цикл в массиве nmin элементов будет j-1 элементов,i и мы будем искать j-й минимум (формировать j-й элемент массива).

Алгоритм формирования j-го элемента состоит в следующем: необходимо найти номер минимального элемента в массиве x, исключая номера, которые уже хранятся в массиве nmin. Внутри цикла по j

необходимо выполнить такие действия.

Для каждого элемента массива x (цикл по переменной i) проверить содержится ли номер в массиве nmin, если не содержится, то количество (переменная kvo) таких элементов увеличить на 1. Далее, если kvo равно 1, то это первый элемент, который не содержится в массиве nmin, его номер объявляем номером минимального элемента массива (nmin_temp=i;). Если kvo>1, сравниваем текущий элемент x[i] с минимальным (if (x[i]). Блок-схема алгоритма поиска kминимальных элементов массива представлена на рис. 5.102В блок-схеме отсутствует ввод данных и вывод результатов..Далее приведён текст программы с комментариями.

#include using namespace std; int main ( int argc, char **argv ) < int p, j, i, n, *nmin, k, kvo, nmin_temp; bool pr; double *x; cout>n; x=new double [ n ]; cout>x [ i ]; cout>k; nmin=new int [ k ]; for ( j =0; j1, сравниваем текущий элемент x[i] с минимальным. if ( x [ i ] > nmin [ j ]=nmin_temp; //Номер очередного минимального элемента записываем в массив. > for ( j =0; j

Читайте также:
Компьютерная программа это изобретение

Проверку, содержится ли число i в массиве nmin, можно оформить в виде функции, тогда программа может быть записана следующим образом:

Блок-схема алгоритма поиска k минимальных элементов в массиве x.

увеличить изображение
Рис. 5.10. Блок-схема алгоритма поиска k минимальных элементов в массиве x.

#include using namespace std; //Функция проверяет, содержится ли число i в массиве x из n элементов. //Функция возвращает true, если содержится, и false, если не содержится. bool proverka ( int i, int *x, int n ) < bool pr; int p; pr=false; for ( p=0;pint main ( int argc, char **argv ) < int j, i, n, *nmin, k, kvo, nmin_temp; double *x; cout>n; x=new double [ n ]; cout>x [ i ]; cout>k; nmin=new int [ k ]; for ( j =0; j nmin [ j ]=nmin_temp; > for ( j =0; j

Авторы настоятельно рекомендуют читателю разобрать все версии решения задачи 5.4.

Задача 5.5. Поменять местами максимальный и минимальный элементы в массиве X.

Алгоритм решения задачи можно разбить на следующие этапы.

    Ввод массива. Поиск номеров максимального (nmax) и минимального (nmin) элементов массива. Обмен элементов местами. Не получится записать «в лоб» (X[nmax]=X [nmin]; X[nmin]=X[nmax];). При таком присваивании мы сразу же теряем максимальный элемент.
    Поэтому нам понадобится временная (буферная) переменная temp. Обмен элементов местами должен быть таким: temp=X[nmax]; X[nmax]=X[nmin]; X[nmin]=temp;

Далее приведён текст программы с комментариями.

<

div xmlns_edi=»http://www.intuit.ru/2010/edi» >#include using namespace std; int main ( int argc, char **argv ) < int i,N, nmax, nmin; float temp; cout>N; float X [N ]; cout>X [ i ]; //Поиск номеров максимального и минимального элементов массива. for (nmax=nmin=0, i =1; iX [ nmax ] ) nmax= i; > //Обмен максимального и минимального элементов местами. temp=X [ nmax ]; X [ nmax]=X [ nmin ]; X [ nmin ]=temp; cout<<«Преобразованный массив Хn «; //Вывод преобразованного массива. for ( i =0; i

Задача 5.6. Найти среднее геометрическое среди простых чисел, расположенных между максимальным и минимальным элементами массива.

Среднее геометрическое kэлементов (SG)можно вычислить по формуле SG=sqrt[<k>], P — произведение kэлементов. При решении этой задачи необходимо найти произведение и количество простых чисел, расположенных между максимальным и минимальным элементами.

Алгоритм решения задачи состоит из следующих этапов:

  1. Ввод массива.
  2. Поиск номеров максимального ( nmax ) и минимального ( nmin ) элементов массива.
  3. В цикле перебираем все элементы массива, расположенные между максимальным и минимальным элементами. Если текущий элемент является простым числом, то необходимо увеличить количество простых чисел на 1, и умножить Pна значение элемента массива.
  4. Вычислить SG=sqrt[<k>].

При решении этой задачи следует учитывать, что неизвестно, какой элемент расположен раньше — максимальный или минимальный.

Текст программы с комментариями приведён ниже.

#include #include using namespace std; bool prostoe ( int N) < int i; bool pr; if (N<2) pr=false; else for ( pr=true, i =2; i<=N/ 2; i++) if (N%i ==0) < pr=false; break; >return pr; > int main ( int argc, char **argv ) < int i, k, n, nmax, nmin, p, *x; cout>n; //Ввод количества элементов в массиве. x=new int [ n ]; //Выделяем память для динамического массива x. cout>x [ i ]; //Поиск номеров максимального и минимального элементов в массиве. for (nmax=nmin= i =0; ix [ nmax ] ) nmax= i; > if ( nmin > else for ( p=1,k=0, i=nmax+1; i //Если в массиве были простые числа, выводим среднее геометрическое этих чисел на экран if ( k>0) cout<<» SG «<

Читайте также:
Установка программы для принтера hp laserjet 1018

Источник: intuit.ru

Разработчику о работе с 1С:Предприятие, Pascal, Паскаль

Найти минимальный элемент одномерного массива, паскаль.

13.06.2017 | Автор Дмитрий

Найти минимальный элемент одномерного массива, паскаль.

Одномерный массив — упорядоченный набор значений одного типа, с которым работают как с одним объектом. Получить значение элемента массива или записать новое значение в элемент можно по его номеру. Индекс элемента одномерного массива — это его номер в массиве. Найти минимальный элемент одномерного массива — задача определить минимальное значение в этом одномерном массиве.

program Task_Min2; var i, i_Min: integer; i_ArrNum: array[1..10] of integer; begin WriteLn(‘Задача, минимальный элемент одномерного массива:’); WriteLn(‘Введите 10 (десять) чисел:’); for i := 1 to 10 do ReadLn(i_ArrNum[i]); i_Min := i_ArrNum[1]; i := 1; repeat if i_Min > i_ArrNum[i] then i_Min := i_ArrNum[i]; i := i + 1; until i > 10; WriteLn(‘Минимальный элемент одномерного массива = ‘, i_Min); //завершение работы программы WriteLn(‘Нажмите , чтобы выйти.’); ReadLn(); end.

Найти минимальный элемент одномерного массива, паскаль.

Рубрика: Pascal (Паскаль) — задачи и решения

Источник: info1c.com

Статья Нахождение минимального элемента массива

27792

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

Одномерный массив

В первом примере рассмотрим, как получить минимальное значение в одномерном массиве.

int [] numbers = ; int minValue = numbers.Min(); //Результат: 1

Многомерный массив

Многомерный массив, в отличие от одномерного массива, не позволяет нам напрямую обратиться к методу Min. Но, это можно легко исправить, если воспользоваться методом Cast, с помощью которого можно преобразовать многомерный массив в обобщенную коллекцию типа IEnumerable. После чего нам станет доступен метод Min, и мы сможем найти минимальное значение массива, например:

int [,] numbers = ,>; IEnumerable colNumbs = numbers.Cast(); int minValue = colNumbs.Min(); //Результат: 2
Данный код можно немного сократить:
int minValue = numbers.Cast().Min();

Jagged массив
Чтобы найти минимальное значение в Jagged массиве, нужно также как и в предыдущем примере, преобразовать содержимое массива в объект типа IEnumerable , но только выполнить эту операцию нужно не с помощью метода Cast, а например, с помощью метода SelectMany :

int [][] numbers = < new int [] , new int [] , new int [] >; int minValue = numbers.SelectMany(x => x).Min(); //Результат: 3

  • Добавление файлов в архив rar
  • Как установить MySQL for Visual Studio?
  • Поиск html элемента с атрибутом id

The Codeby

Well-known member

The Codeby

Well-known member

30.12.2015 4 639 6 688

Комментарии, перенесенные из блога:

COGE
19.10.2016 в 12:33

int [] numbers = ; int minValue = numbers.Min();

А как узнать индекс этого элемента?

ADMIN
20.10.2016 в 12:58

int indexMin = Array.IndexOf(numbers, minValue);
ADMIN
21.10.2016 в 13:36

Как найти индекс максимального или минимального элемента массива? C#

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

FRANNY
17.11.2016 в 15:42
А если минимальных элементов несколько? Как вывести их количество?

УЛИТА
02.01.2017 в 14:42
При помощи случайных чисел ввести одномерный массив, состоящий из 15 элементов. Найти в нем максимальный и минимальный элементы и поменять местами первый и минимальный элемент, последний и максимальный. На экран вывести исходный и преобразованный массивы в две строки и индексы минимального и максимального элементов. Отсортировать измененный массив методом выбора. Вывести отсортированный массив на экран.

Источник: codeby.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru