
Нужна помощь в переводе программ с языка 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, А-произвольная матрица, Е-единичная матрица

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

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



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.


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







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili