Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
РГР№6 частина 2.doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
3 Мб
Скачать
☆

2.2. Блок-схема

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

2.3. Таблиця ідентифікаторів

Розробивши, склавши та оформивши належним чином блок-схему можна приступати до складання таблиці ідентифікаторів. В даній таблиці будуть розміщені усі змінні з описом їх типу.

Дана таблиця допоможе вирішити скільки треба оголосити змінних та якого типу. Для зручності використання розмістимо данні у трьох графах: Змінна алгоритму, ідентифікатор, тип.

Змінна алгоритму

a

b

c

y

Тип

Single

Single

Single

Single

Таблиця ідентифікаторів

Усі змінні мають тип Single тому, що умовою наперед не задається можливий тип чисел, які будуть вводитися. Змінні a, b, c – містять введені користувачем числа, які є вхідними даними. В змінній y – міститиметься результат обчислення заданих функцій.

2.4. Текст програми

Sub Ітераційний()

’ Об’явлення змінних

Dim a As Single, b As Single, c As Single, x As Single, y As Single

Dim x0 As Single, xn As Single, dx As Single

’Уведення вихiдних даних

a = InputBox(“Увести а”)

b = InputBox(“Увести b”)

c = InputBox(“Увести c”)

x0 = InputBox(“Увести початок інтервалу”)

xn = InputBox(“Увести кінець інтералу”)

dx = InputBox(“Увести дельта х”)

’ Початкове значення змінної x

x = x0

while x <= xn

’ Визначення значень

If x<0 then

If b+c*(tan(x))^2 >=0 then

y=(a*cos(x))/((b+c*(tan(x))^2)^(1/2))

MsgBox ("Значення x = " + Str(x)+ "; Значення y ="+ Str(y))

else

MsgBox ("y – не існує")

End If

Else

If b+c*(sin(x))^2 > 0 then

y=(a*sin(x))/((b+c*(sin(x))^2)^(1/2))

MsgBox ("Значення x = " + Str(x)+ "; Значення y ="+ Str(y))

else

MsgBox ("y – не існує")

End If

End If

x = x+dx

Wend

' виведення результатів

MsgBox ("Значення x = " + Str(x)+ "; Значення y ="+ Str(y))

End Sub

2.5. Тестування програми

Для тестування програми слід використати запропоновані в умові змінні a=1,4; b=0,2; c=2,4; x0=-2; xn=1; x=0,1.

Результати роботи програми у вікнах діалогу InputBox та MsgBox:

Уведіть a

1,4

Уведіть b

0,2

Уведіть c

2,4

Увести початок інтервалу

-2

Увести кінець інтералу

1

Увести дельта х

0,1

Виконуємо підрахунки функції y згідно з формулами: отримали такий результат: x=-2, y=-0,17063; x=1, y=0,85794. Порівнюючи результати отримані за допомогою програми та калькулятора розходження складає в середньому 0,004%, що менше за допустиму 0,05%.

X

Y

-2

-0,17

-1,9

-9,93-2

-1,8

-4,77-2

-1,7

-1,51-2

-1,6

-7,7-4

-1,5

4,53-3

-1,4

2,68-2

-1,3

6,69-2

-1,2

0,13

-1,1

0,21

-0,99

0,31

-0,89

0,43

-0,79

0,59

-0,69

0,77

-0,59

1.00

-0,49

1,28

-0,39

1,63

-0,29

2,04

-0,19

2,51

0,1

0,29

0,2

0,51

0,3

0,65

0,4

0,73

0,5

0,77

0,6

0,80

0,7

0,82

0,8

0,84

0,9

0,85

1,0

0,87

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