Розвязання інженерних задач мовою програмування VBA
















РОЗВ'ЯЗАННЯ ІНЖЕНЕРНИХ ЗАДАЧ МОВОЮ ПРОГРАМУВАННЯ VBA



Зміст


1. Програмування алгоритмів циклічної структури із заданим числом повторень

2. Алгоритми роботи з одновимірними масивами

3. Програмування алгоритмів із структурою вкладених циклів і обробка матриць



1. Програмування алгоритмів циклічної структури із заданим числом повторень


Постановка задачі. Розробити алгоритм та програму знаходження суми n членів ряду


Виконати тестування для перевірки правильності функціонування програми для значень n=3, x=2.


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

n

s

x

Ідентифікатор

n

s

x

Тип

integer

single

single


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


Sub Zavdannya_5()

Dim x As Single, s As Single

Dim i As Integer, n As Integer

Dim fact As Integer

x = InputBox("x")

n = InputBox("n")

s = 0

For i = 0 To n

s = s + ((-1) ^ n) * 1 / ((2 * n + 1) * (x ^ (2 * n + 1)))

Next i

MsgBox ("сума значень" + Str(s))

End Sub


Контрольний приклад

Виконуємо обчислення для даних тестового прикладу. Результати роботи програми на екрані монітора мають вигляд Виконуємо на калькуляторі підрахунки значення згідно з формулами: 0.042782738


Увести x

2

Увести n

3

Висновок: Порівнюючи результати тестового приклада обрахованого за допомогою калькулятора та комп'ютерної програми бачимо що розходження склало 0.042782738+0.0464286)/0.042782738*100 = 0,0006%. Програма виконана вірно.


2.Алгоритми роботи з одновимірними масивами


Постановка задачі: Обчислити середнє геометричне елементів масиву Y, які задовольняють умові yi>0.

Блок схема:

початок

Задати значення n

Вивести s

кінець

i=1..n

так

ні

Задати Y[i]

s=s*(Y[i])

p=p+1

s=1,p=0




i>n








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

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

n

s

p

Y(20)

i

Ідентифікатор

n

s

p

Y(20)

i

Тип

integer

single

integer

integer

integer


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


Sub Odnovymirniy_masiv()

' Оголошення змінних

Dim Y(20) As Integer

Dim n As Integer

Dim i As Integer

Dim s As Single

Dim p As Integer

' Уведення даних

n = InputBox("Задайте кiлькiсть елементiв n=")

' Встановлення початкового значення суми

s = 1

p = 0

For i = 1 To n

Y(i) = InputBox("Задайте елемент масива Y(" + Str(i) + ")=")

If Y(i) > 0 Then

s = s * Y(i)

p = p + 1

End If

Next i

s = s ^(1/p)

MsgBox ("Середнє геометричне s=" + Str(s))

End Sub


Контрольний приклад. Виконуємо обчислення для даних тестового прикладу. Результати роботи програми на екрані монітора мають вигляд


Y=


Задайте кiлькiсть елементiв n=6

Задайте елемент масива Y[1]=2;

Задайте елемент масива Y[2]=-54;

Задайте елемент масива Y[3]=4;

Задайте елемент масива Y[4]=-6;

Задайте елемент масива Y[5]=4;

Задайте елемент масива Y[6]=0;


Висновок: Порівнюючи результати тестового приклада обрахованого за допомогою калькулятора та комп'ютерної програми бачимо що розходження склало 0%. Програма виконана вірно.


3.Програмування алгоритмів із структурою вкладених циклів і обробка матриць


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

Знайти в кожному рядку матриці F(N,M), N20, M10 максимальний та мінімальний елементи і розмістити їх на місці першого та останнього

елементів рядка відповідно. Матрицю надрукувати у звичайному вигляді.


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

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

n

m

p

A(20,10)

i

j

min

max

o

k

K1

Ідентифікатор

n

m

p

A(20,10)

i

j

min

max

o

k

K1

Тип

integer

integer

integer

integer

integer

integer

integer

integer

integer

integer

integer


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


Sub Matrix()

' оголошення змінних

Dim A(20, 10) As Single

Dim B(20, 10) As Single

Dim n As Integer, m As Integer

Dim i As Integer, j As Integer, p As Integer,

K1 As Integer, k As Integer, o As Integer

Dim min As Single

Dim max As Single

n = InputBox("уведіть кількість рядків n=")

m = InputBox("уведіть кількість стовпців m=")

For i = 1 To n

For j = 1 To m

A(i, j) = InputBox("уведіть елемент масиву A(" + Str(i) + "," + Str(j) + ")=")

Next j

Next i

For i = 1 To n

min = A(i, 1)

max = A(i, 1)

p = 1

o = 1

For j = 1 To m

If (A(i, j) < min) Then

min = A(i, j)

p = j

End If

If (A(i, j) > max) Then

max = A(i, j)

o = j

End If

Next j

k = A(i, p)

k1 = A(i, o)

A(i, o) = k1

A(i, p) = k

A(i, 1) = min

