Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
RGR4_Slinko.doc
Скачиваний:
2
Добавлен:
01.12.2018
Размер:
213.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%, то програма циклу за індексом працює коректно.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]