отчет по практике (программирование в vba). отчет по практике 1. Задание 1 Условие Код программы
Скачать 128.71 Kb.
|
Введение За последние 30 лет программирование стало частью промышленной индустрии. Приложения, упрощенная работа с данными, создание техники и прочих продуктов, где замешан автоматизированный процесс – всё это связано с программированием. Среда программирования VBA является актуальной при работе с большим объемом данных в приложениях MC Office, которые используются во всех компаниях. Среда программирования С# является универсальной, однако основа построения алгоритма заключается в применении массивов. Целью прохождения данной практики является оттачивание навыков работы в среде программирования VBA и C#, и применение этих навыков в решении задач, когда необходимо работать с большим объемом данных. В ходе работы я изучу принципы работы с массивами и научусь применять методы в среде программирования VBA и С#. Часть 1 Задание 1 Условие: Код программы: Private Sub CommandButton1_Click() Const N = 5 Dim A(1 To 2 * N) A(1) = Cells(1, 1) A(2) = Cells(2, 1) A(3) = Cells(3, 1) A(4) = Cells(4, 1) A(5) = Cells(5, 1) A(6) = Cells(6, 1) A(7) = Cells(7, 1) A(8) = Cells(8, 1) A(9) = Cells(9, 1) A(10) = Cells(10, 1) For i = 1 To 2 * N Text1 = Text1 & A(i) & Chr(2) Next MsgBox "Масcив действительных чисел = " & Text1 Text2 = Text2 & A(N + 1) & Chr(2) & A(N + 2) & Chr(2) & A(2 * N) & Chr(2) & A(N) & Chr(2) & A(N - 1) & Chr(2) & A(1) MsgBox " Полученные элементы массива = " & Text2 End Sub Ход выполнения: Заполняем ячейки A1:A10 элементами массива(я заполнил числами от 1 до 10 для примера), далее комбинацией клавиш «Alt+F11» открываем среду программирования VBA. Создаем форму оконного приложения и назначаем кнопку на запуск алгоритма программы. Объявляем массив до максимального значения, данного в задаче - А (2 * N) при N = 5. Далее в каждом массиве вызываем его элементы A1:A10 с помощью команды Cells («ячейка», «столбец») для массива i = 1 To 2 * N. Когда мы вызвали элементы массива и определили число массивов, мы можем записать их в нужном нам порядке: Text1 = Text1 & A(i) & Chr(2) Next MsgBox "Масcив действительных чисел = " & Text1 Text2 = Text2 & A(N + 1) & Chr(2) & A(N + 2) & Chr(2) & A(2 * N) & Chr(2) & A(N) & Chr(2) & A(N - 1) & Chr(2) & A(1) MsgBox " Полученные элементы массива = " & Text2 Заключительным шагом я создал кнопку на листе Excel, которая будет вызывать окно пользовательской формы с макросом. Команду вызова окна я записал в «Module 1». Результат работы Задание 2 Условие: Задание 4 Условие: Код макроса: Sub Trans(M As Integer, B() As Integer, BT() As Integer) Dim K As Integer, g As Integer Eye = "" For K = 1 To M For g = 1 To M BT(K, g) = B(g, K) Next g Next K End Sub 'Процедура умножения матрицы на транспонированую матрицу Sub Multi(M As Integer, B() As Integer, BT() As Integer, K() As Integer) Dim D As Integer, x As Integer 'Умножение матрицы на транспонированую матрицу For D = 1 To M For x = 1 To M K(D, x) = 0 For Z = 1 To M K(D, x) = K(D, x) + B(D, Z) * BT(Z, x) Next Z Next x Next D End Sub Private Sub CommandButton1_Click() Dim N As Integer, i As Integer, j As Integer N = CInt(InputBox("Введите порядок матрицы")) Dim A() As Integer, AT() As Integer ReDim A(1 To N, 1 To N) As Integer, AT(1 To N, 1 To N) As Integer, R(1 To N, 1 To N) As Integer Text = "" For i = 1 To N For j = 1 To N A(i, j) = Int(Rnd * 10) Text = Text & A(i, j) & Chr(2) Next j Text = Text & Chr(13) Next i Call Trans(N, A, AT) Dop = "" For i = 1 To N For j = 1 To N Dop = Dop & AT(i, j) & Chr(2) Next j Dop = Dop & Chr(13) Next i Call Multi (N, A, AT, R) Daf = "" For i = 1 To N For j = 1 To N Daf = Daf & R(i, j) & Chr(2) Next j Daf = Daf & Chr(13) Next i MsgBox "Матрица = " & Chr(13) & Text MsgBox "Транспонированная матрица = " & Chr(13) & Dop MsgBox "Произведение матриц = " & Chr(13) & Daf End Sub Ход работы: Перед тем, как написать основной код программы, нужно описать используемые процедуры. Первым делом я описал процедуру транспортирования матрицы. Объявил переменную М в качестве максимального числа массивов, массивы B(), BT(). Переменные K и g объявил в качестве элементов массива. Далее массив B() «сливается» с массивом BT(), тем самым я получил транспортирование матрицы. Затем я записал процедуру умножения матрицы на транспортированную матрицу. Объявил те же массивы В() и ВТ(), однако, добавил ещё массив и другие элементы массива (x и D). Следующим шагом я записал логику умножения, которая будет перебирать элементы массива и выполнять умножение матрицы на транспортированную. Пред-заключительным этапом является написание основной программы, которая будет вызывать описанные выше процедуры (команда Call) и создавать матрицы нужного нам порядка (команда InputBox) из случайных чисел (A(i, j) = Int(Rnd * 10)) в окне пользовательской формы. Для вывода содержимого я использовал команды MsgBox. Заключительным шагом я создал кнопку на листе 4 Excel, которая будет вызывать окно пользовательской формы с макросом. Команду вызова окна я записал в «Module 1». Результат: Для примера возьмем матрицу 5го порядка: |