Visual Basic Net Declaracion y Tipos de Datos

download Visual Basic Net Declaracion y Tipos de Datos

of 9

Transcript of Visual Basic Net Declaracion y Tipos de Datos

Jairo Snchez SilvaVISUAL BASIC NET DECLARACION Y TIPOS DE DATOS

VII Sistemas

En Visual Basic Net a toda variable que se use en un programa, se le debe asociar (generalmente al principio del programa) un tipo de dato especifico. Un tipo de dato define todo el posible rango de valores que una variable puede tomar al momento de ejecucion del programa y a lo largo de toda la vida util del propio programa. Los tipos de datos mas comunes en Visual Basic Net son: Tipo de Visual Basic Boolean Byte Char (carcter individual) Date Decimal Intervalo de valores True o False 0 a 255 (sin signo) 0 a 65535 (sin signo) 0:00:00 (medianoche) del 1 de enero de 0001 a 11:59:59 p.m. del 31 de diciembre de 9999. 0 a +/-79.228.162.514.264.337.593.543.950.335 (+/-7,9... E+28) sin separador decimal; 0 a +/-7,9228162514264337593543950335 con 28 posiciones a la derecha del decimal; el nmero distinto de cero ms pequeo es +/-0,0000000000000000000000000001 (+/1E-28) -1,79769313486231570E+308 a -4,94065645841246544E-324 para los valores negativos; 4,94065645841246544E-324 a 1,79769313486231570E+308 para los valores positivos -2.147.483.648 a 2.147.483.647 (con signo) -9.223.372.036.854.775.808 a 9.223.372.036.854.775.807 (9,2...E+18 ) (con signo) Cualquier tipo puede almacenarse en una variable de tipo Object -128 a 127 (con signo) -32.768 a 32.767 (con signo) -3,4028235E+38 a -1,401298E-45 para los valores negativos; 1,401298E-45 a 3,4028235E+38 para los valores positivos 0 a 2.000 millones de caracteres Unicode aprox. 0 a 4.294.967.295 (sin signo) 0 a 18.446.744.073.709.551.615 (1,8...E+19 ) (sin signo) Cada miembro de la estructura tiene un intervalo de valores determinado por su tipo de datos y es independiente de los intervalos de valores correspondientes a los dems miembros. 0 a 65.535 (sin signo)

Double (punto flotante de precisin doble)

Integer Long (entero largo) Object SByte Short (entero corto) Single (punto flotante de precisin simple) String (longitud variable) UInteger ULong User-Defined (estructura) UShort

FUNCIONES DE TEXTO Visual Basic .NET ha cambiado la forma de trabajar con las cadenas de texto con respecto a las versiones anteriores. Todo el menejo de estas nuevas caractersticas se encuentran en la clase System.String. Ahora cada variable de texto es un objeto de tipo String. Todas las clases de Visual Basic .NET tienen un mtodo .ToString para mostrar una su contenido en formato texto.

Jairo Snchez Silva

VII Sistemas

