Главная / Разработка алгоритмов / Циклический алгоритм с ветвлением

Циклический алгоритм с ветвлением

Задание. Имеется массив X из n элементов. Количество элементов в массиве (n) известно. Необходимо найти элемент с максимальным значением и определить его порядковый номер (i) в этом массиве.
Решение.
Для решения этой задачи необходимо:

  • разработать проект рабочего листа Excel;
  • разработать и описать блок-схему алгоритма;
  • разработать и отладить программу;
  • выполнить вычисления.

Рассмотрим подробнее каждый из этих этапов.

1.Проект рабочего листа Excel.

Предусмотрим на рабочем листе Excel места для ввода исходных данных и вывода результатов вычислений (рис. 1).

Проект рабочего листа Excel

Рисунок 1


Входной информацией является массив Х (столбец А) и количество элементов в массиве n (ячейка F1). Результатом решения задачи является максимальное значение в массиве (Хmax) и порядковый номер (imax) этого максимального значения (ячейки F7 и F8). Для решения задачи будут созданы две процедуры, которые будут запускаться с помощью кнопок CommandButton1 и CommandButton2. Первая процедура будет создавать пользовательский интерфейс, то есть все надписи в ячейках А1, E1, E2, E6. Вторая процедура будет выполнять, ввод данных из таблицы Excel, все необходимые вычисления и вывод результатов (Xmax, imax).

2. Блок-схема алгоритма.

Блок-схема алгоритма представлена на рис. 2.

Рисунок 2

 

В блок-схеме приняты следующие обозначения:
n - количество элементов в массиве; Xmax – текущее максимальное значение элемента массива из числа уже проверенных; imax – порядковый номер текущего максимального значения элемента массива. Ниже представлено описание некоторых блоков алгоритма.

Блок 3. Осуществляется выделение ячейки таблицы Excel, в которой находится первый элемент массива.
Блок 4. Максимальное значение Xmax приравнивается значению первого элемента в массиве. Это значение (Xmax) изменится в том случае, если значение любого элемента в этом массиве окажется больше чем текущее Xmax.
Блок 6. Начало цикла сравнения значения очередного элемента массива с текущим максимальным значением.
Блок 8. Сравнения значения очередного элемента массива с текущим максимальным значением осуществляется с помощью условия: X > Xmax ?
Блок 9 и блок 10. Если значение проверяемого элемента окажется больше текущего максимального значения Xmax, то оно принимается в качестве максимального: Xmax = X. В этом случае меняется также порядковый номер элемента с максимальным значением: imax = i.
Блок 11. Для перехода к следующему элементу массива осуществляется сдвиг активной ячейки на одну строку вниз: ActiveCell.Offset(1,0).Select.
Блок 12. Результаты решения задачи записываются в ячейки таблицы Excel (Range("F7") = Xmax; Range("F8") = imax). Эти результаты будут отражаться на экране монитора (рис. 3).


3. Программа для реализации алгоритма.

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

Первая процедура:

Private Sub CommandButton1_Click() Range("a1") = "X"
Range("E1") = "Укажите количество элементов в массиве:"
Range("E2") = "n="
Range("E6") = "Результат:"
Range("E7") = "Xmax="
Range("E8") = "imax="
End Sub
 

Вторая процедура:

Private Sub CommandButton2_Click()
n = Range("F2")
Range("A2").Select
Xmax = ActiveCell
imax = 1
For i = 1 To n
X = ActiveCell
If X > Xmax Then
Xmax = X
imax = i
End If
ActiveCell.Offset(1, 0).Select
Next i
Range("F7") = Xmax
Range("F8") = imax
Range("E7:F8").Select
End Sub
 
4. Результаты решения задачи.

Рисунок 3