Вопрос задан 15.02.2019 в 04:10. Предмет Информатика. Спрашивает Ведров Максим.

Нужна помощь в переводе программ с языка Pascal в VBA 1)В целочисленной последовательности есть

нулевые элементы. Создать массив из номеров этих элементов. a, b : array [1..1000] of integer; n, m, i : integer; begin read (n); for i := 1 to n do read (a[i]); m := 0; for i := 1 to n do if a[i] = 0 then begin m := m + 1; b[m] := i; end; for i := 1 to m do write (b[i], ' '); end. 2)Элементарные операции с матрицами: (A^2+E)*6, А-произвольная матрица, Е-единичная матрица
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Клёвин Андрей.
Sub num1()
    s = 0
    n = CInt(InputBox("N ="))
    Range(Cells(1, 1), Cells(2 * (n + 2), n + 2)).Clear
    ReDim A(n - 1)
    ReDim B(n - 1)

    k = 1
    Cells(k, 1).Value = "A"
    Cells(k + 2, 1).Value = "B"
    k = k + 1

    m = -1
    For i = LBound(A, 1) To UBound(A, 1)
        A(i) = Round(Rnd * 10) - 5
        Cells(k, 1 + i).Value = A(i)
        If A(i) = 0 Then
            m = m + 1
            B(m) = i
            Cells(k + 2, m + 1).Value = B(m)
        End If
    Next
End Sub

Sub num2()
    n = 16
    ReDim A(n, n), C(n, n), E(n, n)
    Range(Cells(1, 1), Cells(2 * (n + 2), n + 2)).Clear

    k = 1
    Cells(k, 1).Value = "Init"
    
    k = k + 1
    Cells(k + n + 1, 1).Value = "Result"

    For i = 0 To n
        For j = 0 To n
            A(i, j) = Round(Rnd * 10)
            Cells(k + i, j + 1).Value = A(i, j)

            If i = j Then E(i, j) = 1 Else E(i, j) = 0

            C(i, j) = 0
            For r = 0 To n
                C(i, j) = C(i, j) + A(i, r) * A(r, j)
            Next

            x = 6 * (C(i, j) + E(i, j))
            Cells(k + n + 2 + i, j + 1).Value = x
        Next
    Next
End Sub
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

1) Вот перевод программы на VBA:

Dim a(1 To 1000) As Integer Dim b() As Integer Dim n, m, i As Integer

n = InputBox("Введите количество элементов в последовательности") For i = 1 To n a(i) = InputBox("Введите элемент " & i) Next i

m = 0 For i = 1 To n If a(i) = 0 Then m = m + 1 ReDim Preserve b(1 To m) b(m) = i End If Next i

Dim output As String For i = 1 To m output = output & b(i) & " " Next i MsgBox output

2) Пример программы на VBA для выполнения элементарных операций с матрицами:

Sub MatrixOperations() Dim A As Variant Dim E As Variant Dim result As Variant Dim i As Integer, j As Integer ' Присваиваем значения матрицам A и E A = [[1, 2], [3, 4]] ' Пример произвольной матрицы A E = [[1, 0], [0, 1]] ' Единичная матрица ' Выполняем операцию (A^2+E)*6 result = WorksheetFunction.MMult(A, A) ' Возведение матрицы A в квадрат result = WorksheetFunction.MMult(result, E) ' Умножение результата на матрицу E For i = LBound(result, 1) To UBound(result, 1) For j = LBound(result, 2) To UBound(result, 2) result(i, j) = result(i, j) * 6 ' Умножение каждого элемента на 6 Next j Next i ' Выводим результат For i = LBound(result, 1) To UBound(result, 1) For j = LBound(result, 2) To UBound(result, 2) Debug.Print result(i, j) Next j Next i End Sub

Это пример программы на VBA, которая выполняет операцию (A^2+E)*6 для произвольной матрицы A и единичной матрицы E.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос