Vous êtes sur la page 1sur 49

Tipos de Datos en Visual Basic

Tipos de Datos Integrados

Los tipos de datos primitivos en Visual Basic son objetos en el espacio de nombres
System. Para cada tipo de datos, se proporciona un nombre corto o alias. Por
ejemplo, int es el nombre corto correspondiente a System.Int32 y double es la forma
abreviada de System.Double.

Estruct
ura de
tipo
Comm
on
Langua
ge
Runtim
e

Asignacin
de
Almacena
miento

Intervalos

Boolean

Boolea
n

En funcin
de la
plataforma
de
implementa
cin

True o False

Byte

Byte

1 Byte

0 a 255 (sin signo)

Char
(Carcter
Individual)

Char

2 Bytes

0 a 65535 (sin signo)

Tipo de Dato
en Visual
Basic

Date
Decimal

Datetim
e
8 Bytes
Decima
l

16 Bytes

0:00:00 (Medianoche)
01/01/1990 a 11:59:59 p.m.
31/12/9999
0 a +/79.228.162.514.264.337.593.
543.950.335 (+/-7,9...
E+28) sin separador
decimal; 0 a +/-

7,9228162514264337593543
950335 con 28 posiciones a
la derecha del decimal.

Tipo de
Dato en
Visual
Basic

Estructura
de tipo
Common
Language
Runtime

Asignacin de
Almacenamiento

Intervalos
-1,79769313486231570E+308 a
-4,94065645841246544E-324 para
los valores negativos;

Double

Double

8 Bytes

4,94065645841246544E-324 a
1,79769313486231570E+308 para
los valores positivos

Integer

Int32

4 bytes

-2.147.483.648 a 2.147.483.647 (con


signo)

8 Bytes

-9.223.372.036.854.775.808 a
9.223.372.036.854.775.807
(9,2...E+18) (con signo)

Long

Int64

4 Bytes (x86)
Object

String

Object

8 Bytes (x64)

Cualquier tipo puede almacenarse en


una variable de tipo Object

String

En funcin de la
plataforma de
implementacin

0 a 2.000 millones de caracteres


Unicode aprox.

Variables y Constantes

Ambas representan un espacio de Memoria RAM que guarda un valor que servir para
algn proceso en particular, la Variable contiene un valor que puede ser modificado
en cualquier momento, mientras que el valor de la constante es fijo y no cambia en
la ejecucin del programa.
Declaracin de Variables

En .NET existen los miembros, que es la forma como se declaran las variables. En
Visual Basic .NET tenemos:

Public.- Especifica que uno o varios elementos de programacin declarados no


tienen ninguna restriccin de acceso.

Private.- Para hacer que una variable sea accesible nicamente desde su mdulo,
clase o estructura.

Friend.- Para hacer que una variable sea accesible slo desde el mismo ensamblado.
Protected.- Para hacer que una variable sea accesible desde su clase y cualquier
clase derivada.

Protected.- Para hacer que una variable sea accesible desde su clase y cualquier
clase derivada.

Operadores

Operadores Aritmticos.

+ Suma
- Resta
* Multiplicacin
/ Divisin (Alt 47)
\ Divisin entera (Alt 92)
MOD Residuo de una divisin
^ Exponenciacin (Alt 94)

Operadores de Comparacin y Lgicos.

= igual
> mayor que
< menor que
>= mayor o igual que
<= menor o igual que
<> Diferente
And Y lgico
Or O lgico
Not negacin

Estructuras Secuenciales Operadores Aritmticos

Problema 1

Operadores Aritmticos:

Crear un programa que me permita sumar, restar, multiplicar, dividir, obtener


potencia y raz de dos nmeros ingresados por teclado.

Botn btncalcular

'Declaracin de variables
Dim num1, num2 As Integer
Dim suma, resta, mult As Integer
Dim div As Double

'Entrada de Datos
num1 = Val(txtnum1.Text)
num2 = Val(txtnum2.Text)
'Proceso
suma = num1 + num2
resta = num1 - num2
mult = num1 * num2
div = num1 / num2
potencia= num1 ^ num2
raiz= num1 ^ (1/num2)
'Salida de Informacin
txtsuma.Text = suma
txtresta.Text = resta
txtmult.Text = mult
txtdiv.Text = div
txtpotencia.text=potencia
txtraiz.text=raz

