Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методика по Информатике / VBA / Усольцева Л.А.- Программир.на VBA.doc
Скачиваний:
110
Добавлен:
10.04.2015
Размер:
1.71 Mб
Скачать

Вычисление минимального и максимального элементов в одномерных массивах

При вычислении минимального или максимального элементов в одномерном массиве должны выполняться следующие условия:

Y(i), если Y(i) > Max;

Max =

Max, если Y(i)  Max.

Y(i), если Y(i) < Min;

Min =

Min, если Y(i)  Min.

За первоначальное значение максимального элемента можно принять очень маленькое число или первый элемент массива, а за первоначальное значение минимального элемента – очень большое число или первый элемент массива, т.е., например, если массив состоит из целых чисел, то

Max = – 32000 или Max = Y(1),

Min = 32000 или Min = Y(1).

Пример 16.

Прочитать с рабочего листа Excel одномерный массив. Вычислить минимальный и максимальный элементы этого массива и поменять их местами. Новый массив поместить на тот же лист ниже первого. Минимальный и максимальный элементы также напечатать на рабочем листе.

Программный код

Sub PR16 ( )

Dim A(10) As Integer

Dim i, R As Integer

Dim Min, Max, imin, imax As Integer

For i = 1 To 10

A(i) = Cells(1, i) ‘ ввод массива

Next i

Min = 32000: Max = –32000

For i = 1 To 10

If A(i) > Max Then

Max = A(i) ‘ вычисление максимума

imax = i ‘ и его номера

End If

If A(i) < Min Then

Min = A(i) ‘ вычисление минимума

imin = i ‘ и его номера

End If

Next i

Cells(2, 1) = "Max="

Cells(2, 2) = Max

Cells(2, 4) = "IMax"

Cells(2, 5) = imax

Cells(3, 1) = "Min="

Cells(3, 2) = Min

Cells(3, 4) = "IMin"

Cells(3, 5) = imin

R = A(IMax) ‘ меняем местами

A(IMax) = A(IMin) ‘ максимальный и

A(IMin) = R ‘ минимальный элементы

For i = 1 To 10

Cells(5, i) = A(i) ‘ вывод нового массива

Next i

End Sub

Врезультате работы этой программы на рабочем листеExcel появятся следующие данные (рис. 9).

Рис. 9. Вычисление минимального и максимального элементов массива

Сортировка элементов одномерного массива методом “пузырька”

Рассмотрим одномерный массив А:

– 4 6 – 2 10

Нужно расставить элементы этого массива по убыванию, т.е. получить массив

10 6  2  4.

Метод “пузырька” заключается в том, что сравниваются два соседних элемента массива, и если первый из них меньше второго, то их переставляют местами (сортировка по убыванию).

I просмотр

– 4 6 – 2 10

6 – 4 – 2 10

6 – 2 – 4 10

6 – 2 10 – 4

II просмотр

6 – 2 10 – 4

6 10 – 2 – 4

III просмотр

6 10 – 2 – 4

10 6 – 2 – 4

Для того чтобы поменять местами два элемента массива, необходимо в дополнительную переменную, например R, записать один элемент массива, на место этого элемента записать второй элемент, а на место второго записать значение переменной R.

Пример. Поменять местами первый и второй элементы массива.

R = A(1)

A(1) = A(2)

A(2) = R

Пример 17. Отсортировать массив методом “пузырька” по убыванию.

Программный код

Option Explicit

Sub PR17 ( )

Dim A(30) As Integer

Dim N, I, K, R As Integer

N = Val(InputBox("Введите N")) ‘ввод размерности массива

For I = 1 To N

Cells(1,I) = Int(Rnd * 100 – 50) ‘ заполнение ячеек рабочего листа случайными числами

A(I) = Cells(1,I) ‘ заполнение массива

Next I

For K = 1 To N–1 ‘ Сортировка массива

For I = 1 To N–K

If A(I) < A(I+1) Then

R = A(I) ‘ Перестановка элементов

A(I) = A(I+1)

A(I+1) = R

End If

Next I

Next K

Cells(3,3) = "Упорядоченный массив"

For I = 1 To N ‘ Распечатка полученного массива

Cells(5,I) = A(I) ‘на рабочем листе Excel

Next I

End Sub

При сортировке массива методом “пузырька” по возрастанию в программе следует изменить только знак “меньше” (<) на знак “больше” (>).