|
Розв'язання інженерних задач мовою програмування VBA
Розв'язання інженерних задач мовою програмування 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 | 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) Делявський, М.В. Основи алгоритмізації та програмування: середовище 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.
|
|