En visual basic.net tenemos dos formas de trabajar con las variables de texto o string: - Utilizando las viejas funciones que conocemos desde siempre como left, right, trim, replace, etc. - Utilizar los nuevos mtodos de la clase System.String de .NET Para utilizar las funciones de de cadenas de visual basi tradicional (por llamar de alguna manera a las versiones anteriores a .NET) estn disponibles en el espacio de nombre Microsoft.VisualBasic por ejemplo: 1.microsoft.VisualBasic.Left("Text1", 5) veamos algunos metodos y propiedades del objeto String Propiedades Stringtabla1 Mtodos Stringtabla2 y ahora veamos algunos ejemplos en los que utilizaremos algunas de estas propiedades y mtodos: Para averiguar la longitus de un texto usamos la propiedad Length: 1.dim texto1 as string = "un texto cualquiera" 2. 3.msgbox(texto1.Length) 'Mostrar 19 4. 5.'Tambin podemos hacerlo directamente sobre el texto 6. 7.msgbox("otro texto cualquiera".Length) 'Mostrar 21 Para alinear el contenido de una cadena de texto usamos PadLeft o PadRight Estos dos mtodos son nuevos y no tienen equibalencia en visual basic tradicional. Ellos aumentan la cadena alineando su contenido hacia la izquierda o derecha. Para ver el siguiente ejemplo en funcionamiento solo copia el cdigo en el evento Load de un formulario y hazlo correr. Te voy a explicar brevemente que es lo que hace: primero crea un objeto textbox y lo parametriza para poder mostrar varias lineas con la propiedad multiline en True. Hace que el textbox ocupe todo el formulario con la propiedad Dock en Fill y como lo que queremos ver es la alinacin de las cadenas de texto es muy importante usar una fuente monoespaciada como Courrier New. Esto es muy importante porque si usamos una fuente que no es monoespaciada no veremos los textos correctamente alineados. Ah y la constante vbCrlf representa un carcter de retorno de carro combinado con un carcter de avance de lnea para las funciones de impresin y visualizacin. Por ltimo, como el control textbox1 no lo estoy creando en modo diseo (arrastrando el control y soltandolo sobre el formulario) sino, que lo creo mediante codigo, no podr verlo a menos que lo agregue a la lista de control del formulario. Para ello utilizo la ltima linea del codigo del ejemplo.

Jairo Snchez Silva

VII Sistemas

01. Dim textbox1 As New TextBox 02.textbox1.Multiline = True 03.textbox1.Dock = DockStyle.Fill 04.textbox1.ScrollBars = ScrollBars.Vertical 05.textbox1.Font = New System.Drawing.Font("Courier New", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) 06.For i As Integer = 1 To 100 07. textbox1.Text &= i.ToString.PadLeft(4).PadRight(10, "-") & "Es la mitad de " & (i * 2).ToString.PadLeft(3) & vbCrLf 08.Next 09.Me.Controls.Add(textbox1) Dando formato a los nmeros Utilizando la clase String podemos dar formato a los numeros, como se muestra en el siguiente ejemplo: 01.Dim numero As Double 02.numero = 10580.65 03.Dim resultado As String 04. 05.resultado = numero.ToString("G") ' 06.resultado = numero.ToString("N") ' 07.resultado = numero.ToString("E") ' 08.resultado = numero.ToString("000,000.00") ' 09.resultado = numero.ToString("###,##0.00") ' 10. 11.numero = 0.63 12.resultado = numero.ToString("P") ' 13.resultado = numero.ToString("##0.00%") ' 14.resultado = numero.ToString("##0%") ' FUNCIONES TRIGONOMETRICAS Secante Sec(X) = 1 / Cos(X) Cosecante Cosec(X) = 1 / Sin(X) Cotangente Cotan(X) = 1 / Tan(X) Seno inverso Arcsin(X) = Atn(X / Sqr(-X * X + 1)) Coseno inverso Arccos(X) = Atn(-X / Sqr(-X * X + 1)) + 2 * Atn(1) Secante inversa Arcsec(X) = Atn(X / Sqr(X * X - 1)) + Sgn((X) -1) * (2 * Atn(1)) Cosecante inversa Arccosec(X) = Atn(X / Sqr(X * X - 1)) + (Sgn(X) - 1) * (2 * Atn(1)) Cotangente inversa Arccotan(X) = Atn(X) + 2 * Atn(1) Seno hiperblico HSin(X) = (Exp(X) - Exp(-X)) / 2 Coseno hiperblico HCos(X) = (Exp(X) + Exp(-X)) / 2 Tangente hiperblica HTan(X) = (Exp(X) - Exp(-X)) / (Exp(X) + Exp(-X))

10580.65 10.580,65 1058065E+004 010.580,65 10.580,65 63,00 % 63,00% 63%

