Главная страница
Навигация по странице:

  • Часть 1 Задание 1 Условие

  • Ход выполнения

  • Text1 = Text1 A(i) Chr(2) Next MsgBox "Масcив действительных чисел = " Text1

  • Результат работы

  • Задание 2 Условие: Задание 4 Условие

  • отчет по практике (программирование в vba). отчет по практике 1. Задание 1 Условие Код программы


    Скачать 128.71 Kb.
    НазваниеЗадание 1 Условие Код программы
    Анкоротчет по практике (программирование в vba
    Дата22.07.2022
    Размер128.71 Kb.
    Формат файлаdocx
    Имя файлаотчет по практике 1.docx
    ТипДокументы
    #635001


    Введение

    За последние 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го порядка:



    написать администратору сайта