Задача 14. Отсортировать массив чисел по возрастанию. — КиберПедия 

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...

Задача 14. Отсортировать массив чисел по возрастанию.

2024-02-15 23
Задача 14. Отсортировать массив чисел по возрастанию. 0.00 из 5.00 0 оценок
Заказать работу

 Решение. Сортировка –распределение элементов множества по группам в соответствии с определенными правилами. Например, сортировка «по невоз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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.