Jump to content
Fórum Script Brasil
  • 0

Loop


renantxrluiz
 Share

Question

Olá,

Gostaria da ajuda de vocês pra resolver um problema. É o seguinte:

Estou desenvolvendo uma ferramenta na qual quero fazer um loop, a variável é o valor de x1, ela varia de 0,01 até h1 (h1 é um dado de entrada) incrementando 0,01 a cada tentativa, para cada valor de x1 são feitos algumas equações e resultam em um valor de R1, o critério a ser atendido é quando R1 for igual a zero.

Gostaria de saber quais funções são aplicáveis ao meu problema, pelo que andei lendo, posso utilizar o For Each para o loop, abaixo um rascunho do que pensei, mas ainda não obtive sucesso.

            Dim list As Integer
            For x1 = 0.01 To h1.Text
                For Each x1 As Decimal In list
                    '----equações que dependem de x1
                    Dim d11 = Val(h1.Text) - Val(cinf.Text) - x1
                    Dim d21 = x1 - Val(csup.Text)
                    Dim dn1 = (Val(h1.Text) / 2) - x1
                    Dim Sel1 = st1 - (Val(hm1.Text) * Val(ainf.Text) * d11) + (Val(hm1.Text) * Val(asup.Text) * d21)
                    Dim Iel1 = it1 + (Val(hm1.Text) * Val(ainf.Text) * (d11 ^ 2)) + (Val(hm1.Text) * Val(asup.Text) * (d21 ^ 2))
                    Dim No1 = (Val(aton.Text) / Sel1)
                    Dim Mo1 = (((Val(atom.Text) * 100) - (Val(aton.Text) * dn1)) / Iel1)
                    Dim R1 = ABS((No1 - Mo1)*1000)
                    '---- fim das equações, o valor a ser comparado é R1
                    Continue For
                    R1 > 0
                    Exit For
                    R1 = 0

 

Abraço.

Link to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 0

Ao invés de usar "For" ou "For each" você pode usar "Do while ... Loop":

========================================================

Public Sub Testar()


    Dim x1 As Single
    Dim R1 As Single
    
    x1 = 0.01
    
    Do While x1 <= 1
        Debug.Print Format$(x1, "0.00")
        x1 = x1 + 0.01
    
        '* Equacoes aqui:
        '* ...
        '* R1 = ...
        
        If R1 = 0 Then Exit Do
        
    Loop

    MsgBox "OK"

End Sub

 

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Forum Statistics

    • Total Topics
      149.6k
    • Total Posts
      646.2k
×
×
  • Create New...