русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Листинг 7.1. Процедура СписокИмен


Дата добавления: 2015-07-23; просмотров: 612; Нарушение авторских прав


1: Public Sub СписокИмен()

2: Dim iCount As Integer

3: Dim sNames() As String

4: Dim iResponse As Integer

5: Dim i As Integer

6:

7: iResponse = vbYes

8:

9: Do While iResponse = vbYes

10: iCount = iCount + 1

11: ReDim Preserve sNames(iCount) As String

12: sNames(iCount) = InputBox("Введите имя")

13: If sNames(iCount) = " " Then

14: iResponse = MsgBox("Продолжим?", vbYesNo)

15: If iResponse = vbYes Then

16: sNames(iCount) = InputBox("Введите имя")

17: End If

18: End If

19: Loop

20:

21: For i = 1 To iCount - 1

22: MsgBox i & "-e имя" & " - " & sNames(i)

23: Next

24: End Sub

Прежде всего обратите внимание в этом листинге на объявление переменных:

Dim iCount As Integer

Dim sNames() As String

Dim iResponse As Integer

Dim i As Integer

Переменная iCount используется для управления размером массива и возрастает при каждом выполнении цикла. sNames - динамический массив, который изменяет свои размеры во время выполнения цикла. Переменная iResponse следит за тем, хочет ли пользователь продолжать ввод имен. Значение этой переменной - фактор, управляющий завершением цикла. Переменная i является счетчиком цикла For при выводе окон сообщений с именами. После объявления переменных присваивается значение переменной iResponse:

iResponse = vbYes

Когда этой переменной присвоено значение, все готово к началу цикла:

Do While iResponse = vbYes

Поскольку переменной iResponse присвоено значение vbYes, то цикл Do выполнится по крайней мере один раз. При первом выполнении цикла переменная iCount принимает значение 1, при втором - 2 и т.д. Значение переменной iCount используется для задания нового размера массива sNames. Отметим, что массив изменяет свой размер без потери значений, которые уже в нем содержатся:



iCount = iCount + 1

ReDim Preserve sNames(iCount) As String

sNames(iCount) = InputBox("Введите имя")

Следующая группа операторов используется для того, чтобы узнать, сознательно ли пользователь щелкнул на кнопке Отмена, чтобы прекратить ввод имен, или случайно нажал клавишу <Enter>, не введя никакого значения:

If sNames(iCount) = " " Then

iResponse = MsgBox("Продолжим?", vbYesNo)

If iResponse = vbYes Then

sNames(iCount) = InputBox("Введите имя")

End If

End If

После завершения цикла Do выполняется цикл For для вывода последовательности окон сообщений с введенными ранее именами:

For i = 1 То iCount - 1

MsgBox i & "-e имя" & " - " & sNames(i)

Next

Количество повторений цикла For задается выражением i = 1 То iCount - 1. Необходимость вычитания единицы из значения переменной iCount возникла из-за того, что эта переменная изменяет свое значение в начале цикла Do еще до проверки условий, по которым заканчивается этот цикл. Если вы хотите посмотреть, что получится, если не вычитать единицу из переменной iCount, удалите -1 в операторе For и выполните процедуру сначала. В конце выполнения процедуры вы получите лишнее окно сообщения с обычным текстом вывода имен, но без самого имени.

Резюме

В этом часе мы изучили механизмы VBA для создания циклических вычислений (операторы циклов For и Do) и на примерах показали способы их применения. Мы также рассмотрели пример совместного использования динамических массивов и операторов цикла.



<== предыдущая лекция | следующая лекция ==>
Оператор Do... Loop | Упражнение


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.06 сек.