Botn Limpiar

Txtnum1.clear()
Txtnum.clear()
Txtsuma.clear()
Txtresta.clear()
Txtmult.clear()
Txtdiv.Clear()
Txtpotencia.clear()
Txtraiz.clear()

Botn Salir

End

Estructuras Secuenciales

Problema 2: rea Crculo

Crear un programa para encontrar el rea de un crculo, use la frmula:


A= A = * r2
A: rea del Crculo

(Pi ) : Valor constante 3.14159


r (radio) : Es el radio del Crculo.

Diagrama de Flujo

Cdigo del Botn Calcular

'Declaracin de la Constante
Const pi As Double = 3.14159
'Declaracin Variables
Dim radio, area As Double
'Entrada de Datos
radio = Val(txtradio.Text)
'Proceso
area = pi * radio ^ 2
'Salida Informacin
txtarea.Text = area

Estructura condicional If
Evala una expresin lgica (Condicin), si es verdadero ejecuta una determinada
instruccin o instrucciones.

Problema 3: Descuento

Hacer un aplicacin que permita ingresar el precio unitario de un producto vendido y


la cantidad de venta; despus calcular el precio parcial (precio unitario * cantidad),
mostrar un descuento del 7% slo si el vendedor a seleccionado la opcin de aplicar
descuento, al final mostrar tambin el precio neto (precio parcial descuento).

Diagrama de Flujo

Cdigo Fuente del btncalcular

Private Sub btncalcular_Click(sender As Object,


e As EventArgs) Handlesbtncalcular.Click
'Declaracin de variables
Dim cant As Integer
Dim punitario As Single, pparcial As Single
Dim desc As Single, pneto As Single
Dim marcadodesc As Boolean
'Entrada de datos
cant = Val(txtcant.Text)

punitario = Val(txtpunitario.Text)
marcadodesc = chkdescuento.Checked
'Inicializamos el descuento en
desc = 0
'Proceso
pparcial = cant * punitario
'Evaluamos si tiene o no descuento
If marcadodesc = True Then
desc = pparcial * 0.07
End If
pneto = pparcial - desc
'Salida de Informacin
txtpparcial.Text = pparcial
txtdesc.Text = desc
txtpneto.Text = pneto
End Sub

Cdigo Fuente del btnsalir

Private Sub btnsalir_Click(sender As Object,


e As EventArgs) Handles btnsalir.Click
End
End Sub
Cdigo Fuente del btnnuevo

Private Sub btnnuevo_Click(sender As Object,


e As EventArgs) Handlesbtnnuevo.Click

txtcant.Clear()
txtpunitario.Clear()
txtpparcial.Clear()
txtdesc.Clear()
txtpneto.Clear()
End Sub

Estructuras Condicionales IF Else

Evala una expresin lgica (Condicin), si es verdadero el resultado ejecuta una


determinada instruccin o instrucciones; y si es falso ejecuta otro grupo de
Instrucciones.

Problema 4: Promedio

Hacer un programa que permita ingresar tres notas para un alumno, la nota A que
tiene una importancia de 3 crditos, la nota B tiene 4 Crditos, y la nota C tiene slo
2 crditos; se debe de calcular el promedio teniendo en cuenta las notas y al final si
el alumno tiene un promedio igual o mayor a 10.5 mostrar Aprobado, en caso
contrario Desaprobado.

Diagrama de Flujo

Cdigo Botn btncalcular

Private Sub btncalcular_Click(sender As Object,


e As EventArgs) Handlesbtncalcular.Click
'Declaracin de Variables
Dim notaa As Byte, notab As Byte, notac As Byte
Dim prom As Single
Dim situacion As String
'Entrada de Datos
notaa = Val(txtnotaa.Text)
notab = Val(txtnotab.Text)
notac = Val(txtnotac.Text)
'Proceso
prom = (notaa * 3 + notab * 4 + notac * 2) / 9

'Evaluamos la condicin
If (prom >= 10.5) Then
situacion = "Aprobado"
Else
situacion = "Desaprobado"
End If
'Salida de Informacin
txtpromedio.Text = prom
txtsituacion.Text = situacion
End Sub

