Excel VBA: Составить программу для вычисления значения

Автор NOY, 12 декабря 2015, 14:15

NOY

Помогите кто чем может:

[вложение удалено администратором]

Администратор

Задание 1. Составить программу вычисления значения функции z от аргументов a и x:
Код
Sub Задание1()
    Dim a As Double, x As Double, z As Double
    '1. Запись чисел в переменные.
    a = InputBox("Введите a:")
    x = InputBox("Введите x:")
    '2. Расчёт z.
    z = Log(Abs(a ^ 7)) / Log(10) + Atn(x ^ 2) + 3.14 / Sqr(Abs(a - x))
    '3. Выводт результата на монитор.
    MsgBox "z = " & z
End Sub
[свернуть]

Задание 2. Составить программу вычисления значения функции y от аргумента x:
Код
Sub Задание2()
    Dim x As Double, y As Double
    '1. Запись числа в переменную "x".
    x = InputBox("Введите x:")
    '2. Расчёт.
    If x <= 0 Then
        y = Cos(x)
    ElseIf (x > 1) And (x <= 20) Then
        y = Cos(x) ^ 2
    ElseIf x > 20 Then
        y = x ^ (1 / 2)
    End If
    '3. Сообщение.
    MsgBox "y = " & y
End Sub
[свернуть]

Задание 3. Составить программу вычисления значения функции на заданном отрезке с использованием оператора цикла For ... Next.
Код

В этом задании результат выводится на активный эксель-лист.

Sub Задание3()
    Const x As Double = 5.8
    Dim y As Long, b As Double, r As Long
    '1. Очистка эксель от предыдущего использования.
    Range("A1").CurrentRegion.Clear
    '2.
    For y = 1 To 46 Step 9
        ' Расчёт "y".
        b = Atn((x - y) / (1 + x * Sin(y)))
        ' Запись в эксель.
        r = r + 1
        Cells(r, "A").Value = y
        Cells(r, "B").Value = b
    Next y
End Sub
[свернуть]

Задание 4. Дана массив A(10). Заменить все чётные элементы массива на максимальное значение. Вывести преобразованный массив.
Код

В этом задании исходные данные берутся из активного эксель-листа из столбца A и результат вставляется на активный эксель-лист в столбец B.

Sub Задание4()

    ' Создание массива с десятью элементами.
    Dim arr(1 To 10) As Double, dblMax As Double
    Dim i As Long
   
   
    '1. Запись в массив чисел из активного эксель-листа из столбца A.
    For i = 1 To 10 Step 1
        arr(i) = Cells(i, "A").Value
    Next i
   
    '2. Поиск максимального элемента.
    dblMax = arr(1)
    For i = 2 To UBound(arr) Step 1
        If arr(i) > dblMax Then
            dblMax = arr(i)
        End If
    Next i
   
    '3. Замена чисел в чётных элементах.
    For i = 2 To UBound(arr) Step 2
        arr(i) = dblMax
    Next i
   
    '4. Вывод результат на эксель-лист в столбец B.
    For i = 1 To UBound(arr) Step 1
        Cells(i, "B").Value = arr(i)
    Next i

End Sub
[свернуть]

Задание 5. Ввести массив A(14). Найти сумму всех элементов, произведение нечётных элементов массива и частное от деления произведения и суммы. Вывести все результаты.
Код

Это задание берёт исходные числа из активного эксель-листа из столбца A.

Sub Задание5()

    ' Создание в массиве 14 элементов.
    Dim arr(1 To 14) As Double, dblSum As Double, dblProduct As Double, dblQuotient As Double
    Dim i As Long
   
   
    '1. Заполнение массива числами из эксель-листа из столбца A.
    For i = 1 To UBound(arr) Step 1
        arr(i) = Cells(i, "A").Value
    Next i
   
    '2. Расчёт суммы.
    For i = 1 To UBound(arr) Step 1
        dblSum = dblSum + arr(i)
    Next i
   
    '3. Расчёт произведения нечётных элементов.
    dblProduct = 1
    For i = 1 To UBound(arr) Step 2
        dblProduct = dblProduct * arr(i)
    Next i
   
    '4. Частное.
    dblQuotient = dblProduct / dblSum
   
    '5. Сообщение.
    MsgBox "Сумма = " & dblSum & vbCr & _
        "Произведение = " & dblProduct & vbCr & _
        "Частное = " & dblQuotient

End Sub
[свернуть]