- •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.4. Логическое выражение
Логическое (условное) выражение может быть представлено в четырех видах: логическая константа, логическая переменная, простое условие или сложное условие. Любое логическое выражение может иметь только одно из двух значений: Истина (True) или Ложь (False).
Логические константы и переменные рассмотрены в разделе 5.1.
Простое условие – это два выражения, между которыми стоит знак операции сравнения. В роли выражений могут выступать числа, числовые переменные, математические функции, арифметические выражения, строки, строковые переменные, строковые функции и строковые выражения. Оба выражения, участвующие в сравнении, обязательно должны принадлежать к одному и тому же типу. Если простое условие выполняется, оно имеет значение Истина (True). В противном случае оно имеет значение Ложь (False).
Сложное условие – это последовательность простых условий, логических переменных и логических констант, которые соединены между собой знаками логических операций. Традиционно каждую составную часть сложного условия берут в круглые скобки, хотя в Visual Basic 2005 это является необязательным.
5.5. Условный оператор
Условный оператор в Visual Basic 2005 предназначен для организации ветвлений. Существует две формы синтаксиса условного оператора: однострочный оператор и многострочный оператор.
Как следует из названия, однострочный оператор всегда записывается в одну строку. Он используется в тех случаях, когда ветви алгоритма содержат небольшое количество действий, чаще всего одно. Однострочный условный оператор имеет следующий синтаксис.
If Условное Выражение Then Оператор1 Else Оператор2
Многострочный условный оператор записывается в несколько строк. Причем распределение ключевых слов по строкам является обязательным и не может быть изменено. Рассмотрим синтаксис многострочного условного оператора.
If Условное Выражение Then
Группа Операторов 1
Else
Группа Операторов 2
End If
В отличие от однострочного условного оператора, ветви многострочного оператора могут содержать не одно, а несколько действий. Поэтому данная форма условного оператора применяется гораздо чаще однострочной формы. Ее традиционно рекомендуют использовать начинающим программистам.
Так как принцип работы условного оператора не зависит от его синтаксической формы, то в дальнейшем мы не будем делать разницы между однострочной и многострочной формами. Рассмотрим логику работы условного оператора.
Условный оператор позволяет в определенный момент времени выбрать дальнейший путь выполнения алгоритма. Переход к выбранному пути называется условным переходом. Существует два вида условного перехода: одинарный или двойной.
Одинарный условный переход (другое его название – обход) предполагает, что действия есть только в одной ветви алгоритма, а другая его ветвь пуста, то есть не содержит ни одного действия. Условный оператор, реализующий такой переход, не имеет части, которая начинается с ключевого слова Else. ЕслиУсловное Выражениеимеет значение Истина (True), то выполняются операторы, стоящие после ключевого словаThen. ЕслиУсловное Выражениеимеет значение Ложь (False), то выполнение условного оператора завершается и программа продолжает свою работу с оператора, стоящего после условного.
При двойном условном переходе действия находятся в обеих ветвях алгоритма. Условный оператор, реализующий двойной условный переход, содержит как часть Then, так и частьElse. ЕслиУсловное Выражениеимеет значение Истина (True), то выполняются операторы, стоящие в частиThen. ЕслиУсловное Выражениеимеет значение Ложь (False), то выполняются операторы, стоящие в частиElse. Заметим, что частиThenиElseникогда не могут быть выполнены одновременно. После завершения работы условного оператора выполнение программы продолжается с оператора, стоящего сразу после него.
В качестве примера рассмотрим четыре разных варианта вычисления модуля числа. Исходное число aвводится с помощью функцииInputBox. Модуль числа записывается в переменнуюb. Ее значение выводится с помощью функцииMsgBox. Здесь мы рассмотрим несколько фрагментов программного кода. Полный текст программы приведен в приложении 4.
Одинарный условный переход, однострочный условный оператор.
b = a
If a < 0 Then b = -a
Сначала предполагаем, что модуль числа равен самому числу. Если исходное число – отрицательное, то меняем знак числа на противоположный.
Одинарный условный переход, многострочный условный оператор.
b = a
If a < 0 Then
b = -a
End If
Здесь рассуждения полностью аналогичны предыдущему случаю. Разница заключается в форме записи условного оператора.
Двойной условный переход, однострочный условный оператор.
If a >= 0 Then b = a Else b = -a
Если исходное число неотрицательное, то модуль равен самому числу. В противном случае для вычисления модуля исходного числа необходимо изменить его знак.
Двойной условный переход, многострочный условный оператор.
If a >= 0 Then
b = a
Else
b = -a
End If
Логика работы этого варианта такая же, как и у предыдущего. Но вместо однострочного условного оператора используется многострочный условный оператор.