Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Топ:
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного...
Техника безопасности при работе на пароконвектомате: К обслуживанию пароконвектомата допускаются лица, прошедшие технический минимум по эксплуатации оборудования...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Интересное:
Инженерная защита территорий, зданий и сооружений от опасных геологических процессов: Изучение оползневых явлений, оценка устойчивости склонов и проектирование противооползневых сооружений — актуальнейшие задачи, стоящие перед отечественными...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
|
из
5.00
|
Заказать работу |
Содержание книги
Поиск на нашем сайте
|
|
|
|
Решение. Сортировка –распределение элементов множества по группам в соответствии с определенными правилами. Например, сортировка «по невозpастанию» – это сортировка элементов массива, в результате которой получается массив, каждый элемент которого, начиная со второго, не больше стоящего от него слева. Существует достаточно большое число методов сортировки.
Приведем лишь простейшие из них.
Линейная сортировка (отбором). Пусть необходимо упорядочить массив по возрастанию (убыванию) элементов.
Алгоритм:
1. Просматриваем элементы, начиная с 1-го. Ищем минимальный (максимальный). Меняем его местами с 1-м элементом.
2. Просматриваем элементы, начиная со 2-го. Ищем минимальный (максимальный). Меняем его местами со 2-м элементом.
3. И т. д. до предпоследнего элемента.
Программа такой сортировки:
Sub сортировка_отбором()
Dim c(1 To 100) As Single
Dim k As Integer, i As Integer, j As Integer
Dim vr As Single
k = InputBox(''Введите количество элементов <= 100'')
If k > 100 Then Exit Sub
Cells(1, 1) = k
For i = 1 To k
c(i) = InputBox(''введите'' & i & '' элемент'')
Cells(i, 2) = c(i) 'Вывод исходного массива на лист
Next
For i=1 To k–1 'Двигаемся по массиву, сокращая неотсортированную часть
For j=i+1 To k 'Сpавниваем по очеpеди i-й элемент неотсоpтированной части массива со всеми, от i+1-го до конца
If c(j)<c(i) Then 'если в неотсоpтиpованной части массива нашли элемент, больший i-го, то меняем их местами:
vr = c(i)
c(i) = c(j)
c(j) = vr
End If
Next
Next
For i = 1 To k
Cells(i, 3) = c(i) 'Вывод результата на лист Excel
Next
End Sub
Со p ти p овка методом «п y зы p ька». Данный метод получил такое название по аналогии с пузырьками воздуха в стакане воды. Более «легкие» (максимальные или минимальные) элементы постепенно «всплывают». В отличие от линейной сортировки, сравниваются только пары соседних элементов, а не каждый элемент со всеми (поэтому такая сортировка выполняется за меньшее число шагов и, следовательно, быстрее).
Алгоритм:
1. Последовательно просматриваем пары соседних элементов массива (с).
2. Если для соседних элементов выполняется условие с[i-1]<с[i], то значения меняются местами.
Фрагмент программы сортировки методом «пузырька»:
For i = 2 To k
For j = k To i Step -1
If c(j-1)<c(j) Then 'вытеснить элемент справа, тогда пyзыpек всплывает влево
vr = c(j - 1)
c(j - 1) = c(j)
c(j) = vr
End If
Next
Next
Задача 15. Дан массив целых чисел A(10). Посчитать количество разных элементов в нем. Решение. Ниже приведена программа, разберите по ней алгоритм решения этой задачи самостоятельно:
Sub РазныеЭлементы()
Dim A(10) As Integer, k As Integer, k0 As Integer
For i = 1 To 10
A(i) = InputBox("Введите значение " & i & "-го элемента массива")
Next
k = 1
For i = 2 To 10
k0 = 1
For j = 1 To i - 1
If A(j) = A(i) Then
k0 = 0
Exit For
End If
Next
k = k + k0
Next
MsgBox "Разных элементов в массиве " & k
End Sub
Задачи для самостоятельной работы:
1. Дано целое число N и набор из N целых чисел. Найти номера первого и последнего минимального элемента из данного набора и вывести их в указанном порядке.
2. Найти минимальный из элементов массива А(10), принадлежащий интервалу (2;14).
3. Составить массив В из неположительных элементов массива А(15).
4. Дано положительное число В и набор из десяти чисел. Вывести максимальный из тех элементов набора, которые больше В, а также его номер. Если чисел, больших В, в наборе нет, то дважды вывести 0.
Лабораторная работа № 7. Задачи с данными– двумерными массивами
Матрицы – двумерные массивы вводятся и выводятся с помощью вложенных циклов: один перебирает строки, другой – столбцы матрицы. Какой из циклов внешний – неважно, главное – вложенные циклы позволяют перечислить все сочетания номеров строк и столбцов, т.е. учесть все элементы матрицы. Рассмотрим, например, матрицу М размера 5x7.
Задача 17. Ввод и вывод двумерного массива (матрицы).
Ввод матрицы с клавиатуры:
For i = 1 To 5 ‘перебираем строки
For j = 1 To 7 ‘перебираем столбцы
М(i,j) = InputBox("Введите элемент матрицы")
Next
Next
Ввод матрицы с листа Excel (матрица расположена на листе в диапазоне, например, A1:G5):
For i = 1 To 5 ‘перебираем строки
For j = 1 To 7 ‘перебираем столбцы от A до G
М(i,j) = Cells(i,j)
Next
Next
Работает вложенный цикл следующим образом. Счетчик строк i получает очередное значение (здесь вначале это 1), затем полностью выполняется цикл со счетчиком j, т.е. перебираются все элементы i-той строки. После этого значение счетчика строк увеличивается на единицу (i = i +1) и вновь полностью выполняется цикл по j, перебирающий столбцы матрицы. Процедура завершается после перебора последней строки. Если i и j поменять местами в заголовках циклов, т.е.:
For j = 1 To 7
For i = 1 To 5
A(i, j) = Cells(i, j)
Next
Next
то вначале будут перебираться все элементы первого столбца, потом второго и т. д. Вывод матрицы на лист Excel , например, в диапазон A 8: G 12:
For i = 8 To 12 ‘меняем строки, начиная с восьмой
For j = 1 To 7 ‘меняем столбцы от A до G
М(i,j) = Cells(i,j)
Next
Next
|
|
|
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpediasu.com 2017-2026 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!