Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторні.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
7.96 Mб
Скачать

Контрольні питання

1.Для чого необхідні оператори Іf…Else? Наведіть приклади їх використання.

2. Як організувати вибір одного з кількох варіантів?

3. Правила запису логічних виразів. Операції відношення. Логічні операції.

Лабораторна робота № 23 Програмування циклічних обчислювальних процесів засобами vba. Теоретичні відомості

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

Оператор циклу з лічильником.

Синтаксис:

For параметр = значення1 To значення2 Step h

інструкції тіла циклу

Next

Оператор повторює виконання тіла циклу, змінюючи значення параметру циклу від значення1 до значення2 із кроком h. Якщо крок дорівнює 1, його можна не вказувати.

Задача 23.1. В діапазоні B2 : B24 записані числа. Знайти суму і кількість додатнних чисел діапазону.

Використаємо для розв’язку задачі об’єкт Cells – клітинку.

Sub СумаТаКількість( )

Dim suma as Single, k as Integer, i as Integer

suma =0 : k=0

For i =2 To 24

If Cells(i , 2) . Value >0 Then

k = k+1 ‘збільшуємо кількість

suma = suma +Cells(i , 2) . Value ‘накопичуємо суму

End if

Next i

MsgBox “Додатних чисел – “ & Str(k) & “, сума – ” & Str(suma)

End Sub

Оператори циклу з умовою.

Такі цикли використовується, якщо невідома заздалегідь кількість повторень. Існують такі різновиди операторів:

Синтаксис:

Do While умова

інструкції тіла циклу

Loop

Do

інструкції тіла циклу

Loop While умова

Оператори з умовою While забезпечують виконання операторів тіла циклу доти, доки умова виконується.

Do Until умова

інструкції тіла циклу

Loop

Do

інструкції тіла циклу

Loop Until умова

Оператори з умовою Until закінчують роботу операторів тіла циклу тоді, коли умова виконається. Тобто цикл повторюється, якщо умова має значення False (хибність).

Достроковий вихід з таких операторів циклу відбувається за допомогою оператору Exit Do.

Об’єкт CheckBox використовують для створення незалежного дво- чи три позиційного прапорця: увімкнено/вимкнено/(недоступний). Для цього об’єкта визначені такі властивості:

Властивість

Опис властивості

Приклади значень

Value

Стан прапорця

Grayed (недоступний), Unchecked (вимкнений), Checked (увімкнений)

MousePointer

Вигляд вказівника миші на обєкті

Arrow (стрілка), Cross (хрест)

Хід роботи

  1. Запустити Microsoft Excel, виконати команди Сервіс–> Макрос–> Безпека та встановити низький рівень безпеки.

  2. Виконати команди Вид–> Панели инструментов–>Visual Basic

  3. Повинна з’явитися панель, що зображена на рис. 23.1.

Рис. 23.1. Панель інструментів Visual Basic

  1. Натиснути на кнопку Елементи управління , з’явиться панель як на рис. 23.2.

Рис. 23.2. Елементи управління

  1. Перейти в режим конструктора, натиснувши на кнопці .

  2. Створити шаблон документу, подібний до того, що представлений на рис. 23.3.

Рис. 23.3. Приклад шаблону

  1. Щоб викликати вікно властивостей компонентів потрібно натиснути кнопку .

  2. На кнопку напишіть процедуру:

Private Sub CommandButton1_Click()

x = Sheets(1).Cells(9, 2)

s = 1 'сума

nf = 1 'факторіал

xn = 1 'x в степені

Row = 14

For n = 1 To 16

nf = nf * n

xn = xn * x

s = s + xn / nf

Sheets(1).Cells(Row, 1) = n

Sheets(1).Cells(Row, 2) = s

Row = Row + 1

Next n

'точне значення

ex = Exp(x)

Sheets(1).Cells(11, 2) = ex

End Sub

  1. Вийдіть з режиму конструктора, натиснувши кнопку та протестуйте роботу програми.

  2. Розмістіть на листі компонент ScrollBar (рис.23.4.), його властивість Max встановіть рівну 16.

Рис. 23.4. Приклад шаблону

  1. На подію Change() напишіть наступну процедуру:

Private Sub ScrollBar1_Change()

x = Sheets(1).Cells(9, 2)

s = 1 'сума

nf = 1 'факторіал

xn = 1 'x в степені

Row = 14

For n = 1 To ScrollBar1.Value

nf = nf * n

xn = xn * x

s = s + xn / nf

Sheets(1).Cells(Row, 1) = n

