1.- Hallar el área y la longitud de una circunferencia, solicitando el radio de la misma R . Area = PI * R al cuadrado, Longitud = 2 * PI * R .
Module Module1
Private Function AreaCirculo(ByVal Radio As Double) As Double
AreaCirculo = Radio * Radio * 3.1415
End Function
Private Function LongitudCirculo(ByVal Radio As Double) As Double
LongitudCirculo = Radio * 2 * 3.1415
End Function
Sub Main()
Dim Radio As Double
Console.WriteLine("Cálculo del área y longitud de un circulo")
Radio = Console.ReadLine
Console.WriteLine("Area de radio {0} es {1} ", Radio, AreaCirculo(Radio))
Console.WriteLine("Longitud radio {0} es {1} ", Radio, LongitudCirculo(Radio))
Console.ReadKey()
End Sub
End Module
2.- Hallar el área de un triángulo. Area = Base por Altura / 2.
Module Module1
Private Function AreaTriangulo(ByVal Base As Double, ByVal Altura As Double) As Double
AreaTriangulo = Base * Altura / 2
End Function
Sub Main()
Dim Base As Double
Dim Altura As Double
Console.WriteLine("Cálculo del área de un triángulo")
Console.WriteLine("Introducir Base")
Base = Console.ReadLine
Console.WriteLine("Introducir Altura")
Altura = Console.ReadLine
Console.WriteLine("Area triángulo de base {0} y altura {1} es {2} ", Base, Altura, AreaTriangulo(Base, Altura))
Console.ReadKey()
End Sub
End Module
3.- Introducir un número A y visualizar si es o no primo.
Module Module1
Public Function Primos(ByVal Numero As Long) As Boolean
Dim X As Integer = 3
Dim Final As Long
Dim Result As Boolean = True
Select Case Numero Mod 2 <> 0
Case True
Final = CLng(Numero / 2) + 1
While X < Final And Result
Result = Numero Mod X <> 0
X = X + 1
End While
Case Else
If Numero > 2 Then Result = False
End Select
Primos = Result
End Function
Sub Main()
Dim Numero As Integer
Console.WriteLine("Números primos")
Console.WriteLine("Introducir número")
Numero = Console.ReadLine
Select Case Objeto.Primos(Numero)
Case True
Console.WriteLine("El número {0} es primo ", Numero)
Case Else
Console.WriteLine("El número {0} no es primo ", Numero)
End Select
Console.ReadKey()
End Sub
End Module
4.- Introducir una calificación (entre cero y diez), e imprimir su equivalente alfabético, según la siguiente tabla.
De 3 -------> M.D.
Desde 3 y menor que 5 -------> INS.
Desde 5 y menor que 6 -------> SUF
Desde 6 y menor que 7 -------> BIEN
Desde 7 y menor que 9 -------> NOT.
Desde 9 hasta 10 -------> SOB.
Module Module1
Private Function Calificacion(ByVal Nota As Single) As String
Dim Texto As String = ""
Select Case Nota
Case 0 To 2.99
Texto = "M.D."
Case 3 To 4.99
Texto = "Ins"
Case 5 To 5.99
Texto = "Suf"
Case 6 To 6.99
Texto = "Bien"
Case 7 To 8.99
Texto = "Not"
Case 9 To 10.0
Texto = "Sob"
Case Else
Texto = "Calificación erronea"
End Select
Calificacion = Texto
End Function
Sub Main()
Dim Nota As Single
Console.WriteLine("Introducir nota ")
Nota = Console.ReadLine
Console.WriteLine(Calificacion(Nota))
Console.ReadKey()
End Sub
End Module
5.- Introducir un valor en metros y visualizar su valor en millas terrestres, marinas , yardas y leguas.
Milla terrestre = 1.609,34 m.
Milla marina = 1.852,00 m.
Yarda = 4.190 m.
Legua = 0,9144 m.
Module Module1
Private Function Conversion(ByVal M As Single, _
ByVal T As String) As Single
Dim C As Single
Select Case T
Case "T"
C = CSng(M / 1609.34)
Case "M"
C = CSng(M / 1852)
Case "L"
C = CSng(M / 4190)
Case "Y"
C = CSng(M / 0.9144)
End Select
Conversion = C
End Function
Sub Main()
Dim Metros As Single
Dim Tipo as String
Console.WriteLine("Convertir distancia en metros ")
Console.WriteLine("Introducir distancia en metros")
Metros = Console.ReadLine
Console.WriteLine("Introducir M/T/L/Y ")
Tipo = Console.ReadLine
Console.WriteLine(Conversion(Metros, Tipo))
Console.ReadKey()
End Sub
End Module
6.- Introducir una fecha en pantalla con el formato día, mes y año en tres variables numéricas, validar la fecha y emitir el mensaje de fecha incorrecta o correcta.
Module Module1
Function Fecha(ByVal D As Integer, _
ByVal M As Integer, _
ByVal A As Integer) _
As Boolean
Dim Fec As Boolean
Select Case M
Case 1, 3, 5, 7, 8, 10, 12
Fec = D > 0 And D < 32
Case 4, 6, 9, 11
Fec = D > 0 And D < 31
Case 2
Select Case A Mod 100 = 0
Case True
Fec = (D > 0 And D < 29) Or (D = 29 And A Mod 400 = 0)
Case Else
Fec = (D > 0 And D < 29) Or (D = 29 And A Mod 4 = 0)
End Select
End Select
Fecha = Fec
End Function
Sub Main()
Dim Dia As Integer
Dim Mes As Integer
Dim Year As Integer
Console.WriteLine("Comprobar fecha ")
Console.WriteLine("Introducir dia")
Dia = Console.ReadLine
Console.WriteLine("Introducir mes")
Mes = Console.ReadLine
Console.WriteLine("Introducir año")
Year = Console.ReadLine
Select Case Fecha(Dia, Mes, Year)
Case True
Console.WriteLine("La fecha es correcta")
Case Else
Console.WriteLine("La fecha no es correcta")
End Select
Console.ReadKey()
End Sub
End Module
7.- A partir de los siguientes valores de moneda extranjera, crear una función que a partir de un importe en pesetas devuelva su equivalente en la moneda que se indique.
Module Module1
Function ConversionMoneda(ByVal Pesetas As Single, _
ByVal Moneda As String) As Single
Dim Result As Single
Select Case Moneda
Case "F"
Result = CSng(Pesetas / 25.24)
Case "L"
Result = CSng(Pesetas / 0.0859)
Case "I"
Result = CSng(Pesetas / 245.556)
Case "D"
Result = CSng(Pesetas / 150.228)
Case "M"
Result = CSng(Pesetas / 84.648)
Case "S"
Result = CSng(Pesetas / 101.755)
Case "H"
Result = CSng(Pesetas / 5.117)
Case "P"
Result = CSng(Pesetas / 0.826)
End Select
ConversionMoneda = Result
End function
Sub Main()
Dim Pesetas As Integer
Dim Moneda As Char
Console.WriteLine("Convertir moneda ")
Console.WriteLine("Introducir pesetas")
Pesetas = Console.ReadLine
Console.WriteLine("Introducir moneda F/L/I/D/M/S/H/P")
Moneda = Console.ReadLine
Console.WriteLine("El importe de {0} pesetas en la moneda {1} es {2} ", Pesetas, Moneda, ConversionMoneda(Pesetas, Moneda))
Console.ReadKey()
End Sub
End Module
Las soluciones por las que se ha optado son mejorables, y solo pretenden ilustrar como abordar una función.
En estos ejercicios en algunos casos sería necesario añadir instrucciones del tipo
T = Ucase(T)
Siendo T una variable de tipo char, que puede venir indistintamente en minúsculas o mayúsculas, de esa forma nos aseguramos su completo funcionamiento, convirtiéndola a mayúsculas.
También se ha optado por utilizar una variable auxiliar, y luego que la función reciba su valor, no siendo eso imprescindible, pero sin embargo si válido en cualquier lenguaje.
En función de cómo se tenga configurado VB, las líneas del tipo
Result = CSng(Pesetas / 101.755)
C = CSng(M / 1609.34)
Pueden funcionar también con esta sintaxis.
Result = Pesetas / 101.755
C = M / 1609.34
CSng, CDbl, Cint, etc, son funciones de conversión de un valor numérico a un valor determinado, Single, doble, entero etc..
Ello viene obligado por la definición del parámetro Option Strict, para acceder al mismo
Proyecto ŕ Propiedades ŕ Compilar
![]()
Si está en off, no exige la conversión obligada de tipos, es fuente de posibles errores, si está en On, sí.
Su valor adecuado debería ser On, aunque obligue a la conversión de los datos.
Síguenos en: Facebook Sobre aulaClic Política de Cookies