![]() ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Выбор наименьших и наибольших элементов в массивахЗадачи этого типа постоянно встречаются в математической статистике, а также в различных технических и экономических расчетах. Пример 5.6 В массиве экспериментальных данных t с числом элементов n, найти наименьшее значение min и определить его порядковый номер k в этом массиве. Алгоритм решения этой задачи состоит в следующем. Первоначально принимаем за наименьший первый элемент массива, т.е. полагаем min=t1 и k=1. Затем сравниваем с ним каждый очередной элемент, начиная со 2–го. Если очередной элемент ti > = min, пропускаем его и берем для проверки следующий, если же ti <min, то за наименьший принимаем этот элемент, т.е. делаем переименовку: min=ti, k=i. Продолжаем сравнивать следующие элементы массива t уже с этим новым значением min. Если встречается число еще меньше, снова производим переименовку: min=ti, k=i и т.д. Последнее значение min после окончания просмотра всего массива и будет наименьшим его элементом, а значение k определит его порядковый номер в массиве. Соответствующий фрагмент программы в предположении, что массив t находится в памяти ЭВМ, может иметь вид: min:=t[1]; k:=1; for i:=1 to n do Begin if t[i]<=min then Begin min:=t[i]; k:=i; end; end; writeln(min,k); { продолжение программы } Очевидно, если знак <= в операторе if заменить на >=, то получим фрагмент программы определяющей наибольший элемент массива. В этом случае, разумеется, логично заменить имя min на max. Если нас интересует лишь сама величина наименьшего или наибольшего элемента, а его место в массиве безразлично, то приведенный фрагмент упрощается удалением оператора k:=i. Возможно в одном цикле одновременно определять наименьший и наибольший элементы. Покажем это на примере двумерного массива. Пример 5.7. В матрице X(m? n) найти наименьший элемент min и наибольший max и определить индексы каждого из них. Если обозначить индексы наименьшего и наибольшего элементов матрицы соответственно k1,l1 и k2,l2, то задача может быть решена следующим фрагментом: k1:=1; l1:=1; k2:=1; l2:=1; min:=X[1,1]; max:=X[1,1]; for i:=1 to m do Begin for j:=1 to n do Begin if X[i,j]<min then Begin min:=X[i,j]; k1:=i; l1=j; End else if X[i,j]>max then Begin max:=X[i,j]; k2:=i; l2:=j; End end; end; writeln('min=',min,' i=',k1,' j=',l1); writeln('max=',max,' i=',k2,' j=',l2); Не нашли, что искали? Воспользуйтесь поиском:
|