profile
Размещено 5 лет назад по предмету Информатика от grigorimakhonin

Написать программу в VBA. Заданы массивы А(40,40), В(20,20) и С(30,30).Для каждого из заданных массивов определить количество элементов в строке превышающих среднее арифметическое значение элементов массива

  1. Ответ на вопрос
    Ответ на вопрос дан Аккаунт удален
    Option Explicit

    Function Mean2(A As Variant) As Double
        'Возвращает среднее арифметическое элементов двухмерного массива
        Dim i As Integer, j As Integer, S As Variant, n As Integer
        S = 0
        For i = LBound(A, 1) To UBound(A, 1)
            For j = LBound(A, 2) To UBound(A, 2)
                S = S + A(i, j)
            Next j
        Next i
        n = (UBound(A, 1) - LBound(A, 1) + 1) * (UBound(A, 2) - LBound(A, 1) + 1)
        Mean2 = S / n
    End Function

    Sub InitMas2(A As Variant, amin As Variant, amax As Variant)
        'Инициализирует элементы двухмерного массива датчиком случайных чисел
        'amin и amax задают диапазон часел для инициализации
        Dim i As Integer, j As Integer, typ As Integer, ik As Integer, rk As Single
        Dim imin As Integer, jmin As Integer, imax As Integer, jmax As Integer
        imin = LBound(A, 1)
        imax = UBound(A, 1)
        jmin = LBound(A, 2)
        jmax = UBound(A, 2)
        typ = VarType(A) - 8192
        Select Case typ
        Case 2, 3, 17
            ik = Int(amax - amin + 1)
            For i = imin To imax
                For j = jmin To jmax
                    A(i, j) = Int(Rnd * ik + amin)
                Next j
            Next i
        Case Else
            rk = amax - amin + 1
            For i = imin To imax
                For j = jmin To jmax
                    A(i, j) = Rnd * rk + amin
                Next j
            Next i
        End Select
    End Sub

    Sub OutMas(A As Variant, prow As Integer, pcol As Integer)
        'Размещает элементы одномерного массива на текущем листе рабочей книги
        'Ячейка в левом верхнем углу имеет адрес (prow,pcol)
        'Размещение идет по колонке
        Dim i As Integer, ic As Integer
        Dim imin As Integer, imax As Integer
        imin = LBound(A, 1)
        imax = UBound(A, 1)
        ic = prow
        For i = imin To imax
            Cells(ic, pcol).Value = A(i)
            ic = ic + 1
        Next i
    End Sub

    Sub OutMas2(A As Variant, prow As Integer, pcol As Integer)
        'Размещает элементы двухмерного массива на текущем листе рабочей книги
        'Ячейка в левом верхнем углу имеет адрес (prow,pcol)
        Dim i As Integer, j As Integer, ic As Integer, jc As Integer
        Dim imin As Integer, jmin As Integer, imax As Integer, jmax As Integer
        imin = LBound(A, 1)
        imax = UBound(A, 1)
        jmin = LBound(A, 2)
        jmax = UBound(A, 2)
        ic = prow
        For i = imin To imax
            jc = pcol
            For j = jmin To jmax
                Cells(ic, jc).Value = A(i, j)
                jc = jc + 1
            Next j
            ic = ic + 1
        Next i
    End Sub

    Sub NumElems2(A As Variant, B() As Integer, pm As Double)
        ' Находит в каждой строке двухмерного массива а количество элементов,
        ' превышающих среднее арифметическое всех элементов этого массива pm
        ' и помещает это количство в одномерный массив b.
        Dim i As Integer, j As Integer, kol As Integer
        Dim imin As Integer, jmin As Integer, imax As Integer, jmax As Integer
        imin = LBound(A, 1)
        imax = UBound(A, 1)
        jmin = LBound(A, 2)
        jmax = UBound(A, 2)
        For i = imin To imax
            kol = 0
            For j = jmin To jmax
                If A(i, j) > pm Then kol = kol + 1
            Next j
            B(i) = kol
        Next i
    End Sub

    Sub main()
        Const m = 40, n = 20, p = 30
        Dim A(1 To m, 1 To m) As Integer, R(1 To m) As Integer
        Dim B(1 To n, 1 To n) As Single, S(1 To n) As Integer
        Dim C(1 To p, 1 To p) As Integer, T(1 To p) As Integer
        Dim i As Integer, mm As Double
        Randomize Timer
        InitMas2 A, -1000, 1000
        OutMas2 A, 1, 1
        mm = Mean2(A)
        NumElems2 A, R, mm
        OutMas R, 1, m + 2
       
        InitMas2 B, 0, 1800
        OutMas2 B, 42, 1
        mm = Mean2(B)
        NumElems2 B, S, mm
        OutMas S, 42, n + 2
       
        InitMas2 C, -1200, 800
        OutMas2 C, 63, 1
        mm = Mean2(C)
        NumElems2 C, T, mm
        OutMas T, 63, p + 2
    End Sub

    Особенность программы: позволяет работать с массивами любых допустимых числовых типов. Размер массивов фактически ограничен только размером свободной оперативной памяти компьютера.

    Для запуска не забудьте разрешить исполнение макросы на уровне безопасности не выше "Средний" и дать доверенный доступ к проектам VBA.
    1. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Вы хотя бы комментарии почитали в тексте программы, там по-русски написано про двухмерные массивы.
    2. Ответ на вопрос
      Ответ на вопрос дан Аккаунт удален
      Это VBA, он позволяет работать с динамическими массивами. Их размеры можно менять как угодно в процессе работы.
    3. Ответ на вопрос
      Ответ на вопрос дан grigorimakhonin
      а точно,зарешался) извините)
Не тот ответ на вопрос, который вам нужен?
Найди верный ответ
Самые новые вопросы
tegysigalpa2012
Русский язык - 6 лет назад

Помогите решить тест по русскому языку тест по русскому языку «местоимение. разряды местоимений» для 6 класса 1. укажите личное местоимение: 1) некто 2) вас 3) ни с кем 4) собой 2. укажите относительное местоимение: 1) кто-либо 2) некоторый 3) кто 4) нам 3. укажите вопросительное местоимение: 1) кем-нибудь 2) кем 3) себе 4) никакой 4. укажите определительное местоимение: 1) наш 2) который 3) некий 4) каждый 5. укажите возвратное местоимение: 1) свой 2) чей 3) сам 4) себя 6. найдите указательное местоимение: 1) твой 2) какой 3) тот 4) их 7. найдите притяжательное местоимение: 1) самый 2) моего 3) иной 4) ничей 8. укажите неопределённое местоимение: 1) весь 2) какой-нибудь 3) любой 4) этот 9. укажите вопросительное местоимение: 1) сколько 2) кое-что 3) она 4) нами 10. в каком варианте ответа выделенное слово является притяжательным местоимением? 1) увидел их 2) её нет дома 3) её тетрадь 4) их не спросили

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.