FANDOM


Procedimientos Editar

Punto de partida:

Option Explicit On

Module Module1

  Sub Main()

    Console.ReadKey()
    Console.ReadKey()
    Console.ReadKey()

    Console.WriteLine()
    Console.Write("Pulse Intro para terminar.")
    Console.ReadLine()

  End Sub

End Module

Sólo aceptamos letras:

Option Explicit On

Module Module1

  Sub Main()

    Dim tecla As System.ConsoleKeyInfo

    tecla = Console.ReadKey()
    If tecla.Key < 65 Or tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
    End If

    tecla = Console.ReadKey()
    If tecla.Key < 65 Or tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
    End If

    tecla = Console.ReadKey()
    If tecla.Key < 65 Or tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
    End If

    Console.WriteLine()
    Console.Write("Pulse Intro para terminar.")
    Console.ReadLine()

  End Sub

End Module

Sólo aceptamos y mostramos letras:

Option Explicit On

Module Module1

  Sub Main()

    Dim tecla As System.ConsoleKeyInfo

    tecla = Console.ReadKey(True)
    If tecla.Key < 65 Or tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
    Else
      Console.Write(tecla.KeyChar)
    End If

    tecla = Console.ReadKey(True)
    If tecla.Key < 65 Or tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
    Else
      Console.Write(tecla.KeyChar)
    End If

    tecla = Console.ReadKey(True)
    If tecla.Key < 65 Or tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
    Else
      Console.Write(tecla.KeyChar)
    End If

    Console.WriteLine()
    Console.Write("Pulse Intro para terminar.")
    Console.ReadLine()

  End Sub

End Module

Lo mismo, pero con un procedimiento:

Option Explicit On

Module Module1

  Sub LeerTecla()

    Dim tecla As System.ConsoleKeyInfo

    tecla = Console.ReadKey(True)
    If tecla.Key < 65 Or tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
    Else
      Console.Write(tecla.KeyChar)
    End If

  End Sub

  Sub Main()

    LeerTecla()
    LeerTecla()
    LeerTecla()

    Console.WriteLine()
    Console.Write("Pulse Intro para terminar.")
    Console.ReadLine()

  End Sub

End Module

Funciones Editar

Lo mismo, pero con funciones:

Option Explicit On

Module Module1

  Function LeerTecla() As Boolean

    Dim tecla As System.ConsoleKeyInfo

    tecla = Console.ReadKey(True)
    If tecla.Key < 65 Or tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
      LeerTecla = False
    Else
      Console.Write(tecla.KeyChar)
      LeerTecla = True
    End If

  End Function

  Sub Main()

    Dim i As Byte = 0

    Do
      If LeerTecla() = True Then
        i += 1
      End If
    Loop Until (i = 3)

    Console.WriteLine()
    Console.Write("Pulse Intro para terminar.")
    Console.ReadLine()

  End Sub

End Module

Parámetros Editar

Option Explicit On

Module Module1

  Function LeerTecla( _
    ByVal Tecla As System.ConsoleKeyInfo _
  ) As Boolean

    If Tecla.Key < 65 Or Tecla.Key > 90 Then
      MsgBox("Sólo se aceptan letras.")
      LeerTecla = False
    Else
      Console.Write(Tecla.KeyChar)
      LeerTecla = True
    End If

  End Function

  Sub Main()

    Dim i As Byte = 0

    Do
      If LeerTecla(Console.ReadKey(True)) = True Then
        i += 1
      End If
    Loop Until (i = 3)

    Console.WriteLine()
    Console.Write("Pulse Intro para terminar.")
    Console.ReadLine()

  End Sub

End Module

ByVal Editar

Option Explicit On

Module Module1

  Function DiezVeces(ByVal X As Byte) As UShort
    X = X * 10
    DiezVeces = X
  End Function

  Sub Main()

    Dim X As Byte
    Dim Y As UShort

    X = 25
    Y = DiezVeces(X)

    Console.WriteLine("X: " & X)
    Console.WriteLine("X * 10: " & Y)
    Console.WriteLine("Pulse Intro para continuar.")
    Console.ReadLine()

  End Sub

End Module

ByRef Editar

Option Explicit On

Module Module1

  Function DiezVeces(ByRef X As Byte) As UShort
    X = X * 10
    DiezVeces = X
  End Function

  Sub Main()

    Dim X As Byte
    Dim Y As UShort

    X = 25
    Y = DiezVeces(X)

    Console.WriteLine("X: " & X)
    Console.WriteLine("X * 10: " & Y)
    Console.WriteLine("Pulse Intro para continuar.")
    Console.ReadLine()

  End Sub

End Module

Parámetros opcionales Editar

Option Explicit On

Module Module1

  Sub AltaPersona( _
    ByVal Nombre As String, _
    Optional ByVal Apellidos As String = "<No definido>" _
  )

    Console.WriteLine(Nombre & " " & Apellidos)

  End Sub

  Sub Main()

    AltaPersona("Tad", "Williams")
    AltaPersona("Anónimo")

    Console.WriteLine("Pulse Intro para continuar.")
    Console.ReadLine()

  End Sub


End Module

Matrices de parámetros Editar

Option Explicit On

Module Module1

  Function Sumatorio(ByVal ParamArray Valores() As Byte) As ULong

    If _
      Valores Is Nothing Or _
      Valores.Length < 1 _
    Then
      Sumatorio = 0
      Exit Function
    End If

    Dim iResultado As ULong = 0
    Dim iValor As Byte
    For Each iValor In Valores
      iResultado += iValor
    Next

    Sumatorio = iResultado

  End Function

  Sub Main()

    Console.WriteLine("Resultado: " & Sumatorio(1, 2, 3, 4, 5))
    Console.WriteLine("Resultado: " & Sumatorio())
    Console.WriteLine("Pulse Intro para continuar.")
    Console.ReadLine()

  End Sub


End Module

¡Interferencia de bloqueo de anuncios detectada!


Wikia es un sitio libre de uso que hace dinero de la publicidad. Contamos con una experiencia modificada para los visitantes que utilizan el bloqueo de anuncios

Wikia no es accesible si se han hecho aún más modificaciones. Si se quita el bloqueador de anuncios personalizado, la página cargará como se esperaba.