Jairo Snchez SilvaSecante hiperblica HSec(X) = 2 / (Exp(X) + Exp(-X)) Cosecante hiperblica HCosec(X) = 2 / (Exp(X) - Exp(-X)) Cotangente hiperblica HCotan(X) = (Exp(X) + Exp(-X)) / (Exp(X) - Exp(-X)) Seno hiperblico inverso HArcsin(X) = Log(X + Sqr(X * X + 1)) Coseno hiperblico inverso HArccos(X) = Log(X + Sqr(X * X - 1)) Tangente hiperblica inversa HArctan(X) = Log((1 + X) / (1 - X)) / 2 Secante hiperblica inversa HArcsec(X) = Log((Sqr(-X * X + 1) + 1) / X)

VII Sistemas

Cosecante hiperblica inversa HArccosec(X) = Log((Sgn(X) * Sqr(X * X + 1) +1) / X) Cotangente hiperblica inversa HArccotan(X) = Log((X + 1) / (X - 1)) FUNCIONES DE CONVERSIN El proceso de cambiar un valor de un tipo de datos a otro tipo de datos se denomina conversin. Las conversiones se ampliacin o restriccin, en funcin de las capacidades de los tipos que forman parte de datos. Conversin de ampliacin y conversin de restriccin son compatibles con common language runtime. Por ejemplo, se puede convertir el valor que se representa como un entero de 32 bits con signo en un entero de 64 bits con signo. ste es un ejemplo de conversin de ampliacin. La conversin opuesta (de 64 bits a 32 bits) es un ejemplo de una conversin de restriccin. La informacin nunca se pierde como resultado de una conversin de ampliacin. Sin embargo, la informacin pueden perder como consecuencia de una conversin de restriccin. En Visual Basic .NET o Visual Basic 2005, se definen las funciones de conversin de tipos siguientes: CBool Se utiliza la funcin CBool para convertir expresiones de cadena o numricas expresiones en valores Boolean. Cuando una expresin se evala como un valor que no sea cero, la funcin CBool devuelve True. En caso contrario, la funcin devuelve false. ejemplo CBool : Dim A, B, C As Integer Dim Check As Boolean A = 5 B = 5 Check = CBool(A = B) ' Check is set to True. C = 0 Check = CBool(C) ' Check is set to False. CByte La funcin CByte convierte a un nmero especificado en un byte. El argumento de entrada debe ser un nmero entre 0 y 255. En caso contrario, recibir una excepcin System.OverflowException. ejemplo CByte :

Jairo Snchez SilvaDim MyDouble As Double Dim MyByte As Byte MyDouble = 125.5678 MyByte = CByte(MyDouble) CChar

VII Sistemas

' MyByte is set to 126.

La funcin CChar convierte slo el primer carcter de la cadena especificada. El argumento de entrada para CChar debe ser una cadena de tipo de datos. No puede utilizar CChar para convertir a un nmero en un carcter porque CChar no acepta un tipo de datos numrico. CChar ejemplo: En este ejemplo utiliza la funcin CChar para convertir el primer carcter de una expresin de cadena en un tipo Char. Dim MyString As String Dim MyChar As Char MyString = "BCD" ' CChar converts only the first character of the string. MyChar = CChar(MyString) ' MyChar is set to "B". CDate CDate acepta cualquier representacin vlida de una fecha y una hora y, a continuacin, convierte una fecha. CDate ejemplo: Este ejemplo utiliza la funcin CFecha para convertir cadenas en valores Date. Dim MyDateString, MyTimeString As String Dim MyDate, MyTime As Date MyDateString = "February 12, 1969" MyTimeString = "4:35:47 PM" ' ... MyDate = CDate(MyDateString) ' Convert to Date data type. MyTime = CDate(MyTimeString) ' Convert to Date data type. CDbl Se utiliza la funcin CDbl para convertir una expresin numrica en un valor Double. El argumento de entrada de la funcin debe estar entre - 4, 94065645841247E - 324 y - 1, 79769313486231E + 308 para valores negativos. El argumento de entrada de la funcin debe estar entre 1, 79769313486231E + 308 y 4, 94065645841247E-324 para valores positivos. ejemplo CDbl : Dim MyDec As Decimal Dim MyDouble As Double MyDec = 234.456784D ' Literal type character D makes MyDec a Decimal. MyDouble = CDbl(MyDec * 8.2D * 0.01D) ' Convert result to a Double. CDec