Cdigo del Botn btnsalir

Private Sub btnsalir_Click(sender As Object,


e As EventArgs) Handlesbtnsalir.Click
End
End Sub

Cdigo Botn btnnuevo


Private Sub btnnuevo_Click(sender As Object,
e As EventArgs) Handlesbtnnuevo.Click
txtnotaa.Clear()
txtnotab.Clear()
txtnotac.Clear()
txtpromedio.Clear()
txtsituacion.Clear()
End Sub

Estructuras Condicionales Anidadas If Else


Calcular la utilidad que un trabajador recibe en el reparto de utilidades, si a este se
le asigna como un porcentaje de su salario mensual que depende de su antigedad
en la empresa de acuerdo con lo siguiente.

Problema 5:

Calcular la utilidad que un trabajador recibe en el reparto de utilidades, si a este se


le asigna como un porcentaje de su salario mensual que depende de su antigedad
en la empresa de acuerdo con lo siguiente.

Tiempo

Utilidad

Menos de 1 Ao

5 % del salario

1 Ao o ms, pero menos de 2 Aos

7 % del salario

2 Aos o ms, pero menos de 5 Aos

10 % del salario

5 Aos o ms, pero menos de 10 Aos

15 % del salario

10 Aos a ms

20 % del salario

Cdigo del btncalcular

Private Sub btncalcular_Click(sender As Object,


e As EventArgs) Handlesbtncalcular.Click
'Declaracin de Variables
Dim salario As Single
Dim antiguedad As Byte
Dim utilidad As Single
'Entrada de datos
salario = Val(txtsalario.Text)
antiguedad = Val(cboantiguedad.Text)
'Proceso
If (antiguedad < 1) Then
utilidad = salario * 5 / 100
ElseIf (antiguedad >= 1 And antiguedad < 2) Then

utilidad = salario * 7 / 100


ElseIf (antiguedad >= 2 And antiguedad < 5) Then
utilidad = salario * 10 / 100
ElseIf (antiguedad >= 5 And antiguedad < 10) Then
utilidad = salario * 15 / 100
ElseIf (antiguedad >= 10) Then
utilidad = salario * 20 / 100
End If
'Salida de Informacin
txtutilidad.text = utilidad
End Sub
Cdigo del btnnuevo
Private Sub btnnuevo_Click(sender As Object,
e As EventArgs) Handlesbtnnuevo.Click
txtsalario.Clear()
txtutilidad.Clear()
End Sub
Cdigo del btnsalir
Private Sub btnsalir_Click(sender As Object,
e As EventArgs) Handlesbtnsalir.Click
End
End Sub

Estructura Selectiva Mltiple (Select Case)

Permite comparar un valor con diversas alternativas, si la comparacin tiene xito se


ejecuta el grupo de instrucciones que contenga la alternativa seleccionada y luego
sale de la estructura.

Problema 6:

Ingresar un nmero por teclado y determinar su representacin en un da de la


semana.
Por ejemplo si se ingresa 3 deber mostrar mircoles, si se ingresa 7 mostrar
domingo; pero si se ingresa un nmero fuera del rango entre 1 y 7 mostrar el
mensaje Error Intente con un nuevo nmero.

Cdigo del Botn calcular

'Declaracin de variables
Dim num As Integer
Dim dia As String
'Entrada de datos
num = Val(txtnumero.Text)
'Proceso
Select Case num
Case 1
dia = "Lunes"
Case 2
dia = "Martes"
Case 3
dia = "Mircoles"
Case 4

dia = "Jueves"
Case 5
dia = "Viernes"
Case 6
dia = "Sbado"
Case 7
dia = "Domingo"
Case Else
dia = "Error intente con un nuevo nmero"
End Select
txtdia.Text = dia

Cdigo del Botn Nuevo


txtdia.Clear()
txtnumero.Clear()

Cdigo del Botn Salir


Me.close()

Control Timer (Intervalos de Tiempo)

Componente que genera un evento a intervalos de tiempo definidos por el usuario.

Problema 7:
Implementar una aplicacin en Visual Basic que permita mostrar la hora actualizada
al Segundo, y que permita crear una animacin simple entre dos etiquetas de texto.

