Здавалка
Главная | Обратная связь

ПРОГРАМУВАННЯ АЛГОРИТМІВ ЦИКЛІЧНОЇ СТРУКТУРИ



Мета роботи:

Вивчення складу та призначення елементів мови програмування VBA для написання коду програми, наприклад для створення функцій користувача в Excel, автоматизації діяльності, пов’язаної з розробкою різних типів документів.

Завдання:

10. Ознайомтесь із складом та змістом системного меню мови програмування VBA .

11. Вивчіть функції та призначення командних кнопок вікна управління мови програмування VBA .

12. Вивчіть склад та порядок зміни параметрів середовища мови програмування VBA .

13. Виконайте команду Сервіс/ Редактор Visual Basic. Відкриється вікно редактора Visual Basic

Виберіть у меню пункт Insert, а в ньому пункт UserForm.

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

Розрізняють регулярні цикли з параметром (з відомим числом повторень), що управляє, умовою закінчення якого є досягнення параметром циклу свого кінцевого значення; цикли ітераційні, в яких умова повторення або закінчення циклу задається по деякому результату, наприклад, поки не буде досягнута точність обчислень. Реалізуються цикли за допомогою спеціальних операторів циклу.

Оператори циклу

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

Оператор має синтаксис

While умова

[оператори]

Wend

Синтаксис інструкції While... Wend містить наступні елементи:

умова — обов’язковий елемент. Числовий вираз або строковий вираз, який має значення True або False.

оператори— необов’язковий елемент. Один або декілька операторів, що виконуються, поки умова має значення True.

Цього оператора називають оператором циклу з передумовою. Виконується оператор While... Wend таким чином. Якщо умова має значення True, виконуються всі оператори до інструкції Wend. Потім управління повертається інструкції While і знов перевіряється умова. Якщо умова як і раніше має значення True, процес повторюється. Якщо воно не має значення True, виконання поновлюється з інструкції, наступної за інструкцією Wend. У зв’язку з цим елемент умова тут є умовою виконання циклу. Цикли While... Wend можуть мати будь-яку глибину вкладеності.

Оператор циклу Do...Loop

Оператор Do...Loop також використовується для виконання наборів операторів невизначене число разів. Оператор має синтаксис:

Do

[оператори]

Loop Until [умова]

Синтаксис інструкції Do Loop містить наступні елементи:

умова — необов’язковий елемент. Числовий або строковий вираз, який має значення True або False.

оператори— один або декілька операторів, виконання яких повторюється, поки умова не прийме значення True.

Цього оператора називають оператором циклу з післяумовою. Виконується оператор Do...Loop таким чином. Якщо умова має значення False, виконуються всі оператори після інструкції Do. Потім управління передається інструкції Until і знов перевіряється умова. Якщо умова як і раніше має значення False, процес повторяється. Якщо воно має значення True, управління передається наступному за інструкцією Loop Until операторові. У зв’язку з цим елемент умова тут є умовою виходу з циклу.

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

Часто при складанні макросу заздалегідь відома кількість повторень групи операторів, в таких випадках можна використовувати інструкцію For...Next.

Оператор For...Next використовується для виконання наборів операторів вказане число разів. Цикли For використовують як лічильник змінну, значення якої збільшується або зменшується при кожному виконанні циклу на вказане значення.

Синтаксис інструкції For...Next

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

[оператори]

Next [ лічильник]

лічильник — обов’язковий елемент. Це має бути числова змінна. Вона не може мати типу Boolean або бути елементом масиву.

почало — обов’язковий елемент, містить початкове значення змінної лічильник.

кінець — обов’язковий елемент, містить кінцеве значення змінної лічильник.

крок — елемент необов’язковий, це значення, на яке змінюється лічильник при кожному виконанні тіла циклу. Якщо це значення не задане, за умовчанням крок дорівнює одиниці. Крок може бути як позитивним, так і негативним.

операторы— необов’язковий елемент. Один або декілька операторів між For і Next, які виконуються вказане число разів.

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

Допускається вкладення циклів For...Next (один цикл For...Next розташовується усередині іншого). Лічильник кожного циклу повинен мати унікальне ім’я.

Приклад 1. Скласти таблицю значень функції y=x^2 на відрізку [2,8] з кроком 0.5.

Програма

Sub Tablica()

Dim x, у As Double, i As Integer

i = 1

Cells(1, 1)= "X": Cells(1, 2)= "Y"

For x = 2 To 8 Step 0.5

у = x ^ 2

i = i + 1

Cells(i, 1)= x: Cells(i, 2)= у

Next x

End Sub

Приклад 2. Обчислити суму квадратів n чисел: 1,4,9,16,25. Число n задати довільно при введенні.

Програма

Sub sum()

Dim n, i As Integer, s As Double

n = Val(InputBox("Введіть кількість доданків n"))

s = 0

For i = 1 To n

s = s + i ^ 2

Next i

MsgBox ("Сума s=" + Str(s#))

End Sub

Приклад. Обчислити добуток квадратів n чисел: 1,4,9,16,25. . Число n задати довільно при введенні.

Програма

Sub Proiz()

Dim n, i As Integer, p As Double

n = Val(InputBox("Введіть кількість доданків n"))

p = 1

For i = 1 To n

p = p * i ^ 2

Next i

MsgBox ("Добуток p=" + Str(p#))

End Sub

Приклад. Дана числова послідовність:

Обчислити суму даної послідовності при n=( з точністю 0.000001).

Програма

Sub Iter()

Dim а, e, s As Double

а = 1 ‘перший член ряду

s = а ‘сума ряду

e = Val(InputBox("Введіть точність обчислень"))

Do ‘початок циклу

а = -a / 2 ‘обчислюваний черговий член послідовності

s = s + а ‘накопичуємо суму

Loop Until Abs(a)< e ‘кінець циклу

MsgBox ("Сума s=" + Str(s#))

End Sub

Зміст звіту по роботі:

1. Назва роботи.

2. Постановка задачі.

3. Теоретична підготовка.

4. Опис виконаної роботи та отриманих результатів по кожному з пунктів інструкції.

5. Висновки.

6. Список використаних джерел.

7. Зберегти звіт у власну папку з ім’ям „Прізвище_26.doc”.

8. Підготуватися до захисту роботи у викладача.

 







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.