A(i, m) = max

Next i

For i = 1 To n

For j = 1 To m

B(i, j) = A(i, j)

MsgBox ("Елемент масиву B(" + Str(i) + "," + Str(j) + ")=" + Str(B(i, j)))

Next j

Next i

End Sub


Контрольний приклад. Виконуємо обчислення для даних тестового прикладу. Результати роботи програми на екрані монітора мають вигляд

Вводимо матрицю А


Після обробки матриці А програмою отримуємо нову матрицю В з потрібними нам перетвореннями



Задайте кiлькiсть рядкiв матрицi n=4;

Задайте кiлькiсть стовбцiв матрицi m=6;

Задайте елемент масива А[1,1]=1;

Задайте елемент масива А[1,2]=5;

Задайте елемент масива А[1,3]=45;

Задайте елемент масива А[1,4]=7;

Задайте елемент масива А[1,5]=11;

Задайте елемент масива А[1,6]=0;

Задайте елемент масива А[2,1]=65;

Задайте елемент масива А[2,2]=4;

Задайте елемент масива А[2,3]=25;

Задайте елемент масива А[2,4]=3;

Задайте елемент масива А[2,5]=5;

Задайте елемент масива А[2,6]=1;

Задайте елемент масива А[3,1]=1;

Задайте елемент масива А[3,2]=22;

Задайте елемент масива А[3,3]=5;

Задайте елемент масива А[3,4]=4;

Задайте елемент масива А[3,5]=0;

Задайте елемент масива А[3,6]=9;

Задайте елемент масива А[4,1]=7;

Задайте елемент масива А[4,2]=5;

Задайте елемент масива А[4,3]=2;

Задайте елемент масива А[4,4]=1;

Задайте елемент масива А[4,5]=4;

Задайте елемент масива А[4,6]=4;


B[1,1]=45;

B[1,2]=5;

B[1,3]=1;

B[1,4]=7;

B[1,5]=11;

B[1,6]=0;

B[2,1]=65;

B[2,2]=4;

B[2,3]=25;

B[2,4]=3;

B[2,5]=5;

B[2,6]=1;

B[3,1]=22;

B[3,2]=1;

B[3,3]=5;

B[3,4]=4;

B[3,5]=9;

B[3,6]=0;

B[4,1]=7;

B[4,2]=5;

B[4,3]=2;

B[4,4]=4;

B[4,5]=4;

B[4,6]=1;


Порівнюючи результати тестового приклада обрахованого за допомогою калькулятора та комп'ютерної програми бачимо що розходження склало 0%. Програма виконана вірно.


Список використаної літератури

  1. Камминг, Стив. VBA для "чайников", 3-е издание.: Пер.с англ. – М.: Издательский дом "Вильямc", 2001.— 448c.

  2. А. Васильев, А. Андреев. VBA в Office 2000. Питер, 2001. 409 c.

  3. Демидова Л.А., Пылькин А.Н. Программирование в среде Visual Basic for Application. М.: Телеком 2004.

  4. Гетц К., Джилберт М. Программирование в Microsoft Office. К.: Издательская группа BHV, 1999.

5) Бондаренко Олена Олександрівна Інформатика. Visual Basic. 9 клас Бондаренко Олена Олександрівна "Аспект", 2008 р. 200 с.

6) Делявський, М.В. http://e-catalog.mk.ua/cgi-bin/irbis64r_opak72/cgiirbis_64.exe?Z21ID=&I21DBN=NGU&P21DBN=NGU&S21STN=1&S21REF=10&S21FMT=fullw&C21COM=S&S21CNR=20&S21P01=0&S21P02=0&S21P03=M=&S21COLORTERMS=0&S21STR=Основи алгоритмізації та програмування: середовище VBA: навчальний посібник для студентів економічних спеціальностей вищих навчальних закладів / За заг. ред. Р.Б. Чаповської. - Чернівці

7) Чаповська Р.Б Основи алгоритмізації та програмування: середовище VBA, 2006 р.

8) А. Гарнаев - Самовчитель VBA 2000р.

9) Л.А. Демидова, А.Н. Пилькин - Програмування в середовищі VBA, 2004 р.

10) Слепцова Лилия Дмитриевна. Программирование на VBA в Microsoft Office 2007. Самоучитель. — М.: «Диалектика», 2007. — С. 432.

11) Стивен Буллен, Роб Боуви, Джон Грин Профессиональная разработка приложений Microsoft Office Excel. Professional Excel Development: The Definitive Guide to Developing Applications Using Microsoft Excel and VBA. — М.: «Вильямс», 2007. — С. 736.

Нравится материал? Поддержи автора!

Ещё документы из категории информатика:

X Код для использования на сайте:
Ширина блока px

Скопируйте этот код и вставьте себе на сайт

X

Чтобы скачать документ, порекомендуйте, пожалуйста, его своим друзьям в любой соц. сети.

После чего кнопка «СКАЧАТЬ» станет доступной!

Кнопочки находятся чуть ниже. Спасибо!

Кнопки:

Скачать документ