Botn Play

timer2.Enabled = true;
Botn Stop
timer2.Enabled = false;

Evento Tick del Timer y Load

Private num As Integer = 0

Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick


If (num Mod 2 = 0) Then
Label1.Visible = 1
Label2.Visible = 0
Else
Label1.Visible = 0
Label2.Visible = 1
End If
num = num + 1

End Sub

Private Sub frmtimer_Load(sender As Object, e As EventArgs) Handles MyBase.Load


Label3.Text = TimeOfDay
End Sub

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick


Label3.Text = TimeOfDay
End Sub

MessageBox e InputBox (Cuadros de Mensaje)

MessageBox

El mtodo MessageBox.Show() permite mostrar un cuadro de mensaje que puede


contener texto, botones y smbolos que informan e instruyen al usuario. El formato
es:

Ejemplo

Botones

OK: El cuadro Muestra un Botn de aceptar.

OKCancel: El cuadro Muestra un Botn de aceptar y cancelar.

RetryCancel: Para mostrar un Botn Reintentar y otro cancelar en el cuadro de


mensaje.
YesNo: El cuadro Muestra un Botn Si y Otro No.
YesNoCancel: El cuadro de mensaje contiene lo botones si, No y Cancelar
InputBox
El mtodo InputBox() permite mostrar un cuadro de mensaje en el que el usuario
puede introducir un valor o un mensaje en forma de texto. El formato es:

Problema 8:

Crear un programa que permita ingresar el nombre de un usuario en un Inputbox y


despus mostrar el saludo respectivo en un MessageBox.
Adems mostrar un botn de salir que pregunte y se seleccione la opcin de salir
antes de cerrar la aplicacin.

Cdigo del botn Ingresar


Private Sub btningresar_Click(sender As Object,
e As EventArgs) Handles btningresar.Click
'Declaramos la variable nombre
Dim nombre As String
'Entrada de datos mediante un inputbox
nombre = InputBox("Ingrese Nombre ",
"Registro de Datos Personales",
"Nombre", 100, 0)
MessageBox.Show("Bienvenido Usuario: " + nombre,
"Registro de Datos Personales",
MessageBoxButtons.OK,
MessageBoxIcon.Information)
End Sub

Cdigo del Botn Salir

Private Sub btnsalir_Click(sender As Object, e As EventArgs) Handles btnsalir.Click


Dim opcion As DialogResult
opcion = MessageBox.Show("Realmente desea Salir",
"Salir del Programa",
MessageBoxButtons.YesNo,
MessageBoxIcon.Question)
If (opcion = DialogResult.Yes) Then
Me.Close()
End If

End Sub

Validaciones Mensajes de Ayuda (ErrorProvider, ToolTip)

ErrorProvider

Proporciona una Interfaz de Usuario para indicar al usuario que el control de un


formulario tiene un error asociado.

Problema 9:

Crear un programa que permita ingresar de manera obligatoria los nombres, la edad
y el salario de una persona; adems todos los campos de texto deben de tener un
mensaje emergente que ayude al usuario final con el contenido que debe ingresar.

