- •Із дисципліни «Інформатика» на тему:
- •Завдання на розрахунково-графічну роботу № 4
- •Строки виконання ргр № 4: початок 08.11.2010 р. Закінчення 10.12.2010 р.
- •1. Створення Панелі користувача і кнопок макросів
- •2.4 Текст програми
- •2.5 Контрольний приклад тестування програми
- •Список використаних літературних джерел
1. Створення Панелі користувача і кнопок макросів
Налагодження середовища VBA виконується аналогічно діям, що виконані в РГР №3, при цьому мають місце кнопки з макросами для ітераційної циклічної структури і циклу за індексом.
Після створення панелі інструментів користувача і кнопок макросів загальний вигляд наведений на рис. 1.1.
Рис. 1.1. Панель інструментів користувача із кнопками для виклику програм 1.Ітераційної циклічної структури; 2.Циклу за індексом
2. Розробка алгоритму та програми табуляції функції однієї змінної з використанням ітераційного циклу при розрахунку значень заданої функції
2.1 Постановка задачі
Розробити алгоритм та програму розрахунку значень функції у згідно з формулами:
|
|
a=2,3 b=3,2 c=-2,4 |
x[-2,3] x=0,2 |
2.2 Блок-схема алгоритму
Блок-схему наведено на рис. 2.1.
2.3. Таблиця ідентифікаторів
Змінна алгоритму |
x |
y |
a |
b |
с |
x0 |
xn |
Δx |
Ідентифікатор |
x |
y |
a |
b |
с |
x0 |
xi |
dx |
Тип |
Single |
2.4 Текст програми
Sub iter_cykl()
Dim a As Single, b As Single, c As Single, x As Single, y As Single
Dim x0 As Single, xi As Single, dx As Single
MsgBox ("Ітераційний цикл")
'Уведення вхідних даних
а = InputBox("Введіть а")
b = InputBox("Введіть b")
c = InputBox("Введіть c")
x0 = InputBox("Введіть x0")
xi = InputBox("Введіть xi")
dx = InputBox("Введіть dx")
x= x0
While x <= xi
If x < 0 Then
If a*(1/tan(x))+b*cos(x)+c<0 Then
MsgBox (" y не визначено" ; x = " + Str(x)): GoTo 1:
Else
y = Sqr(a * (1 / Tan(x)) + b * Cos(x) + c)
End If
Else
If a*tan(x)+b*sinx+c<0 Then
MsgBox ("y не визначено " ; x = " + Str(x)): GoTo 1:
Else
y = Sqr (a * (Tan(x)) + b * Sin(x) + c)
End If
End If
MsgBox ("y = " + Str(y) + "; x = " + Str(x))
1:
x = x + dx
Wend
End Sub
2.5 Контрольний приклад тестування програми
За допомогою калькулятора обчислюю значення wт при заданих значеннях і та порівнюю їх з результатом роботи програми.
За допомогою калькулятора обчислюю значення ут при x = 1.
табл. 2.1.
Таблиця 2.1
|
x |
yт |
yпр |
Δy,% |
||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
-2 |
Не визначено |
Не визначено |
0 |
||||||||
|
-1,8 |
Не визначено |
Не визначено |
0 |
||||||||
|
-1,6 |
Не визначено |
Не визначено |
0 |
||||||||
|
-1,4 |
Не визначено |
Не визначено |
0 |
||||||||
|
-1,2 |
Не визначено |
Не визначено |
0 |
||||||||
|
-1 |
Не визначено |
Не визначено |
0 |
||||||||
|
-0,8 |
Не визначено |
Не визначено |
0 |
||||||||
|
-0,6 |
Не визначено |
Не визначено |
0 |
||||||||
|
-0,4 |
Не визначено |
Не визначено |
0 |
||||||||
|
-0,2 |
Не визначено |
Не визначено |
0 |
||||||||
|
0 |
Не визначено |
Не визначено |
0 |
||||||||
|
0,2 |
Не визначено |
Не визначено |
0 |
||||||||
|
0,4 |
Не визначено |
Не визначено |
0 |
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
||||||||
|
|
|
|
|
x |
yт |
yпр |
Δy,% |
0,6 |
0,990137 |
|
0 |
0,8 |
1,504562 |
|
0 |
1 |
1,968437 |
|
0 |
1,2 |
2,54921 |
|
0 |
1,4 |
3,753475 |
|
0 |
1,6 |
Не визначено |
Не визначено |
0 |
1,8 |
Не визначено |
Не визначено |
0 |
2 |
Не визначено |
Не визначено |
0 |
2,2 |
Не визначено |
Не визначено |
0 |
2,4 |
Не визначено |
Не визначено |
0 |
2,6 |
Не визначено |
Не визначено |
0 |
2,8 |
Не визначено |
Не визначено |
0 |
3 |
Не визначено |
Не визначено |
0 |
Висновок. Отже, так як похибка не перевищує 0,05%, то програма ітераційної структури працює коректно.
3. Розробка алгоритму та програми визначення суми членів ряду з використанням циклічної структури з заданим числом повторень
3.1 Постановка задачі
Розробити алгоритм та програму розрахунку значень функції s згідно з формулами:
|
0,3 |
10-5 |
4 |
Виконати тестування для перевірки правильності функціонування програми для значень n=4, x=0.3.
3.2 Блок-схема алгоритму
Блок-схема алгоритму зображена на рис 3.1
3.3. Таблиця ідентифікаторів
Змінна алгоритму |
n |
i |
n! |
s |
x |
π |
Ідентифікатор |
n |
i |
f |
s |
x |
Pi |
Тип |
integer |
single |
3.4 Текст програми
Sub_cykl_index()
Dim S as Single, x as Single
Dim i as integer, n as integer, f as integer
Const Pi As Single = 3.14159265358979
MsgBox(“Цикл по індексу“)
x=InputBox (“x=”)
n=InputBox(“Введіть кількість членів ряду”)
S=1, f=1
For i=1 to n-1
f=f*i
S=S+tan(i*pi/4)*x^i/f
Next i
MsgBox(“сума ”+str(n)+” членів ряду = ”+str(s))
End Sub
3.5 Контрольний приклад тестування програми
3.5.1. Виконуємо обрахунки за допомогою Ms Excel чотирьох членів ряду при значенні x=0.3.
Сума чотирьох членів ряду рівна S=Tan(1*(Pi/4))*(0,3^1)/1+(2*(Pi/4))*(0,3^2)/2+(3*(Pi/4))*(0,3^3)/6+1=-1029479
3.5.2. Виконуємо обрахунки за допомогою програми. Сума чотирьох членів ряда рівна Sпр =-1029479 (рис. 3.1).
3.5.3. Обчислюю похибку між результатом роботи програми і тестовим прикладом за формулою:
3.5.4.Висновок.
Отже, так як похибка програми між результатом роботи програми і тестового прикладу не перевищує 0,05%, то програма циклу за індексом працює коректно.