Sheets(1).Cells(Row, 2) = s

Row = Row + 1

Next n

'точне значення

ex = Exp(x)

Sheets(1).Cells(11, 2) = ex

End Sub

  1. Вийдіть з режиму конструктора, натиснувши кнопку та протестуйте роботу програми.

  2. Виконайте подібну задачу згідно Вашого варіанту.

  3. На Лист2 цієї ж робочої книги створіть шаблон документу, подібний до того, що представлений на рис. 23.5.

Рис. 23.5. Приклад шаблону

  1. Властивість Max компоненту ScrollBar (рис.23.5.) встановіть рівну 20.

  2. На подію Change() напишіть наступну процедуру:

Private Sub ScrollBar1_Change()

TextBox1.Text = ScrollBar1.Value

dx = (ScrollBar1.Value - 1) / 50 ’крок

x = 1

For i = 1 To 51

Sheets(1).Cells(14 + i - 1, 1) = x

If OptionButton1.Value = True Then

y = Sin(Cos(x))

ElseIf OptionButton2.Value = True Then

y = Sin(x)

ElseIf OptionButton3.Value = True Then

y = Cos(x)

ElseIf OptionButton4.Value = True Then

y = 1 / x

Else

MsgBox ("Виберіть функцію")

End If

Sheets(1).Cells(14 + i - 1, 2) = y

x = x + dx

Next i

End Sub

  1. В даній задачі взято 50 точок розбиття, змініть процедуру так, щоб та ж область розбивалася на 10*В-6 точок.

  2. Збережіть роботу під іменем ЛАБ23 в свою папку.

Ряд

Функція

1

1 – x2 / 2! + x4 / 4! - ... + (-1)n x2n /(2n)!

cos(x)

2

x – (1/2) x2 + (1/3)x3 - ... + (-1)n+1(1/n) xn

ln(x+1)

3

1+ x ln3 + (x ln3)2/2! +...+(x ln 3)n/n!

3x

4

sin(x) - sin(2x)/ 2+ ... +(-1)nsin(nx)/ n

x/2

5

(x-1)/x + (x-1)2 / 2x2 + (x-1)3/3x3 +...+(x-1)n/nxn

ln(x)

6

x – x3 /3 + x5 /5 +...+ (-1)n x2n-1 /(2n-1)

arctg(x)

7

1 + x2/2! + x4/4! + . . . + x2n/(2n)!

(ex+e-x)/2

8

1 - 2x + 3x2 - 4x3 + 5x4 +...+ (-1)n (n+1) xn

1/(1+x)2

9

cos(x)+ cos(3x) /3 +...+ cos((2n-1)x)/(2n-1)

0.5 ln(ctg(x/2))

10

1 + 2x + 3x2 + 4x3 + 5x4 +...+ (n+1) xn

1/(1+x)2

11

x + x3/3! + x5/5! + . . . + x2n+1/(2n+1)!

(ex-e-x)/2

12

1 – x2 / 2! + x4 / 4! - ... + (-1)n x2n /(2n)!

cos(x)

13

x – (1/2) x2 + (1/3)x3 - ... + (-1)n+1(1/n) xn

ln(x+1)

14

1+ x ln3 + (x ln3)2/2! +...+(x ln 3)n/n!

3x

15

sin(x) - sin(2x)/ 2+ ... +(-1)nsin(nx)/ n

x/2

16

(x-1)/x + (x-1)2 / 2x2 + (x-1)3/3x3 +...+(x-1)n/nxn

ln(x)

17

x – x3 /3 + x5 /5 +...+ (-1)n x2n-1 /(2n-1)

arctg(x)

18

1 + x2/2! + x4/4! + . . . + x2n/(2n)!

(ex+e-x)/2

19

1 - 2x + 3x2 - 4x3 + 5x4 +...+ (-1)n (n+1) xn

1/(1+x)2

20

cos(x)+ cos(3x) /3 +...+ cos((2n-1)x)/(2n-1)

0.5 ln(ctg(x/2))

21

1 + 2x + 3x2 + 4x3 + 5x4 +...+ (n+1) xn

1/(1+x)2

22

x + x3/3! + x5/5! + . . . + x2n+1/(2n+1)!

(ex-e-x)/2

23

1+ x ln3 + (x ln3)2/2! +...+(x ln 3)n/n!

3x

24

sin(x) - sin(2x)/ 2+ ... +(-1)nsin(nx)/ n

x/2

25

(x-1)/x + (x-1)2 / 2x2 + (x-1)3/3x3 +...+(x-1)n/nxn

ln(x)