Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Интересное:
Искусственное повышение поверхности территории: Варианты искусственного повышения поверхности территории необходимо выбирать на основе анализа следующих характеристик защищаемой территории...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Дисциплины:
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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!