Y=1/(sin(x)+cos(x))+1/(sin(2x)+cos(2x) +….+1/(sin(nx)+cos(nx) при х=0,45 и n=8 решить это уравнение в экселе,и автоматизировать так ,что если я изменю n то всё будет работать
В первом файле фрагмент экрана, показывающий работу программы. Во втором - рабочая книга MS Excel. Небольшая процедура на VBA, текст которой приведен ниже, выполняет всю необходимую работу.Для того, чтобы работать с данной реализацией, надо в Экселе разрешить работу с макросами и разрешить доверять проектам без цифровой подписи (это стандартное условие для выполнения средств автоматизации в MS Office).
Option Explicit
Private Sub CommandButton1_Click() Dim i As Integer, s As Double Dim x As Double, n As Integer x = Cells(2, 1).Value n = Cells(2, 2).Value s = 0 For i = 1 To n s = s + 1 / (Sin(n * x) + Cos(n * x)) Next i Cells(3, 2).Value = s End Sub
Если ввести X или Y значительно больше чем Z то программа на втором или тертьем условии выдаст false и закончит свою работу ничего не написав. Например: если указать X = 10 , Y = 2, Z = 3; то на первом условии будет true, потому что 10 +2 > 3 , но на третьем условии выдаст false потому что 2+3 < 10 но так как ничего не прописано на этот случай программа просто закончит свою работу. Что бы исправить этот баг необходимо все условия свести в одно: if ((x + y > z)and (x + z > y) and (y + z > x) ) then writeln('треугольник построить можно') else writeln('треугольник построить нельзя'); end.
Это решение так же является ответом на 3-й вопрос.
Небольшая процедура на VBA, текст которой приведен ниже, выполняет всю необходимую работу.Для того, чтобы работать с данной реализацией, надо в Экселе разрешить работу с макросами и разрешить доверять проектам без цифровой подписи (это стандартное условие для выполнения средств автоматизации в MS Office).
Option Explicit
Private Sub CommandButton1_Click()
Dim i As Integer, s As Double
Dim x As Double, n As Integer
x = Cells(2, 1).Value
n = Cells(2, 2).Value
s = 0
For i = 1 To n
s = s + 1 / (Sin(n * x) + Cos(n * x))
Next i
Cells(3, 2).Value = s
End Sub