Создать программу вычисления функции S для 5 пар чисел x и y. VBA

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

Создать программу вычисления функции S для 5 пар чисел x и y. VBA


image

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

Странно. Быть знакомым с С/С++/С# и не знать Бейсик... какое-то однобокое образование

0

Я видел синтаксис Бейсика. Он ужасен...

0

По мне, так синтаксис С/С++ куда ужаснее

0

Собственно, скоро я выложу код, посмотрите

0

Ну С/C++ хардкорные языки, не спорю. Зато C# отличная штука, напичканная синтаксическим сахаром. Никаких тебе указателей (хотя можно врубить unsafe mode)

0

Нет, отличная штука в качестве первого языка - не C#, а PascalABC.NET. Это C#, обернутый в паскалевский синтаксис и щедро сдобренный сахарком на основе Haskell и Python (чтобы они нос не драли).

0

A VBA - это язык, у которого интерфейс - листы Excel. И это прекрасный интеллектуальный интерфейс!

0

Вон, одна команда a = Range("A1:B5") считала данные и листа и превратила их в двумерный массив.

0

Обратно тоже работает.

0

Можно прямо из VBA сортировки делать, листы оформлять, графики строить... вывалить текст в документ Word и там сформатировать программно...

Дан 1 ответ
0 голосов
Правильный ответ

Sub MyTest()
    Dim a As Variant, i As Integer
    a = Range("A1:B5")
    For i = 1 To 5
        Cells(i, 3) = S(a(i, 1), a(i, 2))
    Next i
End Sub

Function S(ByVal x As Double, ByVal y As Double) As Double
    Dim i As Integer
    If x < y Then
        S = 0
        For i = 1 To 20
            S = S + x ^ i * y ^ (i + 1)
        Next i
    ElseIf x > y Then S = (x * y) ^ 2
    Else: S = x * x + y * y
    End If
End Function
x - по колонке A1:A5, y - по колонке B1:B5, результат в C1:C5


image
(150k баллов)
0

а по-другому нельзя?примерно так
Sub Zad2()
Dim x As Single, y As Single, i As Integer, n As Integer
Dim s As Single

n = 0
s = 0

y = 5
For x = 1 To 5
If x < y Then
For i = 1 To 20
s = s + (x ^ i) * (y ^ (i + 1))
Cells(9 + n, 3) = s
Next i
End If

If x > y Then
s = (x ^ 2) * (y ^ 2)
Cells(10 + n, 3) = s
End If

If x = y Then
s = (x ^ 2) + (y ^ 2)
Cells(11 + n, 3) = s
End If

y = y - 1
Next x
n = n + 1
Cells(8 + n, 2) = y
Cells(8 + n, 1) = x
Cells(8, 1) = "x="
Cells(8, 2) = "y="
Cells(8, 3) = "s="
End Sub

0

Да можно по-разному, но почему я должен вдумываться в Ваш код и искать там ошибки, дав свой?

0

Я не прошу искать ошибки. Мне нужен код такой, как у меня, но правильный.

0

Тогда надо было его привести в вопросе и попросить исправить

0

Либо, написать по его образцу. А так, извините, получить решение, а потом начинать вместо "спасибо" свои хотелки демонстрировать - это некрасиво (я выбрал слово помягче).