- •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
- •Список литературы
6.2. Цикл с условием
Цикл с условием используется в тех случаях, когда число повторений цикла заранее неизвестно. Например, при обработке совокупности чисел, ввод которой прекращается при появлении первого нуля.
Цикл с условием – это многострочный оператор Visual Basic 2005, первая строка которого начинается со слова Do, а последняя строка начинается со словаLoop.
Выделяют две разновидности цикла с условием: цикл с предусловием и цикл с постусловием. В цикле с предусловием условие цикла располагается перед телом цикла.
Do Условие Цикла
Тело цикла
Loop
При этом возможна ситуация, когда операторы тела цикла не выполнятся ни разу. Другими словами условие цикла можно сформулировать таким образом, что управление никогда не попадет внутрь цикла.
В цикле с постусловием условие расположено после тела цикла. Поэтому операторы тела цикла обязательно выполнятся хотя бы один раз, чтобы выполнение программы могло дойти до проверки условия.
Do
Тело цикла
Loop Условие цикла
Вне зависимости от вида цикла его условие может быть записано в одной из двух форм.
Условие продолжения цикла (условие While).
While Условное выражение
В этом случае операторы тела цикла выполняются, пока Условное выражениеимеет значение Истина (True). Цикл завершается, когдаУсловное выражениепринимает значение Ложь (False).
Условие завершения цикла (условие Until).
Until Условное Выражение
Цикл с таким условием завершается, когда Условное выражениепринимает значение Истина (True). ЕслиУсловное выражениеложно, то выполнение цикла продолжается.
Таким образом, в Visual Basic 2005 возможны четыре различных варианта цикла с условием.
Do While Условное выражение
Тело цикла
Loop
Do Until Условное Выражение
Тело цикла
Loop
Do
Тело цикла
Loop While Условное выражение
Do
Тело цикла
Loop Until Условное Выражение
Меняя Условные выражения, каждый вид цикла можно заменить на любой другой без потери работоспособности программы. ЕслиУсловие цикласформулировано с ошибкой, то программа может попасть в бесконечный цикл. Бесконечный цикл – это цикл, в котором количество повторов ничем не ограничено. В таких случаях говорят, что программа «зациклилась» или «зависла». Чаще всего бесконечный цикл возникает из-за ошибок в условии цикла: условие продолжения всегда имеет значение Истина (True) или условие завершения цикла всегда имеет значение Ложь (False). Прервать программу, попавшую в бесконечный цикл, можно только из среды Visual Basic 2005. Для этого необходимо перейти из окна работающей программы в окно среды Visual Basic 2005 и выбрать командуStop Debuggingиз пункта менюDebug.
Среди операторов тела цикла может встречаться особый оператор Exit Do. Он прекращает выполнение цикла при любом значении его условия. Выполнение программы продолжается с оператора, стоящего сразу после ключевого словаLoop.
6.2.1. Ввод с проверкой
В качестве примера использования цикла с условием рассмотрим задачу ввода значения переменной с проверкой. Будем вводить с клавиатуры значение переменной n, которое должно находиться в диапазон [3; 20]. Один из способов решения этой задачи мы рассмотрели в разделе 5.9. Тогда фрагмент программы выглядел следующим образом.
Dim n As Integer
vvod:
n = Val(InputBox("Введите число n от 3 до 20"))
If n < 3 Or n > 20 Then
MsgBox("Неправильное значение")
GoTo Vvod
End If
Решим эту же задачу, используя цикл с постусловием. Сначала воспользуемся циклом с условием Until. В этом случае условие цикла надо сформулировать таким образом, чтобы он прекращал свою работу при правильном значении переменнойn. То есть условие цикла – это условие правильности значения переменной.
Dim n As Integer
Do
n = Val(InputBox("Введите число n от 3 до 20"))
Loop Until n >= 3 And n <= 20
Теперь рассмотрим использование цикла с условием While. Это условие продолжения цикла, поэтому оно должно быть сформулировано таким образом, чтобы при неправильном значенииnцикл выполнялся еще раз.
Dim n As Integer
Do
n = Val(InputBox("Введите число n от 3 до 20"))
Loop While n < 3 Or n > 20
Эту же задачу можно решать, используя циклы с предусловием. Но решение получается громоздким и на практике не применяется.