Jairo Snchez SilvaLa funcin CDec convierte un valor numrico en decimal. ejemplo CDec : Dim MyDouble As Double Dim MyDecimal As Decimal MyDouble = 10000000.0587 MyDecimal = CDec(MyDouble) CInt La funcin CInt convierte un valor numrico en un entero. ejemplo CInt : Dim MyDouble As Double Dim MyInt As Integer MyDouble = 2345.5678 MyInt = CInt(MyDouble) CLng

VII Sistemas

' Convert to Decimal.

' MyInt is set to 2346.

La funcin CLng toma un valor numrico como un argumento y, a continuacin, devuelve un valor Long. ejemplo CLng : Dim MyDbl1, MyDbl2 As Double Dim MyLong1, MyLong2 As Long MyDbl1 = 25427.45 MyDbl2 = 25427.55 MyLong1 = CLng(MyDbl1) ' MyLong1 contains 25427. MyLong2 = CLng(MyDbl2) ' MyLong2 contains 25428. CObj La funcin CObj convierte un valor numrico a un objeto. ejemplo CObj : Dim MyDouble As Double Dim MyObject As Object MyDouble = 2.7182818284 MyObject = CObj(MyDouble) MyObject. CShort La funcin CShort convierte un valor numrico en short. ejemplo CShort : Dim MyByte as Byte Dim MyShort as Short MyByte = 100 MyShort = CShort(MyByte)

' Double value is pointed to by

' Convert to Short.

Jairo Snchez SilvaCSng La funcin CSng convierte el valor numrico en Single. ejemplo CSng :

VII Sistemas

Dim MyDouble1, MyDouble2 As Double Dim MySingle1, MySingle2 As Single MyDouble1 = 75.3421105 MyDouble2 = 75.3421567 MySingle1 = CSng(MyDouble1) ' MySingle1 is set to 75.34211. MySingle2 = CSng(MyDouble2) ' MySingle2 is set to 75.34216. CStr La siguiente tabla muestra los argumentos de entrada y los valores devueltos de la funcin CStr : Contraer esta tablaAmpliar esta tabla Tipo de datos de argumento Valor devuelto de entrada Boolean Una cadena que contiene True o false Fecha Una cadena que contiene un valor Date (fecha y hora) en el formato fecha corta del sistema Valor numrico Una cadena que representa el nmero CStr ejemplo: En este ejemplo utiliza la funcin CStr para convertir un valor numrico en una cadena. Dim MyDouble As Double Dim MyString As String MyDouble = 437.324 MyString = CStr(MyDouble)

' MyString is set to "437.324".

FUNCIONES MATEMATICAS Los mtodos matemticos de .NET Framework funcionan del mismo modo que sus equivalentes de Visual Basic 6, si bien algunos de sus nombres han sufrido ligeras diferencias. As, por ejemplo, el equivalente en .NET Framework de la funcin Atn de Visual Basic 6 es Atan. En la siguiente tabla se detallan los nombres de las funciones matemticas de Visual Basic 6 y sus mtodos equivalentes en .NET Framework: MTODO EN .NET FRAMEWORK Abs Atan Cos Exp Log DESCRIPCIN Devuelve el valor absoluto de un nmero especificado. Devuelve un valor Double que contiene el ngulo cuya tangente es el nmero especificado. Devuelve un valor Double que contiene el coseno del ngulo especificado. Devuelve un valor Double que contiene e (base de los logaritmos naturales) elevado a la potencia especificada. Devuelve un valor Double que contiene el logaritmo del nmero especificado. Este mtodo est sobrecargado y puede devolver o bien el logaritmo natural (de base e) del nmero especificado o bien el logaritmo del nmero especificado en una base

