Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekz_informat (1).docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
223.77 Кб
Скачать

11. Одномерные массивы..

При работе с таблицами часто нужно применить одну и туже операцию к целому диапазону ячеек или выполнить расчеты по формулам,зависящим от большого массива данных,к таким задачам относятся,например,умножение матрицы на матрицу или умножение матрицы на число.Для решения таких задач в exel можно исп.массивы..Формула массива исп. несколько множеств значений,называемых массивами аргументов,и вычисляет одно или несколько значений.Диапазон массива-это блок ячеек,который имеет общ. Формулу массива. Объявление массива с использованием оператора Dim имеет следующий синтаксис:

Dim VarName([Subscripts]) As Тип_Переменных_Массива

VarName - любое имя массива, использующее допустимый идентификатор имени; Subscripts - измерение массива. Если размерность массива больше единицы, то Subscripts разделяются запятыми.

Примеры правильного объявления массивов:

Dim а_Str (1 To 10) As String --- одномерный статический строковый массив, включающий 10 элементов

Dim а_Var()--динамический массив

Мы можем динамич.сделать статическим,переименовав:

Dim a()

n=InputBox(“Введите n”)

ReDim a(1 to n)

Поиск элемента массива:

For i=1 To n

Cells (i,1)=a(i)

If a(i)=3 Then (Cells (2;2)=a(i))

MsgBox (“Элемент есть”)

Next i

Вычисление суммы элементов массива(произведения)

s=0 (p=1)

For i=1 To n

S=s+x(i) (p=p*x(i))

Next I

Нахождение наиб.элемента массива:

Max=x(I)

For i=1 To n

If x(i)>Max Then Max=x(i)

Next i

12. Простейшие методы сортировки: пузырьковая, поиском максимального элемента.

Сортировка-это процесс целенаправленной перестановки элементов заданной конечной последовательности,в результате которой получается последовательность с элементами,расположенными в порядке возрастания или убывания их значений.

Последовательность наз.упорядоченной,если выполнено одно из 2 условий:либо все элементы расположены по возрастаниию,либо по убыванию.сущ неск методов сортировки одномерных массивов:метод перестановки соседних элементов массива(метод пузырька);метод простого выбора(или поиска экстремумов)

Релевантность- значимость, интерес(в рейтинге)

Пузырьковая сортировка

В первом приближении алгоритм пузырьковой сортировки можно представить как серию просмотров обрабатываемого массива таких, что при каждому просмотре элементов сравниваются между собой два соседних элемента (i и i+1) и при необходимости меняются местами.

Оказывается, что при первом просмотре массива, элемент с самым большим значением переместится в конец массива.

После второго прохода по массиву второй по величине элемент окажется на предпоследней позиции массива.

Проходы по массиву имеет смысл повышать до тех пор, пока не выполнится одно из двух условий:

-1) Во время последнего прохода по массиву не было сделано ни одного обмена элементами (массив отсортирован).

-2)Сделано уже n-1 проходов по массиву.

Sub Puz_sort (M As Integer, x() As Integer)

Dim i As Integer, MM As Integer, k As Integer, temp As Integer

MM=M

iter:

k=0

For i=2 to MM ‘Начало внутреннего цикла

If x(i)<x(i-1) then

k=1

temp=x(i):x(i)=x(i-1):x(i-1)=temp ‘Конец внутреннего цикла

End if

Next i

MM=MM-1

If k=1 then GoTo iter ‘ Внешний цикл)

End Sub

x() - массив (с неопределённой длиной) Dim..Объявление локальных переменных

k→k=1

Если значение переменной не равно нулю, то оно трактуется как истина.

12..Если значение переменной равно нулю, то оно трактуется как ложь.

Сортировка поиском максимального элемента.

Private Sub knopka( )

Dim i As Integer, j As Integer, k As Integer, n As Integer

Dim a( ) As Integer

n=10

ReDim a(n) ←(Отводит память под массив)

For i=1 to n ‘Cоздаёт массив,

a(i)=Int(100*Rnd) заполненный рандомными

cells(i,1)=a(i) элементами)

Next i ‘Сортировка *(Rnd-псевдо случайное число,

Call MaxSoft(n,a()) Int-целые)

For i=1 to n ‘Записывает в ячейки результат,

Cells(i,4)=a(i) чтобы мы увидели, что он отсортирован

Next i

End Sub

MaxSoft-Получает значение через параметры n и a, выполняет работу сортировки и результат сортировки возвращает через эти же параметры в главную программу.

Sub MaxSoft (n As Integer, a() As Integer)

Dim i As Integer, j As Integer, k As Integer

Dim iMax As Integer, aMax As Integer

For j=n to 2 step -1

aMax=a(1):iMax=1

For i=2 to j

If a(i)>aMax then

aMax=a(i)

iMax=i

End If

Next i

k=a(j):a(j)=a(iMax):a(iMax)=k ‘Обмен элементов местами

Next j

End Sub

Схематическое описание сортировки поиском максимального значения.

Алгоритм сортировки поиском максимального значения схематично можно представить, как серию укорачивающихся просмотров исходного массива (внешний цикл). Во время каждого из таких просмотров ищется максимальный элемент и ставится на последнее, предпоследнее и т.д. место (в зависимости от номера просмотра). При последнем просмотре массива проверяются только 2 первых элемента.

-Обе сортировки одинаково формируют множество уже отсортированных элементов, которое будет расти с конца массива к началу от самого большого элемента к самому маленькому (внешне одинаковы).

-Количество сравнений одинаково в обеих сортировках.

-В пузырьковой сортировке обмениваются 2 соседних числа, а в сортировке поиском максимального значения …….?

с числом, выполняющим роль максимального.

-В пузырьковой сортировке обменом больше.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]