Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Плещёв ИП 2010-04-04 doc.doc
Скачиваний:
108
Добавлен:
13.05.2015
Размер:
5.96 Mб
Скачать

2.4.5. Цикл ‑ For ... Next

For <счетчик>=N To K [Step H] 'заголовок цикла

[<блок операторов ‑ тело цикла>]

[Exit For] ‘досрочный выход из цикла

Next 'конец тела цикла

<счетчик> ‑ переменная цикла, которая изменяет свое значение от N до K c шагом H (1). Допускается вложенность циклов. Нельзя передавать управление командой Goto извне цикла на команду внутри любого цикла. Обратно возможно. При работе с массивами, символами строк, матема­тическими рядами обычно исполь­зуется этот оператор.

Конечное значение переменной цикла (K) не может быть изменено внутри цикла.

После выполнения цикла переменная цикла сохраняет свое значение, которое она имела перед выходом из цикла. При изменении значения переменной цикла внутри цикла следует иметь в виду, что в конце повто­рения цикла ее значение автоматически увеличится (уменьшится) на значе­ние шага. Неправильное использование переменной цикла внутри цикла мо­жет послужить причиной зацикливания или преждевременного выход из него (For i = 0 To 4: For j = 0 TO 99: Ur(i, j) = 0: Next: Next).

2.4.6. Цикл ‑ For Each ... Next(Vb)

For Each <элемент> In <группа> ‘заголовок цикла

[<блок операторов ‑ тело цикла>]

[Exit For] ‘досрочный выход из цикла

Next ‘конец тела цикла

<элемент> ‑ переменная, которая содержит значение текущего элемента группы (п. 2.1.8).

<группа> - имя просматриваемого массива или коллекции объектов.

Пример. Dim a(1 To 3): a(1)=3: a(2)=2: a(3)=1: For Each i In a: Print i: Next

2.4.7. Цикл ‑ Do... Loop

Do [While <условие-1>] ‘заголовок цикла

[<блок операторов> ]

[Exit Do] ‘досрочный выход из цикла

[<блок операторов> ]

Loop [While <условие-2>] ‘конец тела цикла

Цикл выполняется пока <условие> истинно и нет преждевременного выхода из цикла командой Exit Do. Допускается использование пустого цик­­ла, например, для определений значения переменной цикла.

Неверное задание условия может быть причиной зацикливания или преждевременного выхода из цикла.

Пример.Найти сумму ряда 1+22+32+42+52+62+72+82+92:

s:=0: i = 1: DO WHILE i < 10: s = s + i *i: i = i + 1: LOOP: Print s

2.4.8. Замещение подстроки ‑ Mid$

Команда имеет вид: Mid$(X$,N[,L])=Y$. Строка Y$ заменяет в стро­ке X$ подстроку, которая начинается с символа под номером N и длиной L символов (если L не указана, то до конца строки). Длины подстроки и строки Y$ могут не совпадать. Этой командой можно, в частности, заменять символы строки.

2.4.9. Обмен значениями двух переменных- Swap (qb)

Командой Swap <переменная ‑1>, <переменная ‑2>можно переста­вить местами значения указанных переменных.

Вопросы для самопроверки и контроля

Вопросы для самопроверки

  1. Какие три типа деления допускаются?

  2. Назовите приоритеты арифметических операций.

  3. Укажите два способа, гарантирующие правильную последовательность выполнения вычислений.

  4. Какие операции можно использовать при работе с датами?

  5. Какой тип цикла самый универсальный?

  6. Какой оператор досрочно завершает выполнение цикла?

  7. Назовите две причины, делающие цикл бесконечным.

  8. Какое значение имеет переменная цикла после его завершения?

  9. Какой используется оператор, если значения переменной цикла нахо­дятся в массиве?

  10. Можно ли изменить конечное значение переменной цикла внутри цикла For?

  11. Какую величину имеет шаг цикла по умолчанию?

  12. Могут ли быть бесконечные циклы со счетчиком?

  13. Как сделать цикл с обратным счетом?

  14. Что должен содержать каждый оператор If?

  15. Как выполнить группу команд по результатам проверки одного условия?

  16. Как организовать проверку нескольких условий?

Контрольные вопросы

  1. Какая ошибка может скрываться в логическом выражении при использовании функций?

  2. Могут ли операции сравнения участвовать в арифметических выражениях?

  3. Что получится в результате вычитания одной даты из другой?

  4. Что получится в результате сложения числа и даты?

  5. Для чего рекомендуется однотипность операндов в выражениях?

  6. Какие операции позволяют совместно использовать строки и числа?

  7. Можно ли сравнивать число со строкой?

  8. Равны ли при сравнении строки “Иванов” и “ИВАНОВ”?

  9. Можно ли изменять значение переменной цикла внутри цикла?

  10. Можно ли передавать управление извне цикла командой Goto на команду внутри цикла?

  11. Можно ли выйти из цикла командой Goto?

  12. Как заменить в строке символы?

  13. Что произойдет, если внутри цикла указать значение переменной цикла вне допустимого интервала его значений?

  14. Какой оператор универсальнее ‑ многостроковый If или Select?

  15. В каких случаях функция IIF удобнее, чем оператор IF?