загрузка...
загрузка...
На головну

Програмування ЦИКЛІЧНИХ АЛГОРИТМІВ

  1. I. РОЗРОБКА АЛГОРИТМІВ. ГРАФІЧНЕ ЗОБРАЖЕННЯ (БЛОК-СХЕМИ) І СЛОВЕСНА ЗАПИС АЛГОРИТМІВ
  2. II. ПРОГРАМУВАННЯ І Структуризації БЛОК-СХЕМ
  3. Аналіз правильності алгоритмів
  4. Б2. В.1 ТЕОРІЯ АЛГОРИТМІВ
  5. З метою оптимізації групового графіка двох з однаковим періодом циклічних навантажень зсув у часі їх включення повинен відповідати часу кореляційного антирезонанса.
  6. Візуальне програмування інтерфейсу
  7. Глава 1. ЩО ТАКЕ Нейролінгвістичне програмування?

 Для програмування циклічних алгоритмів використовуються оператори циклів. У VBA таких операторів декілька. Найбільш поширеними є оператори While ... Wend и For ... Next. З їх допомогою можна запрограмувати циклічні алгоритми з передумовою (рис.5.1.). Принцип їх роботи:

1. Перемінної циклу присвоюється початкове значення.

2. Перевіряється умова входу в цикл. Умова - це будь-який логічний вираз, операндом якого є змінна циклу. Якщо умова істинно, то виконуються Повторювані дії (тіло циклу). В іншому випадку цикл завершується, управління передається оператору, наступному за оператором циклу.

3. Значення змінної циклу змінюється.

4. Повторюються подальших дій, описаних 2.

5.1. оператор циклу While ... Wend

 синтаксис:

While <умова>

<Повторювані дії>

Wend

Наприклад, фрагмент алгоритму може бути запрограмований так:

k = 1

While k <= N + 1

 y = k + N

 MsgBox "При k =" & CStr (k) & "і N =", & CStr (N) _

& "Значення y =" & CStr (y)

 k = k + 0.5

Wend

Як умова входу в цикл можливе використання будь-якого логічного виразу, в тому числі і складного. наприклад:

k = 1

While k <= N + 1 and N> 0

 y = k + N

 MsgBox "При k =" & k & "і N =", & N _

& "Значення y =" & y

 k = k + 0.5

Wend

Синтаксисом оператора не передбачено

- Присвоювання початкового значення змінної циклу;

- Зміна значення змінної циклу після виконання дій, що повторюються.

Тому ці дії програміст повинен передбачити сам. Якщо не привласнити змінної циклу початкового значення, можливо невиконання циклу або виконання повторюваних дій випадкове число раз. При відсутності модифікації значення змінної циклу виникає ситуація нескінченного циклу. Для виходу з цієї ситуації необхідно натиснути клавішу Esc або одночасно дві клавіші Ctrl + Break.

Уникнути подібного роду помилок дозволяє оператор циклу For ... Next, Тому що установка початкового значення змінної циклу і її модифікація передбачаються його синтаксисом.

5.2. оператор циклу For ... Next

Змінну циклу в операторі For ... Next прийнято називати лічильником.

синтаксис:

For <Лічильник> = <НачЗначеніе> Те <КонЗначеніе> [Step <Приріст>]

<Повторювані дії>

Next [<Лічильник>]

Елементи синтаксису:

Лічильник -

Обов'язковий. Мінлива числового типу. Вказується програмістом.

НачЗначеніе -

Обов'язковий. Визначає стан змінної Лічильник, з якого починається відлік її значення.

КонЗначеніе -

Обов'язковий. Визначає стан змінної Лічильник, на якому відлік її значення припиняється.

Step Приріст -

Необов'язковий. Мінлива числового типу. Дозволяє змінювати приріст лічильника (за замовчуванням воно дорівнює 1).

Не допускається зміна значення змінної циклу всередині тіла циклу, тому що це призведе до помилкових результатів.

Після ключового слова Next можна не вказувати ім'я змінної-лічильника. Більш того, в цьому випадку програма буде виконуватися швидше. Однак для швидкого знаходження відповідності між For и Next, особливо при програмуванні вкладених циклів, ім'я змінної циклу все ж краще вказувати.

Наприклад, фрагмент алгоритму буде запрограмований за допомогою оператора циклу For ... Next так:

For i = 1 To p

 y = x + 1

 Cells (1 + i, 1) = i

 Cells (1 + i, 2) = x

 Cells (1 + i, 3) = y

 x = x + Dx

Next

В даному випадку змінна циклу i змінює своє значення від 1 до значення змінної p включно з кроком 1. Крок модифікації значення змінної циклу i в даному випадку в операторі циклу не вказано, так як він дорівнює 1 (за замовчуванням). Тобто буде отримано p значень обчислюється функції.

Якби крок модифікації значення змінної циклу різнився від одиниці, наприклад, дорівнює 2, заголовок оператора циклу For виглядав би так:

For i = 1 To p Step 2

значення лічильника може змінюватися в зворотному напрямку. Для цього слід задати початкове значення більше кінцевого і вибрати негативне прирощення значення лічильника.

наприклад:

For i = N To 1 Step -1

 <Повторювані дії>

Next

 Як значення елементів синтаксису оператора For ... Next можуть бути використані будь-які числові вирази. У всіх попередніх прикладах це були цілі числа, але можливе використання і дійсних чисел.

наприклад:

O For i = 1 To N Step 0.2

 y = x + 1

 MsgBox "i =" & i & "y =" & y

Next

крок зміни значення змінної циклу дорівнює 0,2. Результат другого обчислення для змінної x, Що дорівнює 4, представлений на малюнку.

O For i = 1.5 To 3

 y = x + 1

 MsgBox "i =" & i & "y =" & y

Next

буде отримано два результату: для i = 1.5 и i = 2.5

O For i = 1.5 To 3.7 Step 0.5

 y = x + 1

 MsgBox "i =" & i & "y =" & y

Next

буде отримано п'ять результатів: для i = 1.5, i = 2, i = 2.5, i = 3 и i = 3.5.

Перевага оператора циклу For ... Next очевидно. Тому його використання переважніше. Однак його застосування можливе лише в тому випадку, коли в якості умови входу в цикл використовується просте логічне вираження.

 



Попередня   1   2   3   4   5   6   7   8   9   10   11   12   13   14   Наступна

Алфавіт, словник, ідентифікатори | типи даних | змінні | константи | Операції і оператори VBA | Вбудовані функції VBA | вирази | оператор присвоювання | структура програми | Правила оформлення коду |

загрузка...
© um.co.ua - учбові матеріали та реферати