Механическое удерживание земляных масс: Механическое удерживание земляных масс на склоне обеспечивают контрфорсными сооружениями различных конструкций...
Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Топ:
Процедура выполнения команд. Рабочий цикл процессора: Функционирование процессора в основном состоит из повторяющихся рабочих циклов, каждый из которых соответствует...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2024-02-15 | 76 |
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
|
|
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!