Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 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; просмотров: 76; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 18.226.4.239 (0.019 с.) |