Главная страница
Навигация по странице:

  • Первый способ.

  • Второй способ.

  • Введение 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
    страница30 из 63
    1   ...   26   27   28   29   30   31   32   33   ...   63

    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. Примеры работы программы, проверяющей, совпадают ли все элементы массива

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


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