jueves, 10 de noviembre de 2011

BV.Net Avanzado Tomo 1


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:
  • Nivel Avanzado
  • Tomo 2
  • Tomo 3




Estamos ubicados en Maracay


Telf:  (0426) 1356051

           (0426) 2329443

(0146) 0407146

Dios le bendiga, Cristo le ama