
- •7. Одномерные массивы 114
- •8. Обработка двумерных массивов (матриц) 162
- •9. Обработка строк 183
- •10. Тип данных, определенный пользователем. Структуры 214
- •11. Использование подпрограмм 228
- •Приложение 52 310 Список литературы 313 Введение
- •1. Этапы создания Windows-приложения
- •2. Среда Visual Basic 2005
- •2.1. Структура среды Visual Basic 2005
- •2.2. Создание нового проекта
- •2.3. Сохранение проекта
- •2.4. Выполнение приложения
- •2.5. Основные команды среды Visual Basic 2005
- •2.6. Методы тестирования
- •2.7. Отладка приложений в среде vb
- •3. Разработка интерфейса в среде vb. Основные элементы управления
- •3.1. Метка
- •3.2. Текстовое поле
- •3.3. Кнопка
- •3.4. Окно списка
- •3.5. Выравнивание положения элементов управления
- •4. Программа линейной структуры
- •4.1. Понятие переменной
- •4.2. Типы данных
- •4.3. Объявление переменных
- •4.4. Оператор присваивания
- •Оператор присваивания работает справа налево.
- •4.5. Константы
- •4.6. Арифметические операции
- •4.7. Математические функции
- •4.8. Арифметическое выражение
- •4.9. Окно ввода (InputBox)
- •4.10. Окно вывода сообщения (MsgBox)
- •4.11. Пример. Вычисление площади треугольника
- •4.12. Пример. Нахождение цифр числа
- •5. Организация ветвлений
- •5.1. Логические константы и переменные
- •5.2. Операции сравнения
- •5.3. Логические операции
- •5.4. Логическое выражение
- •5.5. Условный оператор
- •5.6. Функция iIf
- •5.7. Оператор множественного ветвления ElseIf
- •5.8. Оператор выбора Select Case
- •5.9. Оператор безусловного перехода GoTo
- •5.10. Пример. Решение линейного уравнения
- •5.11. Пример. Программа-калькулятор
- •6. Программирование повторений
- •6.1. Цикл со счетчиком
- •6.1.1. Табуляция функции
- •6.1.2. Вычисление факториала
- •6.1.3. Обработка совокупности чисел с известным числом элементов
- •6.2. Цикл с условием
- •6.2.1. Ввод с проверкой
- •6.2.2. Обработка совокупности чисел с неизвестным числом элементов
- •6.2.3. Вычисление суммы ряда по общей формуле
- •Вычисление суммы ряда с использованием рекуррентного соотношения
- •6.2.5. Вычисление произведения ряда
- •Решение нелинейных уравнений методом простой итерации
- •7. Одномерные массивы
- •Массивы всегда обрабатываются в цикле.
- •7.1. Ввод массива
- •Вывод массива в окно списка и в текстовое поле
- •7.3. Вычисление суммы и произведения элементов массива
- •7.4. Определение количества элементов массива, удовлетворяющих некоторому условию
- •7.5. Вычисление среднего арифметического и среднего геометрического элементов массива, удовлетворяющих некоторому условию
- •7.6. Нахождение максимального элемента массива
- •7.7. Нахождение минимального элемента массива, удовлетворяющего некоторому условию
- •7.8. Поиск первого элемента массива, удовлетворяющего некоторому условию
- •7.9. Поиск последнего элемента массива, удовлетворяющего некоторому условию
- •7.10. Замена одного элемента массива
- •7.11. Замена всех элементов массива, удовлетворяющих некоторому условию
- •7.12. Перестановка местами двух элементов массива
- •7.13. Формирование нового массива из некоторых элементов исходного массива
- •7.14. Проверка совпадения всех элементов массива
- •7.15. Проверка упорядоченности всех элементов массива
- •7.16. Сортировка массива методом пузырька
- •7.17. Линейная сортировка массива (методом поиска минимума)
- •Никогда нельзя использовать одновременно оба способа перестановки элементов массива.
- •8. Обработка двумерных массивов (матриц)
- •8.1. Ввод прямоугольной матрицы
- •8.2. Вывод прямоугольной матрицы в окно списка и в текстовое поле
- •8.3. Поиск максимального элемента матрицы
- •8.4. Обработка матрицы по строкам
- •8.5. Обработка матрицы по столбцам
- •8.6. Обработка квадратных матриц
- •Для обработки элементов, стоящих на любой диагонали, достаточно одного цикла. Для обработки элементов, принадлежащих к одному из треугольников, необходимо использовать вложенные циклы.
- •9. Обработка строк
- •9.1. Основные функции обработки строк
- •9.2. Посимвольная обработка строки
- •9.3. Формирование массива слов строки
- •9.4. Формирование строки из массива слов
- •9.5. Слова-палиндромы
- •9.6. Выделение чисел из строки
- •9.7. Сравнение строк
- •9.8. Обработка многострочного текста
- •10. Тип данных, определенный пользователем. Структуры
- •10.1. Описание структуры. Область видимости. Понятие метода
- •10.2. Оператор With
- •10.3. Ввод массива структур
- •10.4. Вывод массива структур
- •10.5. Поиск в массиве структур
- •10.6. Формирование нового массива из некоторых элементов исходного массива
- •10.7. Сортировка массива структур
- •11. Использование подпрограмм
- •11.1. Определение процедуры и функции. Описание процедуры и функции
- •11.2. Передача параметров по ссылке и по значению
- •11.3. Формальные параметры и фактические переменные
- •11.4. Локальные и глобальные переменные
- •11.5. Static-переменные
- •Приложение 1
- •Приложение 2
- •Приложение 3
- •Приложение 4
- •Приложение 5
- •Приложение 6
- •Приложение 7
- •Приложение 8
- •Приложение 9
- •Приложение 10
- •Приложение 11
- •Приложение 12
- •Приложение 13
- •Приложение 14
- •Приложение 15
- •Приложение 16
- •Приложение 17
- •Приложение 18
- •Приложение 19
- •Приложение 20
- •Приложение 21
- •Приложение 22
- •Приложение 23
- •Приложение 24
- •Приложение 25
- •Приложение 26
- •Приложение 27
- •Приложение 28
- •Приложение 29
- •Приложение 30
- •Приложение 31
- •Приложение 32
- •Приложение 33
- •Приложение 34
- •Приложение 35
- •Приложение 36
- •Приложение 37
- •Приложение 38
- •Приложение 39
- •Приложение 40
- •Приложение 41
- •Приложение 42
- •Приложение 43
- •Приложение 44
- •Приложение 45
- •Приложение 46
- •Приложение 47
- •Приложение 48
- •Приложение 49
- •Приложение 50
- •Приложение 51
- •Приложение 52
- •Список литературы
5.8. Оператор выбора Select Case
Оператор выбора применяется для программирования выбора одной из нескольких взаимоисключающих возможностей (альтернатив), при этом условием выбора ветви алгоритма является значение некоторого выражения. Оператор выбора имеет следующий синтаксис.
Select Case Выражение
Case Список Значений 1
Операторы 1
Case Список Значений 2
Операторы 2
. . .
Case Список Значений N
Операторы N
Case Else
Операторы Else
End Select
Список значений– это последовательность выражений, разделенных запятым. Выражение может быть представлено в виде константы, числа, строки, переменной, арифметического, логического или строкового выражения. Также Список Значений может включать выражения специального вида: диапазон и луч.
Выражение-диапазон позволяет задать диапазон возможных значений. Оно имеет следующий синтаксис.
Выражение To Выражение
Например, диапазон 1 To 5определяет отрезок от 1 до 5, включая границы. В Visual Basic 2005 границы всегда включаются в диапазон.
Выражение-луч используется, когда надо определить полуинтервал возможных значений. Оно имеет следующий синтаксис.
Is Знак операции сравнения Выражение
Например, луч Is > 10задает множество чисел, превышающих 10.
Рассмотрим логику работы оператора выбора. Сначала вычисляется значение Выражения, стоящего в заголовке оператора. Если это значение совпадет с одним из элементовСписка Значений 1, то выполнятся блокОператоры 1. В противном случае анализируются элементыСписка Значений 2. В случае совпадения выполняется блокОператоры 2. Иначе анализируетсяСписок Значений 3 и так далее. Если значениеВыражения, стоящего в заголовочной части оператора, не совпало ни с одним значением из всехСписков Значений, то выполняется блокОператоры Else, стоящий в частиCase Else. ЧастьCase Elseявляется необязательной и может отсутствовать. В этом случае операторSelect Caseне будет выполнять никаких действий, а выполнение программы продолжится с оператора, стоящего после ключевого словосочетанияEnd Select. Обратите внимание, что всегда выполняется только одна ветвь оператора выбора. Даже если значение заголовочногоВыраженияпопадает в несколькоСписков Значений. В таких случаях реализуется первая из подходящих ветвей оператора.
Разберем два примера использования оператора выбора.
Пример 1.Необходимо составить программу, которая для заданного числа выводит его характеристику: ноль, однозначное четное, однозначное нечетное, от 10 до 20, больше 20, отрицательное.
Полный текст программы приведен в приложении 6.
В качестве заголовочного выражения возьмем анализируемую переменную a. И рассмотрим все возможные ее значения. Каждый вариант будем оформлять в виде отдельного блока Case.
Select Case a
Case 0
MsgBox("Ноль")
Когда значений в списке несколько, они перечисляются через запятую.
Case 2, 4, 6, 8
MsgBox("Однозначное четное")
Case 1, 3, 5, 7, 9
MsgBox("Однозначное нечетное")
Для обработки отрицательных чисел воспользуемся выражением типа луч.
Case Is < 0
MsgBox("Отрицательное")
Числа от 10 до 20 зададим с помощью диапазона.
Case 10 To 20
MsgBox("От 10 до 20")
Все остальные числа определим, используя блок Case Else.
Case Else
MsgBox("Больше 20")
End Select
В результате мы получили оператор выбора, который решает поставленную задачу, то есть, анализируя значение переменной, выводит характеристику числа.
Пример 2. Требуется составить программу, определяющую, какое из трех введенных чисел равно пяти. Предполагается, что все три введенных числа различны.
Полный текст программы приведен в приложении 7.
Если в первом примере в качестве заголовочного выражения мы использовали переменную, то в данной задаче удобнее использовать значение. Так как требуется определить, какое из чисел равно пяти, то заголовочное выражение оператора выбора будет записано в виде числа 5. А списки значений будут содержать переменные, которые будут сравниваться со значением заголовочного выражения.
Select Case 5
Case a
MsgBox("a=5")
Case b
MsgBox("b=5")
Case c
MsgBox("c=5")
Case Else
MsgBox("Ни одно из чисел неравно 5")
End Select