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

0 голосов
64 просмотров

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


Информатика (27 баллов) | 64 просмотров
0

не 1000, там вводится сначала n

0

1)Задача в паскале действительно одна, остальные две надо написать в VBA. 2)По поводу второго вопроса, как он представлен выше так и есть, никаких поправок больше нет. 3)Писал вопрос в торопях, забыл про эту задачу (которая находится в комментариях), так что извини если что не так)

0

1000 - это из-за вбитого в голову традиционным Паскалем мнения, что массив надо описать статически и заведомо больше.

0

ну можно 100 написать, я не знаю как правильно:)

0

На третий вопрос ответ давать Правила не разрешают.

0

Дело в том, что потом комментарии будут удалены. Все. И станет непонятно, что за программа приведена третьей.

0

Да я нажимаю изменить, вношу исправления, сохранить, и ничего не меняется(

0

пора б уже и научиться чтото самомусделать, столько примеров уже дали

0

так я ток начал изучать все это, потихоньку разбираюсь, а по плану не успеваю(

0

Спасибо;)

Дан 1 ответ
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

(53.1k баллов)