История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Топ:
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Особенности труда и отдыха в условиях низких температур: К работам при низких температурах на открытом воздухе и в не отапливаемых помещениях допускаются лица не моложе 18 лет, прошедшие...
Генеалогическое древо Султанов Османской империи: Османские правители, вначале, будучи еще бейлербеями Анатолии, женились на дочерях византийских императоров...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Лечение прогрессирующих форм рака: Одним из наиболее важных достижений экспериментальной химиотерапии опухолей, начатой в 60-х и реализованной в 70-х годах, является...
Аура как энергетическое поле: многослойную ауру человека можно представить себе подобным...
Дисциплины:
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
|
|
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов (88‰)...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!