Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Теоретичні відомості. Цикл - це фундаментальний компонент будь-якої мови програмування (в тому числі і VBA)






Цикл - це фундаментальний компонент будь-якої мови програмування (в тому числі і VBA). Під циклом ми будемо розуміти такий оператор або послідовність операторів, які по ходу виконання програми можуть при необхідності виконуватися багаторазово. Для організації циклів мова VBA надає кілька потужних і гнучких структур, які називаються структурами організації циклів. Деякі з цих структур циклу побудовані таким чином, що завжди виконуються задану кількість разів. До таких структур можна віднести оператори For... Next і For... Each... Next. Інші циклічні структури повторюються змінну кількість разів, в залежності від виконання деякої умови. До таких структурам належить оператор Do... Loop.

Оператор For... Next

Оператор For... Next відноситься до операторів створення циклів найпростішого типу і є одним з найпоширеніших видів циклу, реалізованих практично в будь-якій мові програмування. У програмі на мові VBA з його допомогою блок оператора виконується задану кількість разів, відому до початку виконання циклу. Синтаксис оператора For... Next має наступний вигляд:

For Лічильник = початок То кінець [Step крок]

(Оператори)

Next лічильник

Тут лічильник - будь-яка числова змінна, в якій зберігається інформація про кількість виконаних проходів циклу (лічильник циклу). Параметри початок і кінець - це числові вирази, що задають початкове і кінцеве значення лічильника і визначають кількість проходів циклу. Числова змінна крок задає приріст лічильника циклу при кожному проході. Вся фраза з ключовим словом Step необов'язкова. При її відсутності інтерпретатор VBA (за замовчуванням) збільшує змінну лічильник на одиницю при кожному виконанні блоку операторів циклу. При необхідності змінити цей стандартний крок слід використовувати фразу Step крок, де крок - це будь-числовий вираз, що визначає збільшення, яке буде використовуватися для зміни змінної лічильник. В операторі Next лічильник, який закриває цикл For... Next, ім'я змінної лічильник вказувати необов'язково, тому що при виявленні ключового слова Next VBA автоматично обчислює таке значення змінної лічильник і повертає керування в початок конструкції. Намагайтеся завжди вказувати ім'я змінної лічильник в операторі Next, так як при цьому значно поліпшується читабельність програми і, якщо є кілька вкладених циклів For... Next відразу видно, якому саме циклу належить даний оператор Next.

Слід також зауважити, що поряд з використанням циклу For... Next із зрастаючим лічильником можна (а інший раз і дуже корисно) записувати такий цикл із спадаючим значенням лічильника. Для того щоб лічильник не зростав, а спадав, потрібно в фразі Step вказати для кроку збільшення від’мне значення. В цьому випадку значення параметра початок має бути більше, ніж значення параметра кінець, і цикл припиниться, коли значення змінної лічильник стане менше значення параметра кінець.

Цикли For... Next в одній і тій же процедурі можна використовувати скільки завгодно разів, при цьому, подібно іншим операторам циклів мови VBA, цикли For... Next можна вкладати один в іншій. Слід зазначити, що цикли For... Next особливо корисні при роботі з масивами.

Іноді в програмі з тих чи інших причин може знадобитися негайно припинити виконання циклу For... Next ще до того, як значення змінної лічильник досягне заданого кінцевого значення. Для цієї мети призначений оператор Exit For. У циклі цей оператор зазвичай вказується в одній з гілок виконання умовного оператора If... Then або Select Case, вкладеного в цикл For... Next. В одному циклі може бути записано будь-яку кількість операторів Exit For, виконання циклу негайно припиниться, як тільки буде виконаний хоча б один з них, і програма перейде до виконання операторів, розташованих в тексті після даного циклу. Дуже зручно використовувати оператор Exit For при перевірці масивів на наявність в них неприпустимих значень - якщо в масиві виявлено неправильні дані, виконання циклу перевірки достроково завершується.

Змінна елемент використовується для ітерації по всіх членах колекції. Параметр група - це ім'я колекції, з якою доведеться працювати. Це ім'я може задавати або об'єкт колекції, або масив. Якщо параметр група визначає об'єкт колекції, то змінна елемент повинна бути оголошена з типом Variant, Object або з конкретним об'єктним типом, що збігається з типом колекції. Якщо ж параметр група визначає масив, то змінна елемент повинна бути оголошена з типом Variant.

Цикл Do... Loop

Існує кілька видів операторів циклів типу Do... Loop. Оператори циклів Do... Loop (на відміну від операторів For... Next) виконуються не задану кількість разів, а як завгодно довго - до тих пір, поки не буде виконано деяку логічну умову. Мова VBA включає кілька варіантів організації такого циклу.

У першому варіанті логічне умова перевіряється до початку виконання циклу. У цьому випадку після оператора циклу Do записується ключове слово While (Поки), і цикл має наступний синтаксис.

Do While умова (оператори)

Loop

При виконанні програми, виявивши оператор Do While, VBA насамперед перевіряє поточне значення логічного виразу умова. Якщо обчислене значення виразу умова дорівнює True, VBA виконує блок (оператори) і, досягнувши оператора Loop, знову повертається до оператора Do While, щоб знову перевірити умова циклу. Якщо обчислене значення виразу умова дорівнює False, VBA ігнорує всі оператори всередині циклу і відразу переходить до виконання оператора, наступного за оператором Loop.

Ще однією формою запису оператора, що перевіряє значення логічного умови до виконання циклу, є оператор Do Until з наступним синтаксисом.

Do Until умова (оператори)

Loop

При виконанні циклу Do Until VBA спочатку перевіряє поточне значення логічного виразу умова і, якщо воно дорівнює False, виконує блок (оператори), поки не буде досягнутий оператор Loop. Далі управління знову повертається до оператора Do Until і значення виразу умова перевіряється знову. Якщо обчислене значення дорівнюватиме True, VBA ігнорує оператори всередині циклу і переходить до виконання оператора, наступного за оператором Loop.

Завдання: Розробити алгоритм і написати на мові VBA програму обчислення значень функцій при неодночасній зміні значень двох аргументів від початкового значення до кінцевого з деяким кроком відповідно варіантам, що наведені в табл.1


Таблиця 1. Варіанти завдань до лабораторної роботи







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.