1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Duvida] Functions e Sub Routines em VB2005

Discussão em 'Programação' iniciada por Ruivo, 4 de Outubro de 2007. (Respostas: 5; Visualizações: 1082)

  1. Ruivo

    Ruivo Power Member

    Boas a todos,
    eu ando com um grande problema no mundo da programação que me já está a comer a cabeça toda.
    Eu gostava de saber a diferença entre Sub routine e Function.
    Já estive a ler alguns guias de Visual Basic, e fiquei a saber que Sub routine servem para fazer tudo sempre a direito e Function para retornar valores. Mas n estou a perceber que Valores e para que serve isso :S
    Eu ja usei Functions noutra linguagem de programaçao e estava convencido que Function era o mesmo que Sub routines em Visual Basic.
    Sera que me podem explicar + ou - isto? Eu aprendi a programar na escola, mas o prof so me ensinou o básico do básico, nada de usar modulos, classes, etc.

    Desde já agradeço qualquer ajuda..

    cumpz...
    Hruivo.
     
  2. joao.miguel

    joao.miguel Power Member

    É tal e qual o que tu dizes.

    Um sub é um método que não retorna parâmetros (apesar que os podes retornar se os declarares byref).

    Uma function, é uma função que pode retornar parâmetros pela função (do género: Return "my value").

    É um conceito simples.

    O mesmo em C# aplica-se a funções "void"(igual ao sub) e com um "return type" definido (igual à function).
     
  3. Ruivo

    Ruivo Power Member

    Ahh! ja percebi lol
    Estava agr a olhar para umas classes e ja sei o que são os parametros. E a lógica para tal.
    Agr sim, já sei ate como fazer o meu projecto :D parece que já vejo uma luz ao fundo do tunel :)

    Mas não estou a conseguir por a dar como deve ser:

    Código:
      public sub initfog()
             Fog(False)
        End Sub
    
        Public Function Fog(ByVal var As Boolean) As Boolean
            Atmos.Fog_Enable(True)
            Atmos.Fog_SetColor(0.5, 0.5, 0.5)
            blablabla
        End Function
    Mas quer meta Fog(true) como fog(false) ele faz aparecer o Fog.
    O que estou a fazer mal?

    Fica bem ;)
    Ruivo...
     
    Última edição: 4 de Outubro de 2007
  4. Ruivo

    Ruivo Power Member

    Ja resolvi.. ando mxm lento :S

    public sub initfog()
    Fog(False)
    End Sub

    Public Function Fog(ByVal var As Boolean) As Boolean
    Atmos.Fog_Enable(var)
    Atmos.Fog_SetColor(0.5, 0.5, 0.5)
    blablabla
    End Function
    Obrigado pela ajuda ;)

    Fica bem
     
  5. balute

    balute Power Member

    As functions são feitas para retornar valores. Nesse teu exemplo, isso podia perfeitamente ser um sub...

    Vê aqui este exemplo simples:
    Código:
    'mostrar o resultado de 3 * 2 sem usar uma function:
    
    Dim i As Integer
    i = 3 * 2
    MsgBox(i)
    Código:
    'mostrar o resultado de 3 * 2 usando uma function:
    
    Dim i As Integer
    i = tres_vezes_dois()
    MsgBox(i)
    
    Function tres_vezes_dois() As Integer
    Return 3 * 2
    End Function
    Código:
    'mostrar o resultado de 3 * 2 usando uma function com parâmetros:
    
    Dim i As Integer
    i = multiplicar(3, 2)
    MsgBox(i)
    
    Function multiplicar(ByVal x As Integer, ByVal y As Integer) As Integer
    Return x * y
    End Function
     
  6. Ruivo

    Ruivo Power Member

    hmm, estou a ver.
    Muito obrigado, muito bons os exemplos.
    Agr fiquei completamente a perceber o que eram as functions e onde as usar.
     
    Última edição: 4 de Outubro de 2007

Partilhar esta Página