Cdigo Fuente
Cdigo del Botn Enviar
Private Sub btnenviar_Click(sender As Object, e As EventArgs) Handles btnenviar.Click
Try
If Me.ValidateChildren And txtnombres.Text
<> String.Empty And Val(txtedad.Text) - Int(Val(txtedad.Text)) = 0 And txtsalario.Text
<> String.Empty Then
MessageBox.Show("Datos Registrados Correctamente", "Registro de
Usuarios",MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
Else
MessageBox.Show("Ingrese correctamente algunos Datos
remarcados", "Registro de
Usuarios", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End If
Catch ex As Exception
MsgBox(ex.Message)

End Try
End Sub

Validando las cajas de texto

Private Sub txtnombres_Validating(sender As Object,


e As System.ComponentModel.CancelEventArgs)Handles txtnombres.Validating
If DirectCast(sender, TextBox).Text.Length > 0 Then
Me.erroricono.SetError(sender, "")
Else
Me.erroricono.SetError(sender, "Ingrese el nombre del usuario, este dato es
obligatorio")
End If
End Sub

Private Sub txtedad_Validating(sender As Object,


e As System.ComponentModel.CancelEventArgs)Handles txtedad.Validating
If Val(txtedad.Text) - Int(Val(txtedad.Text)) = 0 Then
Me.erroricono.SetError(sender, "")
Else
Me.erroricono.SetError(sender, "Ingrese la edad del usuario, este dato es
obligatorio")
End If
End Sub

Private Sub txtsalario_Validating(sender As Object,


e As System.ComponentModel.CancelEventArgs)Handles txtsalario.Validating
If DirectCast(sender, TextBox).Text.Length > 0 Then
Me.erroricono.SetError(sender, "")
Else
Me.erroricono.SetError(sender, "Ingrese el salario del usuario, este dato es
obligatorio")

End If
End Sub

Validaciones Mensajes de Ayuda (ErrorProvider, ToolTip)

ToolTip

Muestra Informacin cuando el usuario mueve el puntero sobre el control asociado.

Problema 9:

Crear un programa que permita ingresar de manera obligatoria los nombres, la edad
y el salario de una persona; adems todos los campos de texto deben de tener un
mensaje emergente que ayude al usuario final con el contenido que debe ingresar.

Cdigo de los mensaje de ayuda en cada evento MouseHover de los controles

Private Sub txtnombres_MouseHover(sender As Object,


e As EventArgs) Handlestxtnombres.MouseHover
ttmensaje.SetToolTip(txtnombres, "Ingrese aqu el nombre del
usuario")
ttmensaje.ToolTipTitle = "Nombre del Usuario"
ttmensaje.ToolTipIcon = ToolTipIcon.Info
End Sub

Private Sub txtedad_MouseHover(sender As Object,


e As EventArgs) Handles txtedad.MouseHover
ttmensaje.SetToolTip(txtedad, "Ingrese aqu la edad del usuario")
ttmensaje.ToolTipTitle = "Edad del Usuario"
ttmensaje.ToolTipIcon = ToolTipIcon.Info
End Sub
Private Sub txtsalario_MouseHover(sender As Object,
e As EventArgs) Handlestxtsalario.MouseHover
ttmensaje.SetToolTip(txtsalario, "Ingrese aqu el salario del usuario")
ttmensaje.ToolTipTitle = "Salario del Usuario"
ttmensaje.ToolTipIcon = ToolTipIcon.Info
End Sub

Estructura Iterativas Bucles: For, While, doWile


Contadores y Acumuladores

Contador : Son variables enteras que se incrementan (+) o decrementan (-).


num+=1

num-=1 num=num+1

Acumulador: Son variables de cualquier tipo que almacenan valores variables.


num+=valor

num-=i

num=num+valor

Problema 11:

Se tiene un conjunto de calificaciones de un grupo de n alumnos, realizar un


algoritmo para calcular la calificacin media y la calificacin ms baja de dicho
grupo.

Cdigo del botn Calcular

Private Sub btncalcular_Click(sender As Object,


e As EventArgs) Handles btncalcular.Click
Try
'Declaracin de variables
Dim numalumnos As Integer
Dim nota, sumanotas, notabaja, promedio As Double
If (Val(txtnumero.Text) - Int(Val(txtnumero.Text)) = 0) Then
'Entrada de datos
numalumnos = Val(txtnumero.Text)
'Inicializamos las variables
sumanotas = 0
notabaja = 20
For i = 1 To numalumnos Step 1

nota = InputBox("Ingrese Nota del alumno " & i, "Registro de


Notas")
sumanotas = sumanotas + nota
'Evaluamos si esta nota es la ms baja
If (nota < notabaja) Then
notabaja = nota
End If
Next
promedio = sumanotas / numalumnos
'Salida de Informacin
txtpromedio.Text = promedio
txtnotabaja.Text = notabaja
Else
MessageBox.Show("Ingrese un valor entero", "Promedio de
Notas",MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
Cdigo del botn Nuevo

Private Sub btnnuevo_Click(sender As Object,


e As EventArgs) Handles btnnuevo.Click
txtnumero.Clear()
txtnotabaja.Clear()
txtpromedio.Clear()
End Sub

Cdigo del botn Salir

Private Sub btnsalir_Click(sender As Object,


e As EventArgs) Handles btnsalir.Click
Me.Close()
End Sub

Estructura Iterativa Bucle Do While

Una estructura iterativa Do-While ejecuta al menos una vez su bloque repetitivo, a
diferencia del while o del for que podan no ejecutar el bloque, este bloque de
instrucciones se repetirn siempre que la condicin sea verdadera.

Sintxis Estructura Iterativa Do While

Problema 13

Hacer un programa en Visual Basic que permita validar el ingreso de notas (0-20)
para n alumnos, es decir mientras la nota este fuera de ese rango el programa
deber indicar al usuario ingresar la nota, hasta que se ingrese la nota correcta; al
final mostrar el promedio.
Diagrama de Flujo

Formulario

Cdigo del botn Nuevo


Private Sub btnNuevo_Click(sender As Object,
e As EventArgs) Handles btnNuevo.Click
txtCantAlumnos.Clear()
txtPromedio.Clear()
End Sub
Cdigo del Botn Ingresar
Private Sub btnIngresar_Click(sender As Object,
e As EventArgs) Handles btnIngresar.Click
'Declaracin de variables
Dim cantAlumnos As Integer, nota As Integer, suma As Integer

Dim promedio As Double


suma = 0
'Entrada de Datos
cantAlumnos = txtCantAlumnos.Text
'Proceso
'Implementamos el bucle que pedir los datos de los "n"
'alumnos
For i As Integer = 1 To cantAlumnos Step 1
Do
nota = InputBox("Ingrese la Nota del alumno " & i, "Notas")
Loop While (nota < 0 Or nota > 20)
suma = suma + nota
Next
promedio = suma / cantAlumnos
'salida de Informacin
txtPromedio.Text = promedio

End Sub
Cdigo del Botn Salir
Private Sub btnSalir_Click(sender As Object,
e As EventArgs) Handles btnSalir.Click
End
End Sub

Estructura Iterativa Bucle While


Una estructura iterativa While permite repetir una o ms instrucciones mientras la
condicin (Expresin lgica) sea verdadera, cuando la condicin es falsa sale del
bucle.
Sintxis estructura Iterativa While

Problema 14
Una organizacin tiene punto de repartos de vacunas, cada da se registra con
cuantas vacunas se inicia.
Crear un programa en Visual Basic que gestione las entregas (validar que la cantidad
a entregar no sea mayor que el stock) y de un aviso cuando el stock es inferior a 10
unidades.
Diagrama de Flujo

Formulario

Cdigo del Botn Nuevo


Private Sub btnNuevo_Click(sender As Object,
e As EventArgs) Handles btnNuevo.Click
txtStockInicial.Clear()
txtStockFinal.Clear()
txtCantidadPersonas.Clear()
End Sub
Cdigo del Botn Ingresar

Private Sub btnIngresar_Click(sender As Object,


e As EventArgs) Handles btnIngresar.Click
'Declaracin de variables
Dim stock As Integer
Dim cantPersonas As Integer, cantEntrega As Integer
'Inicializacin de variables
cantPersonas = 0
'Entrada de datos
stock = Val(txtStockInicial.Text)
'Empezamos a repartir las vacunas
Do While (stock >= 10)
cantEntrega = InputBox("Ingrese cantidad entregada persona " &
(cantPersonas + 1), "Reparto de vacunas")
'Validar que la cantidad entregada sea menor o igual
'que el stock
If (stock >= cantEntrega) Then
cantPersonas = cantPersonas + 1
stock = stock - cantEntrega
Else
MessageBox.Show("No hay suficiente stock", "Reparto de
Vacunas",MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
Loop
MessageBox.Show("El stock es inferior a 10 und", "Reparto de
Vacunas",MessageBoxButtons.OK, MessageBoxIcon.Information)
'Salida de informacin
txtStockFinal.Text = Convert.ToString(stock)
txtCantidadPersonas.Text = Convert.ToString(cantPersonas)
End Sub
Cdigo del Botn Salir
Private Sub btnSalir_Click(sender As Object,
e As EventArgs) Handles btnSalir.Click

End
End Sub

Vous aimerez peut-être aussi