Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
С использованием матричных функцийСодержание книги
Поиск на нашем сайте
N=input('Введите число элементов массива '); disp('Введите элементы массива'); for i=1:N disp(sprintf('x(%g)=',i)) x(i)= input(' '); end max_el=max(x); disp(sprintf('Максимальный элемент=%4.1f',max_el))
Задача 31. Поиск минимума в массиве и его перестановка Условие задачи. В заданном массиве поменять местами минимальный элемент с первым. Известно, что в массиве имеется только один элемент с минимальным значением. Для того, чтобы поменять местами два элемента массива, необходимо знать индексы (номера) этих элементов. По условию задачи требуется поменять местами 1-й элемент массива с минимальным, поэтому наша задача сначала найти позицию минимального элемента, а затем осуществить перестановку. Алгоритм поиска наименьшего элемента массива аналогичен алгоритму поиска максимума, его конкретное применение к этой задаче рассмотрим ниже. Обычно обмен местами, или перестановка, значений двух переменных осуществляется с использованием вспомогательной переменной следующим образом. В эту вспомогательную переменную записывается любое из двух переставляемых местами значений, например, первое из них, затем на место первой переменной помещается значение второй переменной, а на место второй переменной переносится содержимое вспомогательной переменной, в которой сохранено исходное значение первой переменной. Аналогичным образом осуществляют перестановку значений двух элементов массива. Например, нам надо переставить элементы массива X с номерами k и p. Выберем переменную, например buf, в нее запишем значение элемента массива с номером k (buf = X [ k ]), на место этого элемента поместим элемент с номером p (X [ k ]= X [ p ]), а на место элемента с номером p поместим значение переменной buf, в которой сохранено исходное значение X [ k ] (X [ p ]= buf). В нашей задаче нужно поменять местами первый элемент массива с наименьшим. Для поиска минимального значения и его номера предусмотрим переменные min и pm in. В переменную min поместим первый элемент массива (min = X [1]), а в pmin - его номер (pmin=1). Далее в цикле i=2, n, со второго элемента массива до последнего, будем последовательно сравнивать каждый элемент массива с содержимым ячейки min. Если очередной элемент массива X [i], окажется меньше, чем значение min, то в переменную min записывается элемент X [i] (min= X [i]), а в pmin запоминается его номер (pmin= i). Так будет продолжаться n -1 раз, пока все элементы массива не будут проверены. В результате в переменной min окажется наименьший элемент массива, а в pmin - его номер. Как мы уже знаем, перестановка элементов массива производится через вспомогательную переменную. Однако, в нашем случае мы определили и позицию минимального элемента (pmin), и само значение этого элемента (min), поэтому в качестве вспомогательной переменной можно использовать переменную min, в которой уже хранится значение минимума. Для перестановки можно выполнить следующие действия: в элемент массива с номером pmin (на место минимума) занести первый элемент массива (X [ pmin ]= X [1]), а на место первого элемента - значение минимального элемента (X [1]= min). Теперь нужно вывести измененный массив. Структурированная запись алгоритма 31 1. Ввести количество элементов массива n и значения элементов массива X 2. Для контроля вывести исходный массив X 3. В переменную pmin записать номер первого элемента массива (pmin =1), a в min – значение этого элемента (min = X [1]) 4. В цикле для i=2, n повторять 4.1. Если X [ i ]<min, то 4.1.1. min=X[i] 4.1.2. pmin=i 5. Выполнить перестановку элементов X [ pmin ]= X [1]; X [1]= min 6. Вывести массив Х после перестановки элементов. Схема алгоритма
Программа на языке Си #include <stdio.h> #define N 20 int main() { int i, n, pmin; double X[N], min; printf("n="); scanf("%d",&n); printf("\n Введите элементы массива\n"); for(i=0; i<n; i++) scanf("%lf",&X[i]); pmin=0; min=X[0]; for(i=1;i<n;i++) if (X[i]<min) { min=X[i]; pmin=i; } X[pmin]=X[0]; X[0]=min; printf("\n Измененный массив\n"); for(i=0; i<n; i++) printf("%5.2lf\n ", X[i]); return 0; } Программа на языке Паскаль Program main_31; Var X:array of real; min:real; n,i,pmin:integer; begin writeln('Введите n'); readln(n); setlength(X,n); writeln('Введите массив'); for i:=0 to n-1 do readln (X[i]); pmin:=0; min:=X[0]; for i:=1 to n-1 do if x[i]<min then begin min:=X[i]; pmin:=i; end; X[pmin]:=X[0]; X[0]:=min; writeln('Измененный массив'); for i:=0 to n-1 do write(X[i]:3:0,' '); writeln; X:=nil; end. Программа на языке Фортран Program main Implicit none real, allocatable:: X(:) integer i,n,pmin real min print*,'Введите n' read*,n allocate(X(n)) print*,'Введите массив' read*,(X(i), i=1,n) print *, 'Исходный массив' print '(<n>(F4.1,2x))',(X(i),i=1,n) min=X(1) pmin=1 do i=2,n if (X(i)<min) then min=X(i) pmin=i endif enddo X(pmin)=X(1) X(1)=min print *, 'Измененный массив' print '(<n>(F4.1,2x))',(X(i),i=1,n) deallocate(X) end Программа на языке Python print("Введите число элементов массива") print(" (если N<1 то N=50) ") N=int(input()) if N < 1: N = 50 Х = [] # Создаем пустой список for i in range(N): # i = 0,..., N-1 -- всего N print("Введите {0}-й элемент: ".format(i+1)) Х.append(float(input())) K=0 Min = Х[K] for i in range(1,N): # i = 1,..., N-1 -- всего N-1 сравнений if Х[i] <Min: K = i Min = Х[K] Х[K] = Х[0] Х[0] = Min print("Измененный массив: ") for i in range(N): print("Х[{0}] = {1} ".format(i+1,Х[i])) Программа в системе Матлаб n=input('Введите n='); for i=1:n X(i)=input('X(i)='); end pmin=1; min=X(1); for i=2:n if X(i)<min min=X(i); pmin=i; end end X(pmin)=X(1); X(1)=min; disp('Измененный массив'); disp(X)
|
||||
|
Последнее изменение этой страницы: 2021-04-12; просмотров: 154; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.151 (0.008 с.) |