Jairo Snchez Silva

VII Sistemasespecificada. Devuelve un valor de tipo Double que contiene el nmero ms prximo al valor especificado. Existen funciones de redondeo adicionales disponibles como mtodos de los tipos intrnsecos, tales como Round. Devuelve un valor Integer que indica el signo de un nmero. Devuelve un valor Double que especifica el seno de un ngulo. Devuelve un valor Double que especifica la raz cuadrada de un nmero. Devuelve un valor Double que contiene la tangente de un ngulo.

Round

Sign Sin Sqrt Tan

Adems, la clase matemtica de .NET Framework ofrece constantes y otros mtodos estticos para funciones trigonomtricas, logartmicas y otras funciones matemticas habituales. Todo ello puede utilizarse en un programa de Visual Basic. Para utilizar estas funciones sin calificacin, importe el espacio de nombres System.Math a su proyecto agregando el siguiente cdigo en la parte superior del cdigo fuente: Imports System.Math En este ejemplo se utiliza el mtodo Abs de la clase Math para calcular el valor absoluto de un nmero. ' Returns 50.3. Dim MyNumber1 As Double = Math.Abs(50.3) ' Returns 50.3. Dim MyNumber2 As Double = Math.Abs(-50.3) En este ejemplo se utiliza el mtodo Atan de la clase Math para calcular el valor de pi. Public Function GetPi() As Double ' Calculate the value of pi. Return 4.0 * Math.Atan(1.0) End Function En este ejemplo se utiliza el mtodo Cos de la clase Math para devolver el coseno de un ngulo. Public Function Sec(ByVal angle As Double) As Double ' Calculate the secant of angle, in radians. Return 1.0 / Math.Cos(angle) End Function En este ejemplo se utiliza el mtodo Exp de la clase Math para devolver e elevado a una potencia. Public Function Sinh(ByVal angle As Double) As Double ' Calculate hyperbolic sine of an angle, in radians. Return (Math.Exp(angle) - Math.Exp(-angle)) / 2.0 End Function En este ejemplo se utiliza el mtodo Log de la clase Math para devolver el logaritmo natural de un nmero. Public Function Asinh(ByVal value As Double) As Double ' Calculate inverse hyperbolic sine, in radians. Return Math.Log(value + Math.Sqrt(value * value + 1.0)) End Function

Jairo Snchez Silva

VII Sistemas

En este ejemplo se utiliza el mtodo Round de la clase Math para redondear un nmero al entero ms prximo. ' Returns 3. Dim MyVar2 As Double = Math.Round(2.8) En este ejemplo se utiliza el mtodo Sign de la clase Math para determinar el signo de un nmero. ' Returns 1. Dim MySign1 As Integer = Math.Sign(12) ' Returns -1. Dim MySign2 As Integer = Math.Sign(-2.4) ' Returns 0. Dim MySign3 As Integer = Math.Sign(0) En este ejemplo se utiliza el mtodo Sin de la clase Math para devolver el seno de un ngulo. Public Function Csc(ByVal angle As Double) As Double ' Calculate cosecant of an angle, in radians. Return 1.0 / Math.Sin(angle) End Function En este ejemplo se utiliza el mtodo Sqrt de la clase Math para calcular la raz cuadrada de un nmero. ' Returns 2. Dim MySqr1 As Double = Math.Sqrt(4) ' Returns 4.79583152331272. Dim MySqr2 As Double = Math.Sqrt(23) ' Returns 0. Dim MySqr3 As Double = Math.Sqrt(0) ' Returns NaN (not a number). Dim MySqr4 As Double = Math.Sqrt(-4) En este ejemplo se utiliza el mtodo Tan de la clase Math para devolver la tangente de un ngulo. Public Function Ctan(ByVal angle As Double) As Double ' Calculate cotangent of an angle, in radians. Return 1.0 / Math.Tan(angle) End Function