Введение 8 Этапы создания Windowsприложения 8
Скачать 6.98 Mb.
|
7.14. Проверка совпадения всех элементов массиваЗадача проверки совпадения всех элементов массива решается двумя разными способами. Они оба используют тот факт, что если все элементы массива одинаковые, то они обязательно будут совпадать с нулевым элементом массива. Первый способ предлагает определить, если ли в массиве хотя бы один элемент, отличающийся от нулевого. Если да, значит, в не все элементы массива совпадают. Для этого последовательно анализируются все элементы массива. Если какой-нибудь элемент отличается от нулевого, то делается вывод, что в массиве есть различные элементы и цикл прерывается. Второй способ предлагает определить количество элементов, совпадающих с нулевым. Если это количество совпадет с общим количеством элементов в массиве, значит, массив состоит из одинаковых элементов. Рассмотрим особенности программной реализации обоих алгоритмов. Первый способ. Для решения задач нам потребуется логическая переменная, в которой будет храниться результат проверки массива. Dim test As Boolean Изначально предполагаем, что все элементы в массиве одинаковые. Тогда результатом проверки будет Истина (True). test = True Анализируем все элементы исходного массива, кроме нулевого. Очевидно, что нулевой элемент всегда будет совпадать с самим собой. Поэтому анализ элементов массива начинаем с элемента, имеющего номер 1. For i = 1 To n Сравниваем очередной элемент массива с нулевым. If a(i) <> a(0) Then Если они не совпадают, значит, в массиве есть различные элементы. Поэтому в результирующую переменную записываем значение Ложь (False). test = False И прерываем выполнение цикла, так как решение задачи уже получено. Exit For End If Next После завершения цикла выводим полученные результаты. Сначала печатаем горизонтальную черту, чтобы зрительно отделить исходные данные от результатов. lstA.Items.Add("-------------------------------") Затем анализируем полученный ответ. Обратите внимание на формулировку логического выражения в условном операторе. Оно записано в виде логической переменной5. При выполнении программы вместо логической переменной будет подставлено ее значение. Если оно будет равно Истине (True), то выполнятся операторы, стоящие в части Then. Если логическая переменная test будет иметь значение Ложь (False), то выполнятся операторы, стоящие в части Else. If test Then Если в переменной test записано значение Истина (True), значит, все элементы массива одинаковые. Выводим соответствующее сообщение. lstA.Items.Add("Все элементы одинаковые") Else В противном случае, если в переменной test хранится значение Ложь (False), значит, в массиве есть различные элементы. lstA.Items.Add("Есть несовпадающие элементы") End If Второй способ. В этом способ вместо логической переменной используется целочисленная переменная, в которой хранится количество элементов массива, равных нулевому элементу. Dim kol As Integer До начала анализа количество совпадений полагаем равным нулю. kol = 0 Организуем цикл для проверки все элементов массива. For i = 0 To n Анализируем текущий элемент массива. If a(i) = a(0) Then Если он совпадает с нулевым элементом массива, то увеличиваем количество совпадений на единицу. kol += 1 End If Next После завершения цикла выводим полученные результаты. Сначала печатаем горизонтальную черту, чтобы зрительно отделить исходные данные от результатов. lstA.Items.Add("-------------------------------") Затем анализируем найденное количество совпадений с нулевым элементом массива. If kol = n + 1 Then Если полученное значение на единицу превышает номер последнего элемента массива (то есть равно количеству элементов), значит, все элементы массива совпадают с нулевым. Следовательно, массив состоит из одинаковых элементов. lstA.Items.Add("Все элементы одинаковые") Else В противном случае в массиве есть несовпадающие элементы. И мы выводим соответствующее сообщение. lstA.Items.Add("Есть несовпадающие элементы") End If Полный текст программы представлен в приложении 33. Примеры работы программы при различных исходных данных приведены на рис. 48. Рис. 48. Примеры работы программы, проверяющей, совпадают ли все элементы массива |