FUNCIONES DE
CONVERSIÓN
Como se habrán dado
cuenta que al activar la opción de Option Strict, este nos obliga que
tenemos que utilizar funciones de conversión para cada tipo de dato, con lo que
no hacíamos, si no lo estaba activado, las funciones mas utilizadas estarán de
color verde, las funciones de conversión son las siguientes:
Nombre
de la
función
|
Tipo
de datos
que
devuelve
|
Valores
del argumento
"expresión"
|
CBool(expresion)
|
Boolean
|
Cualquier valor de cadena o expresión numérica.
|
CByte(expresion)
|
Byte
|
De 0 a
255; las fracciones se redondean.
|
CChar(expresion)
|
Char
|
Cualquier expresión de cadena; los valores deben ser de 0 a
65535.
|
CDate(expresion)
|
Date
|
Cualquier representación válida de una fecha o una hora.
|
CDbl(expresion)
|
Double
|
Cualquier valor Double,.
|
CDec(expresion)
|
Decimal
|
Cualquier valor Decimal.
|
CInt(expresion)
|
Integer
|
Cualquier valor Integer
|
CLng(expresion)
|
Long
|
Cualquier valor Long.
|
CObj(expresion)
|
Object
|
Cualquier expresión válida.
|
CShort(expresion)
|
Short
|
Cualquier valor Short.
|
CSng(expresion)
|
Single
|
Cualquier valor Single.
|
CStr(expresion)
|
String
|
Depende del tipo de datos de la expresión.
|
Nota:
Todos los objetos de vb.NET tienen unos métodos para
realizar conversiones a otros tipos, al menos de número a cadena, ya que
tienen la propiedad .ToString que devuelve una representación en formato
cadena del número en cuestión (igual que CStr).
|
||
CType(expresion, Tipo)
|
El indicado en el segundo parámetro
|
Cualquier tipo de datos
|
Val(expresion)
|
Double
|
Una cadena de caracteres.
|
Fix(expresion)
|
Depende del tipo de datos de la expresión
|
Cualquier tipo de datos
|
Int(expresion)
|
Depende del tipo de datos de la expresión
|
Cualquier tipo de datos
|
MSGBOX
El MSGBOX es una ventana
que nos muestra un mensaje en el centro de la pantalla. Su sintaxis es la
siguiente:
MsgBox(Mensaje,
Tipo de Mensaje, Titulo)
Por ejemplo:
MsgBox("¿Desea Salir de la
Aplicación?",
MsgBoxStyle.YesNo, "Sistema")
El mensaje que nos
mostrara será el siguiente:
Tipo
de Mensaje
|
Icono
|
Botones
(Botón Cerrar)
|
MsgBoxStyle.AbortRetryIgnore
|
No
|
Abortar, Reintentar, Ignorar (Desactivado)
|
MsgBoxStyle.ApplicationModal
|
No
|
Aceptar (Activado)
|
MsgBoxStyle.Critical
|
Aceptar (Activado)
|
|
MsgBoxStyle.DefaultButton1
|
No
|
Aceptar (Activado)
|
MsgBoxStyle.DefaultButton2
|
No
|
Aceptar (Activado)
|
MsgBoxStyle.DefaultButton3
|
No
|
Aceptar (Activado)
|
MsgBoxStyle.Exclamation
|
Aceptar (Activado)
|
|
MsgBoxStyle.Information
|
Aceptar (Activado)
|
|
MsgBoxStyle.MsgBoxHelp
|
No
|
Aceptar, Ayuda (Activado)
|
MsgBoxStyle.MsgBoxRight
|
No
|
Aceptar (Activado)
|
MsgBoxStyle.MsgBoxRtlReading
|
No
|
Aceptar (Activado y al lado Izquierdo)
|
MsgBoxStyle.MsgBoxSetForeground
|
No
|
Aceptar (Activado)
|
MsgBoxStyle.OkCancel
|
No
|
Aceptar, Cancelar (Activado)
|
MsgBoxStyle.OkOnly
|
Aceptar (Activado)
|
|
MsgBoxStyle.Question
|
No
|
Aceptar (Activado)
|
MsgBoxStyle.RetryCancel
|
No
|
Reintentar, Cancelar (Activado)
|
MsgBoxStyle.SystemModal
|
No
|
Aceptar (Activado) Icono en el Titulo
|
MsgBoxStyle.YesNot
|
No
|
Si, No (Desactivado)
|
MsgBoxStyle.YesNotCancel
|
No
|
Si, No, Cancelar (Activado)
|
Variable tipo MsgBoxResult
La variable tipo
MsgBoxResult, almacena los resultados que se obtenga mediante un Message Box,
que después no sirva compararala y ejecutar instrucciones, por ejemplo:
Dim Resp As MsgBoxResult
Resp
= MsgBox("¿Desea
Salir?",
MsgBoxStyle.YesNo, "Sistema")
If Resp = MsgBoxResult.Yes Then
Me.Close()
End
If
Explicación:
Primero declaramos
una variable Resp de tipo MsgBoxResult, esta variable almacena el valor
devuelto del mensaje, si el usuario responde SI, este valor que es verdadero
(True) va a ser comparado con la siguiente instrucción IF que compara la
variable Resp, que seria mas o menos así: Si la variables Resp tienes almacenado
el valor SI, cerrara la ventana, sino, no hará ninguna instrucción.
FUNCIONES TIPO CADENA
Una cadena es un dato de
tipo String (Carácter); es decir se refiere a letras o letras y números, ahora
veremos las funciones de cadenas mas utilizadas y posteriormente realizaremos
una aplicación para que les quede mas claro, sobre las funciones de cadena.
• Right: Obtiene de una
cadena, una cantidad de caracteres empezando por la derecha: Sintaxis;
Microsoft.VisualBasic.Right(Cadena,N)
• Left: Obtiene de una
cadena, una cantidad de caracteres empezando por la izquierda: Sintaxis;
Microsoft.VisualBasic.Left(Cadena,N)
• Mid: Obtiene de una
cadena, una cantidad de caracteres a partir de una posición determinada:
Sintaxis; Microsoft.VisualBasic.Mid(Cadena,N)
• Len: Obtiene la longitud
de una cadena, es decir la cantidad de caracteres que contiene incluyendo los
espacios en blanco: Sintaxis; Len(Cadena) Trim(Cadena)
• Trim: Quita los espacios
en blanco al final de una cadena: Sintaxis;
• RTrim: Quita los
espacios en blanco al final de una cadena: Sintaxis; RTrim(Cadena)
• LTrim: Quita los
espacios en blanco al inicio de una cadena: Sintaxis; LTrim(Cadena)
• UCase: Convierte una
cadena en mayúsculas: Sintaxis; UCase(Cadena)
• LCase: Convierte una
cadena en minúsculas: Sintaxis; LCase(Cadena)
• StrConv: Convierte una
cadena en 3 formas diferentes, en mayúsculas = 1, minúsculas = 2, la primera
letra de cada palabra en mayúsculas = 3 : Sintaxis; StrConv(Cadena,Valor)
• InStr: Obtiene un número
que indica la posición de una subcadena dentro de una cadena: Sintaxis;
InStr(Cadena,SubCadena)
FUNCIONES
TIPO FECHA
·
Función
Now(): Esta función nos devuelve la fecha y hora actual del sistema, en un
formato largo.
·
Función
Date(): Esta función nos devuelve la fecha actual del sistema.
·
Función
Year(Fecha): Esta función nos devuelve el año de una fecha especificada.
·
Función
Month(Fecha): Obtiene el Número de mes de una fecha especificada.
·
Función
Day(Fecha): Obtiene el número de día de una fecha enviada o especificada.
·
Función
WeekDay(Fecha): Obtiene el número del día de la semana, tomando el domingo como
valor número 1.
·
Función
DateAdd(TipoIntervalo,ValorIntervalo,Fecha): Suma o resta a una fecha, un
intervalo determinado, para determinar si se realiza una suma o resta, el
TipoIntervalo puede ser días, semanas, horas, meses, años, etc. ValorIntervalo
deberá de ser positivo o negativo respectivamente.
·
Función
DateDiff(TipoIntervalo,FechaPrimera,FechaSegunda): Calcula la diferencia
existente entre dos fechas.
·
Función
DatePart(TipoIntervalo,fecha): Extrae la parte de una fecha indicada.
INSTRUCCIÓN CONDICIONAL
Estas instrucciones nos
permiten tomar decisiones, dándonos un resultado de Verdadero o Falso, a menudo
esta instrucción es la más utilizada por todos los programadores, así que
tendrás que aprendértela de memoria, y no te
preocupes que es muy fácil de usar.
Sintaxis:
Primera Forma:
If
<expresión a evaluar> Then
<Instrucción (si la expresión devuelve Verdadero)>
Ejemplo:
If
a = b Then MessageBox(“Son Números Iguales”)
Si la expresión a evaluar
de a = b devuelve o mejor dicho es verdadera, este nos mostrará un mensaje, con
el texto de “Son
Números Iguales”.
Segunda Forma:
If <expresión a
evaluar> Then
<Instrucción (si la expresión evaluada devuelve
Verdadero)>
End If
Ejemplo:
If b <> 0 Then
Res = a / b
Console.WriteLine("El Resultado de La
División es: {0}", Res)
End If
Esta segunda forma, lo utilizamos cuando
tengamos que hacer mas de una instrucción si la expresión a evaluar resulta
verdadera, en este caso si a es mayo que b, si es verdadero este hará la
siguiente instrucción de a dividir entre b y el resultado guardarlo en una
variable llamada Res, que después la mostraremos en pantalla.
Tercera
Forma:
If <expresión a evaluar> Then
<
Instrucción (si la expresión evaluada devuelve Verdadero)>
Else
<
Instrucción (si la expresión evaluada devuelve Falso)>
End
If
Ejemplo:
If b <> 0 Then
Res = a / b
Console.WriteLine("El Resultado de La
División es: {0}", Res)
Else
Console.WriteLine("Error: División Entre
Cero")
End If
Esta forma nos permite utilizar los dos tipos
de resultados de la expresión evaluada, por ejemplo, si b es diferente a cero
este dividirá a A, pero si es falso, nos mostrara un mensaje de Error.
Cuarta
Forma:
If <expresión a evaluar> Then
<Instrucción (si la expresión evaluada devuelve Verdadero)> Else
<Instrucción (si la expresión evaluada devuelve Falso)>
Ejemplo:
If a = b Then MessageBox(“Son
Números Iguales”) Else MessageBox(“No son Números
Iguales”)
Esta forma no tan muy usada, solo en los
casos cuando hay que hacer una
sola instrucción en cada tipo de respuesta de
la expresión evaluada, por ejemplo, si a es igual b nos mostrará un
mensaje de Números Iguales, pero si es falso nos mostrara
otro mensaje diciéndonos que No son Números iguales, y recuerden que es en una sola línea.
Quinta
Forma:
If <expresión a evaluar> Then
<
Instrucción (si la expresión evaluada devuelve Verdadero)>
Else If <expresión a evaluar> Then
< Instrucción (si la expresión evaluada
devuelve Verdadero)>
Else
<
Instrucción (si la expresión evaluada devuelve Falso)>
End
If
Ejemplo:
If b = 0 Then
Console.WriteLine("Error: División Entre Cero")
Else If a <> b Then
Res = a / b
Console.WriteLine("El Resultado de La División es: {0}", Res)
Else
Console.WriteLine("El Resultado de La
División es: 1")
End If
Bueno a mi parecer y si es que no me
equivoco, esta es una de las formas mas usadas, ya que son if anidados, como lo
había en los pseudocódigos, el else es opcional, como lo ven en este ejemplo,
si b es igual a cero, nos mostrara un mensaje de Error de División, pero si es
falso, hará la siguiente evaluación que será si
a es diferente de b hará la división y nos mostrará el resultado de la
división, pero si es falso nos mostrar un
mensaje, diciéndonos que el resultado de la división es 1, sin ser necesario dividir.
Nota: Recuerda que para cada IF hay un THEN y un
END IF, así como en el pseudocódigo.
Bueno, después de tanta teoría, empezaremos a
resolver los ejercicios.
Para este ejercicio, utilizaremos una
aplicación de consola. Ya que es mas sencillo y podemos trabajar directamente
desde código puro
Module Ejercicio09
’Este
algoritmo permite averiguar si una persona debe de inscribirse
’en
el SMO (Servicio Militar Obligatorio), sabiendo su año de nacimiento.
Sub Main()
Dim AA, AN, E As Integer
Console.Write("Ingrese el Año de Nacimiento : ")
AN
= CInt(Console.ReadLine)
’Capturamos
el año del sistemas y lo almacenamos
’en
la variable AA
AA
= Microsoft.VisualBasic.Year(Now)
E =
AA - AN
If E > 17 Then
Console.WriteLine("Debe de Inscribirse en el SMO")
Else
Console.WriteLine("No Debe de Inscribirse en el SMO")
End
If
Console.ReadLine()
End
Sub
End Module
En el pseudocódigo, nosotros pedíamos el ingreso de la fecha
actual, pero teniendo funciones que nos permiten capturar la fecha actual del
sistema, mejor opte por
resolverlo así, y el otro detalle que tengo que recalcar es que ahora estoy
utilizando la opción Option Strict, el cual me obliga a utilizar funciones de
conversión de datos, que ya hemos visto al principio de esta entrega, así que
no se pueden quejar.
Para utilizar las funciones de fecha, tendremos que hacer
mención a la clase Microsoft, y de ahí a la sub clase VisualBasic, aquí se
encontrarán casi todas las funciones, ya sean de fecha, de cadenas, de
conversión, etc.
Les explicare un poco, la función Now me devuelve la fecha
actual del sistema, que seria mas o menos así: 11-02-2011 01:57:25 pm, por lo
tanto nosotros no queremos saber toda esta fecha larga por decirle, así que utilizamos
la función Year que capturara el año de toda la fecha larga, mejor dicho solo
nos obtendrá el siguiente dato que es 2011, nada
mas, si que es sencillo no?
CONDICIONES
MULTIPLES
Este tipo de condiciones lo usamos para tener
varios tipos de comparaciones (expresiones a evaluar).
Sintaxis:
Select Case
<expresión a evaluar>
Case <lista de expresiones>
Instrucciones
Case <otra lista de expresiones>
Instrucciones
Case Else
’si no se cumple ninguna de las listas de expresiones
End Select
Ejemplo:
Select Case i
Case 3 : ’Instrucción a realizar
Case 6 To
11
’ Instrucción a realizar
Case 14, 17
’ Instrucción a realizar
Case Is
> 25
’ Instrucción a realizar
Case Else
’ Instrucción a realizar
End Select
En el ejemplo, hacemos varias comprobaciones, si i vale 3
haremos la instrucción que sigue después de los dos puntos (podemos
ejecutar solo una instrucción después de los dos puntos, si en caso hubiera mas
instrucciones a ejecutar, estas instrucciones las pondríamos en la parte
inferior del Case), en cambio si tiene un valor de 6 a 11 ejecutara la instrucción
que se encuentra en su inferior, o si tiene el valor de 14 ó 17, ejecutara la
instrucción que se encuentra en su inferior, o si i es mayor que 25, realizara la instrucción
que se encuentra en su inferior, y por ultimo si no cumple ninguna comparación,
existe el Case Else, que ejecutara su instrucción, siempre y cuando no se cumpla
ninguna expresión en los demás Case.
Module
Ejercicio10
’Este algoritmo permite ingresar un número entero
(1 a 10)
’y muestra su equivalente en romano.
Sub Main()
Dim NE As Integer
Dim ER As String
Console.Write("Ingrese Un Número Entero (1 - 10): ")
NE = CInt(Console.ReadLine)
Select Case NE
Case 1 : ER = "I"
Case 2 : ER = "II"
Case 3 : ER = "III"
Case 4 : ER = "IV"
Case 5 : ER = "V"
Case 6 : ER = "VI"
Case 7 : ER = "VII"
Case 8 : ER = "VIII"
Case 9 : ER = "IX"
Case 10 : ER = "X"
Case Else : ER = "No Existe"
End Select
Console.WriteLine("Su Equivalente en Romano es: {0}", ER)
Console.ReadLine()
End Sub
End
Module
Como se
ve en este ejemplo, utilizamos una expresión por cada Case, así que esta instrucción la
escribiré después de los dos puntos de la expresión evaluada.
Espero que les sea de utilidad, próximamente:
Estamos ubicados en Maracay
- Nivel Avanzado
- Tomo 2
- Tomo 3
Telf: (0426) 1356051
(0426) 2329443
(0146) 0407146