Главная страница

Введение 8 Этапы создания Windowsприложения 8


Скачать 6.98 Mb.
НазваниеВведение 8 Этапы создания Windowsприложения 8
АнкорVisual Basic 2005 (word97).doc
Дата22.12.2017
Размер6.98 Mb.
Формат файлаdoc
Имя файлаVisual Basic 2005 (word97).doc
ТипРеферат
#12532
страница31 из 63
1   ...   27   28   29   30   31   32   33   34   ...   63

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


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

Если i < j, то a(i) <= a(j),

где i и j – номера элементов массива, a(i) и a(j) – элементы массива с соответствующими номерами.

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

Если i < j, то a(i) >= a(j),

где i и j – номера элементов массива, a(i) и a(j) – элементы массива с соответствующими номерами.

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

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

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

Dim test As Boolean

До начала проверки предполагаем, что массив упорядочен. Следовательно, в результирующую переменную мы записываем значение Истина (True).

test = True

Организуем цикл для проверки всех элементов массива, от нулевого до предпоследнего. Так как на каждом шаге цикла мы будем сравнивать элементы с номерами i и (i+1), то завершить цикл надо, когда значение счетчика i станет равным n-1. В этом случае на последнем шаге цикла будут сравниваться элементы с номерами (n-1) и n. Если цикл после этого шага не прервать, то программа станет сравнивать элементы с номерами n и (n+1). Элемент с номером (n+1) в массиве отсутствует, поэтому произойдет аварийное завершении программы и ответ получен не будет.

For i = 0 To n – 1

Анализируем соседние элементы.

If a(i) > a(i + 1) Then

Если элемент a(i) больше элемента a(i + 1), то есть предшествующий элемент больше, чем последующий, значит, массив не отсортирован по возрастанию. Записываем в результирующую переменную значение Ложь (False).

test = False

Теперь выполнение цикла можно прекратить, так как ответ уже получен.

Exit For

End If

Next

После завершения цикла выводим полученные результаты. Сначала печатаем горизонтальную черту, чтобы зрительно отделить исходные данные от результатов.

lstA.Items.Add("-------------------------------")

Затем анализируем полученный ответ. Обратите внимание на формулировку логического выражения в условном операторе. Она такая же, как в разделе 7.14.

If test Then

Если в переменной test записано значение Истина (True), значит, элементы массива упорядочены. Выводим соответствующее сообщение.

lstA.Items.Add("Элементы массива упорядочены")

Else

В противном случае, если в переменной test хранится значение Ложь (False), значит, элементы массива неупорядочены.

lstA.Items.Add("Элементы массива неупорядочены")

End If

Полный текст программы представлен в приложении 34. Примеры работы программы при различных исходных данных приведены на рис. 49.


Рис. 49. Примеры работы программы, проверяющей, упорядочены ли элементы массива по возрастанию

1   ...   27   28   29   30   31   32   33   34   ...   63


написать администратору сайта