Anda di halaman 1dari 52

CUADERNO DE TRABAJO

VISUAL BASIC.NET II

Cuaderno de Trabajo Visual Basic se encuentra bajo una Licencia Creative Commons Atribución-No Comercial-
Licenciamiento Recíproco 3.0 Unported. Septiembre 2011 – IDSystems
Contenido
INTRODUCCION ..........................................................................................................................................................4
EJERCICIOS SOBRE EL LENGUAJE ................................................................................................................................5
Actividad de Aprendizaje 6 – Partes de la computadora .......................................................................................6
Actividad de Aprendizaje 7 – Funciones matematicas ...........................................................................................8
Actividad de Aprendizaje 8 – Interes compuesto................................................................................................ 10
EJERCICIOS SOBRE CONDICIONALES IF y SELECT CASE............................................................................................ 12
Actividad de Aprendizaje 9 – Crucigrama............................................................................................................ 13
Actividad de Aprendizaje 10 – Contraseña.......................................................................................................... 16
Actividad de Aprendizaje 14 – Cobro de Servicios .............................................................................................. 17
Actividad de Aprendizaje 15 – Areas ................................................................................................................... 24
EJERCICIOS SOBRE CICLOS FOR, DO WHILE, DO UNTIL ........................................................................................... 29
Actividad de Aprendizaje 16 – Sumas ................................................................................................................. 30
Actividad de Aprendizaje 17 – Temperaturas ..................................................................................................... 33
EJERCICIOS SOBRE ARRAYS...................................................................................................................................... 38
Actividad de Aprendizaje 20 – Promedio de Notas ............................................................................................. 39
EJERCICIOS SOBRE USO DE CONTROLES.................................................................................................................. 42
Actividad de Aprendizaje 24 – Torero ................................................................................................................. 43
Actividad de Aprendizaje 26 – Cubos .................................................................................................................. 46
RETOS ...................................................................................................................................................................... 49
RETO 1 – Diagnostico de RED LAN ....................................................................................................................... 50
RETO 2 – Informacion de Sistema de una PC ...................................................................................................... 52

Cuaderno de Trabajo Visual Basic .NET II Página 2


Cuaderno de Trabajo Visual Basic .NET II Página 3
INTRODUCCION
Este es el Cuaderno de Trabajo II de Visual Basic. Es la continuacion del primer cuaderno el cual esta lleno de
ejercicios practicos llamados Actividades de Aprendizaje. A diferencia de los ejercicios (los cuales son paso a
paso) y las practicas (que no se da ninguna solucion), estos ejercicios contienen una imagen del resultado y el
codigo que debe ser tecleado. No asi, las propiedades de los controles y otros elementos graficos.

Es responsabilidad del Alumno crear una tabla (o llenar) de los controles (objetos visuales) que lleva cada una de
las actividades, para que se adecue según se muestra en la imagen resultante.

Estos ejercicios fueron tomados de Visual Basic Programacion para Docentes y agradezco a Mirta Echeverria y
Manuel Perez Valdez quienes tienen una excelente pagina de ejercicios. Sin embargo, hubo que clasificarlos en
bloques de temas para llevaran un orden de aprendizaje de acuerdo a la mayoria de los cursos de Visual Basic.
Por lo que dicha atribucion es nuestra.

Recomendamos ampliamente consultar los dos Cuadernos de Trabajo, asi como su Guia de Estudio.
Y tomar las notas resumidas en las clases presenciales de su profesor.

Estas actividades requieren que el Alumno entienda el proceso de programacion (previamente visto en otras
asignaturas) como son: tipos de datos, identificadores, condicionales (simples y multiples), ciclos (mientras,
hasta, para), arreglos (unidimensionales y multidimensionales), estructuras. Los actividades es una combinacion
de elementos de programacion, elementos del lenguaje VB.NET (comandos, funciones, namespaces, objetos),
ejercicios (algunos puntos paso a paso o codigo) y practica (el resto de la elaboracion).

De esta forma, el aprendizaje del entorno de Visual Basic.NET se centra mas en el uso y estructura de los
programas que en aprender a programar o iniciar con comandos en modo de consola.

Cuaderno de Trabajo Visual Basic .NET II Página 4


EJERCICIOS SOBRE EL LENGUAJE
Los siguientes ejercicios, aunque de manera visual y con manejo de controles, se centran mas en sentencias del
lenguaje, declaracion de variables y funciones. Usando los controles minimos estandar.

Cuaderno de Trabajo Visual Basic .NET II Página 5


Actividad de Aprendizaje 6 – Partes de la computadora

Abrimos el programa
Visual Basic seleccionamos
Nuevo proyecto y
comenzamos a trabajar.

Este ejercicio muestra


un truco muy sencillo
pero de gran utilidad.
A veces tenemos una
imagen total que
queremos particionar,
en este caso la
computadora, que nos
permite subdividirla
en tres partes :
monitor, teclado,
gabinete. Esto por
código sería muy
complejo pero usando
el control Label en su
modo transparente y
con el Caption vacío, o
sea sin etiqueta nos
permite subdividir la
imagen y que sus
partes respondan a el
evento Click por separado, provocando una respuesta distinta.

En el formulario podemos ver la Label dibujada sobre el monitor, todavía opaca como viene
por defecto, luego sobre el gabinete está transparente pero con el Caption , también por
defecto en este caso : Label2. Y en el teclado donde está posicionado el cursor en cambio
está transparente. De acuerdo a la parte que seleccionemos: en una cuarta Label se nos
mostrará el texto correspondiente, en el caso del formulario : "Teclado".

En este ejercicio tenemos una Image, con su Propiedad Stretch a True, lo que nos permite
agrandar un icono al tamaño deseado. Y cuatro Labels, tres transparentes para subdividir
la Image y una opaca para mostrar la parte seleccionada, y un Botón de Salida.

Cuaderno de Trabajo Visual Basic .NET II Página 6


Control Nombre Propiedades = Valor
label

label

label

label

picturebox

El Código de este ejercicio es el siguiente:

Public Class Form1

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


MyBase.Load
Label1.Parent = PictureBox1
Label2.Parent = PictureBox1
Label3.Parent = PictureBox1
Label4.Parent = PictureBox1

Label1.BackColor = Color.Transparent
Label2.BackColor = Color.Transparent
Label3.BackColor = Color.Transparent
Label4.BackColor = Color.Transparent
End Sub

Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Label1.Click
lblParte.Text = "Monitor"

End Sub

Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Label2.Click
lblParte.Text = "CPU"
End Sub

Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Label3.Click
lblParte.Text = "Teclado"
End Sub

Cuaderno de Trabajo Visual Basic .NET II Página 7


Private Sub Label4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles Label4.Click
lblParte.Text = "Mouse"
End Sub
End Class

Actividad de Aprendizaje 7 – Funciones matematicas

En este ejercicio veremos algunas funciones como la búsqueda de números al azar, raíz de
números y redondeo de decimales. Usamos botones para ejecutar las funciones, cajas de texto
para ingresar valores y labels para dar salida a los resultados.

Cuaderno de Trabajo Visual Basic .NET II Página 8


Control Nombre Propiedades
textbox

textbox

textbox

textbox

textbox

textbox

label

label

label

label

button

button

button

button

El código es:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button1.Click
Dim azar As Integer
Randomize()
azar = Int(10 * Rnd()) + 1
TextBox1.Text = azar
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button2.Click
Dim azar As Integer
Dim rangomenor As Integer
Dim rangomayor As Integer
Randomize()

Cuaderno de Trabajo Visual Basic .NET II Página 9


rangomayor = CInt(TextBox2.Text)
rangomenor = CInt(TextBox3.Text)
azar = Int((rangomayor - rangomenor + 1) * Rnd()) + rangomenor
TextBox4.Text = azar

End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button3.Click
Dim numero As Integer
Dim raiz As Integer
raiz = CInt(TextBox5.Text)
numero = CInt(TextBox6.Text)
TextBox7.Text = numero ^ (1 / raiz)
End Sub

Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button4.Click
Dim numero As Integer
Dim decimales As Integer
numero = TextBox8.Text
decimales = CInt(TextBox9.Text)
TextBox10.Text = Math.Round(numero, decimales)
End Sub
End Class

Actividad de Aprendizaje 8 – Interes compuesto

En este ejercicio vamos a crear una función que nos


permite calcular un interes compuesto, de una suma inicial de acuerdo al porcentaje de interés
ingresado y la cantidad de cuotas en que se devuelva el mismo.

Usamos tres labels informativas, y tres cajas de texto para ingresar los valores, un boton para
ejecutar la función y una label para que nos devuelva el cálculo hecho.

Cuaderno de Trabajo Visual Basic .NET II Página 10


Control Nombre Propiedades
label

label

label

label

textbox

textbox

textbox

button

El código es:

Public Class Form1


Dim capital As Decimal
Dim interesmensual As Single
Dim cuotas As Long

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button1.Click
capital = TextBox1.Text
interesmensual = TextBox2.Text
cuotas = TextBox3.Text
Label4.Text = InteresCompuesto(capital, interesmensual, cuotas)

End Sub

Function InteresCompuesto(ByVal capitas As Integer, ByVal interesmensual As Single, ByVal


cuotas As Long) As Integer
Dim i As Long
Dim total As Integer
total = capital
For i = 1 To cuotas
total = total + (total * interesmensual)
Next
InteresCompuesto = total - capital
End Function
End Class

Cuaderno de Trabajo Visual Basic .NET II Página 11


EJERCICIOS SOBRE CONDICIONALES IF y SELECT CASE
Los siguientes ejercicios, aunque de manera visual y con manejo de controles, se centran mas en las
estrucuturas condicionales.

Cuaderno de Trabajo Visual Basic .NET II Página 12


Actividad de Aprendizaje
9 – Crucigrama

Con este ejercicio queremos


sugerir una ejemplo de
crucigrama que cada uno
podrá adaptar a los
contenidos requeridos. También a partir de
aquí podríamos elaborar un Ahorcado.

El crucigrama está armado con cuadros de texto o sea controles Text, encerrados dentro de
un control frame, este control tiene la única finalidad de agrupar y contener otros controles,
ordenando la interactividad de una manera visual. Otros dos controles Frame agrupan las
opciones vertical y horizontal. Conteniendo controles CheckBox que al ser seleccionados
hacen la corrección de las letras ingresadas en las cajas de texto. El ingreso de las mismas se
hace en tiempo de ejecución a través del teclado.

A la derecha vemos unos controles Picture vacíos que se cargaran con imágenes que
muestren por ejemplo una cara sonriente si la palabra es correcta o seria si no lo es, o
cualquier otro tipo de imagen .Podemos llamar a esta imagen con la función LoadPicture
desde cualquier parte de nuestro disco rígido. Y un botón con el icono de Hijitus indica la
Salida y cierre del programa.

Acá tendremos que crear por código una estructura condicional que controle si la entrada
de datos es correcta o no.

Control Nombre Propiedades


textbox

textbox

textbox

Cuaderno de Trabajo Visual Basic .NET II Página 13


textbox

textbox

textbox

textbox

textbox

textbox

textbox

textbox

groupbox
(frame)
groupbox
(frame)
checkbox

checkbox

checkbox

picturebox

picturebox

picturebox

button

El código es el siguiente:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button1.Click
End

Cuaderno de Trabajo Visual Basic .NET II Página 14


End Sub
Private Sub CheckBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles
CheckBox1.Click
If TextBox6.Text = "L" And TextBox7.Text = "O" And TextBox8.Text = "R" And
TextBox4.Text = "O" And TextBox9.Text = "S" Then
'Este codigo debe ir todo en un mismo renlgon y revisa si se escribio una de las
palabras correctas
'Cuidado con los nombres de los controles porque seguramente no seran los mismos
que en este ejercicio
'Si acerto, pondremos una carita feliz, de lo contrario una carita fea.
PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") +
"\ico003.ico")

MsgBox("ACERTO")
Else
PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") +
"\ico004.ico")
MsgBox("FALLO")
End If
End Sub

Private Sub CheckBox2_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles CheckBox2.CheckedChanged
If TextBox7.Text = "O" And TextBox10.Text = "R" And TextBox11.Text = "O" Then

PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") +
"\ico003.ico")

MsgBox("ACERTO")
Else
PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") +
"\ico004.ico")
MsgBox("FALLO")
End If
End Sub

Private Sub CheckBox3_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles CheckBox3.CheckedChanged
If TextBox1.Text = "R" And TextBox2.Text = "A" And TextBox3.Text = "T" And
TextBox4.Text = "O" And TextBox5.Text = "N" Then

PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") +
"\ico003.ico")

MsgBox("ACERTO")
Else
PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") +
"\ico004.ico")
MsgBox("FALLO")
End If
End Sub
End Class

Cuaderno de Trabajo Visual Basic .NET II Página 15


Actividad de Aprendizaje 10 – Contraseña

Varios visitantes nos han pedido algún ejercicio que use una contraseña para entrar a un programa.
Aquí va un ejemplo. Vamos a usar la función InputBox que al abrir una ventana con una caja de texto
nos permite ingresar la contraseña.

Si no queremos usar la función podemos reemplazarla por el uso de un pequeño formulario diseñado a
nuestro gusto con una caja de texto. El programa se ve así:

Control Nombre Propiedades


button

picturebox

Y el código del evento click del Botón Acceso al Sistema es el siguiente:

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button1.Click
Dim nombreusuario As String
Dim contraseña As String
nombreusuario = InputBox("Introduzca su Nombre")
contraseña = InputBox("Introduzca CONTRASEÑA")
If UCase(nombreusuario) = "PROGRAMADOR" And LCase(contraseña) = "secreto" Then
MsgBox("¡BIENVENIDA PROGRAMADOR! ¿Preparada para trabajar con tu PC?")
PictureBox1.Visible = True
Me.WindowState = FormWindowState.Maximized
ElseIf UCase(nombreusuario) = "ASISTENTE" And LCase(contraseña) = "duende" Then

Cuaderno de Trabajo Visual Basic .NET II Página 16


MsgBox("BIENVENIDO ASISTENTE AL SISTEMA! ¡A trabajar no te duermas!")
PictureBox1.Visible = True
Else
MsgBox("ACCESO DENEGADO")
End If

End Sub
End Class

Además de darnos el acceso con un saludo despliega una imagen en un control Image, en caso de no
ser la contraseña o el nombre del usuario el indicado nos niega el acceso.

Actividad de Aprendizaje 14 – Cobro de Servicios

Esta actividad nos permite trabajar con las condicionales, botones de opcion (radio button) que en si
son condicionales, realizar operaciones aritmeticas y presentar una interfaz mas agradable
añadiendole unos cuantos picturebox asi como imágenes a los botones. Las imágenes fueron
descargadas de internet a manera de iconos en formato .PNG. y ajustadas con la propiedad STRETCH.

Cuaderno de Trabajo Visual Basic .NET II Página 17


Aunque el codigo es algo largo porque debe evaluar cada una de las opciones, es facilmente entendible
por las condicionales que presenta. Las operaciones son sumas.

Control Nombre Propiedades


groupbox

groupbox

radiobutton

radiobutton

radiobutton

radiobutton

label

label

label

label

label

label

label

label

textbox

textbox

textbox

textbox

textbox

textbox

Cuaderno de Trabajo Visual Basic .NET II Página 18


textbox

picturebox

picturebox

picturebox

picturebox

picturebox

picturebox

picturebox

button

button

Su código es el siguiente:
Public Class Form1
'Declaracion de variables
Dim Hamburguesa As Single
Dim HotDog As Single
Dim Sandwich As Single
Dim Te As Single
Dim Refresco As Single
Dim PapasFritas As Single

'Declaracion de variables de cantidad


Dim CantidadHamburguesas As Integer
Dim CantidadHotDog As Integer
Dim CantidadSandwich As Integer
Dim CantidadTe As Integer
Dim CantidadRefresco As Integer
Dim CantidadPapas As Integer

Dim TotalVta As Single


Dim CostoHamburguesa As Single
Dim CostoHotDog As Single
Dim CostoSandwich As Single
Dim CostoTe As Single
Dim CostoRefresco As Single
Dim CostoPapas As Single

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles

Cuaderno de Trabajo Visual Basic .NET II Página 19


MyBase.Load
'Inicializar las variables con los precios de los productos
Hamburguesa = 20.5
HotDog = 19.25
Sandwich = 17.5
PapasFritas = 4.5
Refresco = 4
Te = 5

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button1.Click
'Multiplicando la cantidad por el precio y sumando el total
CostoHamburguesa = CantidadHamburguesas * Hamburguesa
CostoHotDog = CantidadHotDog * HotDog
CostoSandwich = CantidadSandwich * Sandwich
CostoTe = CantidadTe * Te
CostoRefresco = CantidadRefresco * Refresco
CostoPapas = CantidadPapas * PapasFritas

TotalVta = CostoHamburguesa + CostoHotDog + CostoSandwich + CostoTe + CostoRefresco +


CostoPapas

txtTotal.Text = TotalVta

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button2.Click
End
End Sub

Private Sub RadioButton1_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles RadioButton1.CheckedChanged
'Paquete No.1 de Comida
txtTotal.Text = ""

If RadioButton1.Checked Then
CantidadHamburguesas = 1
CantidadRefresco = 1
CantidadPapas = 1
CantidadHotDog = 0
CantidadSandwich = 0
CantidadTe = 0
'Inicializar valores
txtHamburguesa.Text = CantidadHamburguesas
txtRefresco.Text = CantidadRefresco
txtPapas.Text = CantidadPapas

'Activar las cajas de texto del paquete


txtHamburguesa.Enabled = True
txtRefresco.Enabled = True
txtPapas.Enabled = True

'Desactivar las otras cajas


txtHotDog.Enabled = False

Cuaderno de Trabajo Visual Basic .NET II Página 20


txtTe.Enabled = False
txtSandwich.Enabled = False

'Limpiar las cajas de texto


txtHotDog.Text = ""
txtTe.Text = ""
txtSandwich.Text = ""

End If

End Sub

Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles RadioButton2.CheckedChanged
'Paquete No.2 de Comida
txtTotal.Text = ""

If RadioButton2.Checked Then
CantidadHamburguesas = 0
CantidadRefresco = 1
CantidadPapas = 1
CantidadHotDog = 1
CantidadSandwich = 0
CantidadTe = 0
'Inicializar valores
txtHotDog.Text = CantidadHotDog
txtRefresco.Text = CantidadRefresco
txtPapas.Text = CantidadPapas

'Activar las cajas de texto del paquete


txtHotDog.Enabled = True
txtRefresco.Enabled = True
txtPapas.Enabled = True

'Desactivar las otras cajas


txtHamburguesa.Enabled = False
txtTe.Enabled = False
txtSandwich.Enabled = False

'Limpiar las cajas de texto


txtHamburguesa.Text = ""
txtTe.Text = ""
txtSandwich.Text = ""

End If

End Sub

Private Sub RadioButton3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles


RadioButton3.Click
'Paquete No.3 de Comida
txtTotal.Text = ""

If RadioButton3.Checked Then
CantidadHamburguesas = 0
CantidadRefresco = 1
CantidadPapas = 1
CantidadHotDog = 0

Cuaderno de Trabajo Visual Basic .NET II Página 21


CantidadSandwich = 1
CantidadTe = 0
'Inicializar valores
txtSandwich.Text = CantidadSandwich
txtRefresco.Text = CantidadRefresco
txtPapas.Text = CantidadPapas

'Activar las cajas de texto del paquete


txtSandwich.Enabled = True
txtRefresco.Enabled = True
txtPapas.Enabled = True

'Desactivar las otras cajas


txtHotDog.Enabled = False
txtTe.Enabled = False
txtHamburguesa.Enabled = False

'Limpiar las cajas de texto


txtHamburguesa.Text = ""
txtTe.Text = ""
txtHotDog.Text = ""

End If
End Sub

Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles RadioButton4.CheckedChanged
'Opcion Otro Pedido
txtTotal.Text = ""

'Inicializar variables=
CantidadHamburguesas = 0
CantidadHotDog = 0
CantidadPapas = 0
CantidadRefresco = 0
CantidadTe = 0
CantidadSandwich = 0

'Habilitar todas las entradas


txtHamburguesa.Enabled = True
txtHotDog.Enabled = True
txtSandwich.Enabled = True
txtTe.Enabled = True
txtRefresco.Enabled = True
txtPapas.Enabled = True

txtHamburguesa.Text = CantidadHamburguesas
txtHotDog.Text = CantidadHotDog
txtSandwich.Text = CantidadSandwich
txtTe.Text = CantidadTe
txtRefresco.Text = CantidadRefresco
txtPapas.Text = CantidadPapas

End Sub

Private Sub txtHamburguesa_TextChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles txtHamburguesa.TextChanged
txtTotal.Text = ""

Cuaderno de Trabajo Visual Basic .NET II Página 22


CantidadHamburguesas = Val(txtHamburguesa.Text)
End Sub

Private Sub txtHotDog_TextChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles txtHotDog.TextChanged
txtTotal.Text = ""
CantidadHotDog = Val(txtHotDog.Text)

End Sub

Private Sub txtSandwich_TextChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles txtSandwich.TextChanged
txtTotal.Text = ""
CantidadSandwich = Val(txtSandwich.Text)
End Sub

Private Sub txtTe_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles txtTe.TextChanged
txtTotal.Text = ""
CantidadTe = Val(txtTe.Text)
End Sub

Private Sub txtRefresco_TextChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles txtRefresco.TextChanged
txtTotal.Text = ""
CantidadRefresco = Val(txtRefresco.Text)
End Sub

Private Sub txtPapas_TextChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles txtPapas.TextChanged
txtTotal.Text = ""
CantidadPapas = Val(txtPapas.Text)
End Sub
End Class

Cuaderno de Trabajo Visual Basic .NET II Página 23


Actividad de Aprendizaje 15 – Areas

Este ejercicio calcula el área de distintas figuras geométricas. usamos el mismo escenario que para la
aplicación Ecuaciones de Segundo Grado. El reto de este ejercicio es practicas los botones de opciones
(el equivalente a las estructuras condicionales) para calcular el area. Y trabajar con el codigo GDI+ de
VB.NET el cual nos permite dibujar con instrucciones del propio lenguaje.

Las imágenes que se ven en pantalla, no son creadas con un programa externo, sino con el propio
Visual Basic.Net y su librería de graficos. En el codigo vera como se puede lograr esto.

*NOTA: El codigo del programa no esta completo, para que usted lo desarrolle completamente
tomando como base la primer figura propuesta. Tome atencion que debe dibujar las figuras, la
formula, asi como presentar las cajas de texto correctas para realizar el calculo y presentar este en la
caja de Resultado.

Control Nombre Propiedades


groupbox

groupbox

Cuaderno de Trabajo Visual Basic .NET II Página 24


groupbox

groupbox

groupbox

rectangleshape

radiobutton

radiobutton

radiobutton

radiobutton

radiobutton

radiobutton

radiobutton

picturebox

picturebox

label

label

label

label

textbox

textbox

textbox

textbox

button

Cuaderno de Trabajo Visual Basic .NET II Página 25


button

Su código es:

Public Class Form1


Dim h As Integer
Dim b As Integer
Dim b1 As Integer

Sub Limpiar()
Dim g As Graphics = imgFigura.CreateGraphics()
g.Clear(imgFigura.BackColor)
g.Dispose()

Dim g1 As Graphics = imgFormula.CreateGraphics


g1.Clear(imgFormula.BackColor)
g1.Dispose()

End Sub

Sub OcultarB1()
lblDato3.Visible = False
txtDato3.Visible = False
End Sub

Sub MostrarB1()
lblDato3.Visible = True
txtDato3.Visible = True
End Sub

Sub Triangulo()
Call Limpiar()

Dim bm As Bitmap
Dim gr As Graphics
Dim lapiz As Pen
Dim x1, y1 As Integer

' Create string to draw.


Dim drawString As [String] = "Sample Text"

' Create font and brush.


Dim drawFont As New Font("Arial", 12)
Dim drawBrush As New SolidBrush(Color.Black)
Dim draw2Font As New Font("Arial", 14)

Dim bm2 As Bitmap


Dim fr As Graphics

x1 = Int(imgFigura.Height)
y1 = Int(imgFigura.Width)

Dim myArrayPoints() As Point = New Point() {New Point(20, 92), New Point(137, 92), _

Cuaderno de Trabajo Visual Basic .NET II Página 26


New Point(106, 20)}

bm = New Bitmap(imgFigura.Image)
gr = Graphics.FromImage(bm)
lapiz = New Pen(Color.Black) 'o el color que sea (o pen(color.black, N) n es el ancho)

gr.DrawPolygon(New Pen(Color.Brown, 2), myArrayPoints)


gr.DrawLine(lapiz, 106, 20, 106, 92)
imgFigura.Image = bm

' Draw string to screen.


gr.DrawString("h", drawFont, drawBrush, 90, 60)
gr.DrawString("b", drawFont, drawBrush, 75, 100)

'Dibujar la formula
bm2 = New Bitmap(imgFormula.Image)
fr = Graphics.FromImage(bm2)
imgFormula.Image = bm2
fr.DrawString("Area=( b x h ) / 2", draw2Font, drawBrush, 5, 30)

'Ahora cambiar las etiquetas segun corresponde


lblDato1.Text = "b="
lblDato2.Text = "h="
End Sub

Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdSalir.Click
End
End Sub

Private Sub optTriangulo_CheckedChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles optTriangulo.CheckedChanged
If optTriangulo.Checked Then
'frmFigura = "Triangulo"
Call OcultarB1()
'Call MostrarH()
Call Triangulo()
frmDatos.Visible = True
frmResultado.Visible = True

End If
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


MyBase.Load
'Inicializar las variables
H = 1
B = 2
b1 = 1

'Inicializar las cajas de texto


txtDato1.Text = B
txtDato2.Text = H
txtDato3.Text = b1

End Sub

Cuaderno de Trabajo Visual Basic .NET II Página 27


Private Sub optParalelogramo_CheckedChanged(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles optParalelogramo.CheckedChanged
Call Triangulo()
End Sub
End Class

Cuaderno de Trabajo Visual Basic .NET II Página 28


EJERCICIOS SOBRE CICLOS FOR, DO WHILE, DO UNTIL
Los siguientes ejercicios, aunque de manera visual y con manejo de controles, se centran mas en las
estrucuturas repetitivas o ciclos.

Cuaderno de Trabajo Visual Basic .NET II Página 29


Actividad de Aprendizaje 16 – Sumas

Este ejercicio elige en forma Aleatoria dos números y los despliega en dos Labels para que el alumno
luego, introduzca el valor correcto de la suma de ambos en un TextBox . Si está bien le aparecerá la
carita sonriente y sino la de disgusto. Luego volverán a aparecer otros dos números para que siga
sumando.

El botón Aplicar permite hacer la corrección mediante un Condicional. Algunos de estos temas son
comunes a otros ejercicios. Por lo tanto nos centraremos en las funciones nuevas.

La función Rnd nos permite cargar en una variable un número aleatorio que en este caso definimos
como entero Int (de Integer) y de 0 a 10.

Cuaderno de Trabajo Visual Basic .NET II Página 30


Num1 = int( Rnd * 10)

Repetimos el procedimiento para Num2, el segundo sumando de nuestra cuenta. Para que realmente
sea aleatorio debemos incorporar la sentencia Randomize en el Procedimiento Load del Formulario.

Otra función que utilizamos es Val que transforma una cadena de caracteres, en este caso el contenido
de un Text en un valor numérico.

Resultado = Val ( Text1.Text)

Y luego con un condicional y el operador de suma + controlamos si el resultado es correcto:

If resultado = Int(num1) + Int(num2) then...

En el caso de resolver bien la cuenta pasa a cargar otros dos números , iniciando una nueva cuenta.
Pero necesitamos una espera en la aplicación. Esto lo hacemos por código con un bucle que asociado al
reloj del sistema crea una pausa en la aplicación. Para esto creamos un Procedimiento llamado Pausa.
Posicionados en la ventana de código , en el area de GENERAL tecleamos el codigo descrito mas abajo.

Ahora veremos en nuestra ventana de código un nuevo Procedimiento llamado Pausa. Incluido dentro
de los procedimientos del objeto General. Luego lo llamaremos desde otra parte del programa con la
sentencia Call.

Control Nombre Propiedades


label

label

label

label

textbox

button

button

button

lineshape

picturebox

Cuaderno de Trabajo Visual Basic .NET II Página 31


Para mayor claridad vamos al código:

Public Class Form1


Dim num1, num2, resultado As Integer

Private Sub pausa(ByVal segundos As Integer)


' este el procedimiento creado por nosotros para crear una pausa
' usando un ciclo (sin el control Timer)
Dim esperaTmp As Long = My.Computer.Clock.TickCount + (segundos * 1000)
While esperaTmp > My.Computer.Clock.TickCount
System.Windows.Forms.Application.DoEvents()
End While

End Sub

Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdSalir.Click
End
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


MyBase.Load
Randomize()
num1 = Int(Rnd() * 10) 'al cargarse el programa ya aparece una cuenta
num2 = Int(Rnd() * 10)
txtResultado.Text = ""
lblDato1.Text = num1 'se vuelcan las variables en las Labels
lblDato2.Text = num2
cmdCalcular.Enabled = False 'el botón aplicar está desactivado

End Sub

Private Sub txtResultado_TextChanged(ByVal sender As System.Object, ByVal e As


System.EventArgs) Handles txtResultado.TextChanged
cmdCalcular.Enabled = True
End Sub

Private Sub cmdOtraSuma_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdOtraSuma.Click
num1 = Int(Rnd() * 10) 'elige un número aleatorio
num2 = Int(Rnd() * 10) 'elige un número aleatorio
txtResultado.Text = ""
lblDato1.Text = num1
lblDato2.Text = num2
txtResultado.Focus() ' ubica el foco del cursor en el control Text1
cmdCalcular.Enabled = False
PictureBox1.Image = Nothing 'vacía el contenido de la imagen

End Sub

Private Sub cmdCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdCalcular.Click
cmdCalcular.Enabled = False

Cuaderno de Trabajo Visual Basic .NET II Página 32


resultado = Val(txtResultado.Text)
If resultado = Int(num1) + Int(num2) Then
'MsgBox("Bien!")
PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") +
"\sumas_ico002.ico")

Else
'MsgBox("Mal!")
PictureBox1.Image = Image.FromFile(System.IO.Path.GetFullPath("G:") +
"\sumas_ico001.ico")
End If
lblMensaje.Visible = True
lblMensaje.Text = "Pensando en otra suma para ti..."
' llama al procedimiento que creamos como Pausa
' pasandole como parametro la cantidad de segundos que queremos.
Call pausa(3)
lblMensaje.Visible = False
cmdOtraSuma.PerformClick()
End Sub

End Class

Actividad de Aprendizaje 17 – Temperaturas

Cuaderno de Trabajo Visual Basic .NET II Página 33


En este ejercicio, simplemente entramos en tiempo de ejecución una temperatura para cada día de la
semana y luego haciendo click en los botones: Alta, Media y Baja , devuelve los valores en otras cajas
de texto.

Debemos usar un arreglo para almacenar los valores introducidos en cada caja de texto, y con un ciclo
(For..Next), recorrer dicho arreglo para saber cual es el valor mas alto, mas bajo y el promedio en una
semana dada.

Control Nombre Propiedades


textbox

textbox

textbox

textbox

textbox

textbox

textbox

textbox

textbox

textbox

label

label

label

label

label

label

label

Cuaderno de Trabajo Visual Basic .NET II Página 34


label

label

label

button

button

button

button

button

El código es el siguiente:

Public Class Form1


'Declaramos las variables que vamos a calcular.
Dim alta As Single
Dim dia As Integer
Dim baja As Single
Dim media As Single
'Declaramos un arreglo para los dias de la semana
Dim txtBox(7) As TextBox

Sub SetControlArray()
'Funcion que nos pasara los valores de las cajas de texto de dia de la semana
'al array que hemos creado.
txtBox(1) = txtDomingo
txtBox(2) = txtLunes
txtBox(3) = txtMartes
txtBox(4) = txtMiercoles
txtBox(5) = txtJueves
txtBox(6) = txtViernes
txtBox(7) = txtSabado
End Sub

Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdSalir.Click
End
End Sub

Private Sub cmdAlta_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdAlta.Click
' Calcular cual es la temperatura mas alta de la semana de acuerdo a los valores
' introducidos por el usuario.
' Primero llamamos la funcion para poner los valores en el array
Call SetControlArray()

Cuaderno de Trabajo Visual Basic .NET II Página 35


' Ahora realizaremos un ciclo para recorrer todos los dias de la semana
' y saber cual es el dia en que el valor es el mas alto.
alta = txtBox(1).Text
For Me.dia = 1 To 7
If txtBox(dia).Text > alta Then
alta = txtBox(dia).Text
End If
Next dia
txtAlta.Text = alta

End Sub

Private Sub cmdBaja_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdBaja.Click
' Calcular cual es la temperatura mas baja de la semana
Call SetControlArray()
baja = txtBox(1).Text
For Me.dia = 1 To 7
If txtBox(dia).Text < baja Then
baja = txtBox(dia).Text
End If
Next dia
txtBaja.Text = baja

End Sub

Private Sub cmdMedia_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdMedia.Click
'Calcular la temperatura promedio del dia de la semana
' Declarar variables locales
Dim total As Long
Dim promedio As Long
'Llamar array de inicializacion
Call SetControlArray()
total = 0
For Me.dia = 1 To 7
total = total + txtBox(dia).Text
Next dia
promedio = total / 7
txtMedia.Text = Format(promedio, "##.##") 'formato con dos decimales

End Sub

Private Sub cmdBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdBorrar.Click
'Borrar todos los valores de temperaturas de la semana
'Aqui no pondremos el array sino accesamos de manera directa a los controles
txtDomingo.Text = ""
txtLunes.Text = ""
txtMartes.Text = ""
txtMiercoles.Text = ""
txtJueves.Text = ""
txtViernes.Text = ""
txtSabado.Text = ""
End Sub
End Class

Cuaderno de Trabajo Visual Basic .NET II Página 36


Usando estructuras de repetición For Next, calculamos los valores de alta y baja, luego para la media
sacamos por división el promedio.

Cuaderno de Trabajo Visual Basic .NET II Página 37


EJERCICIOS SOBRE ARRAYS
Los siguientes ejercicios, aunque de manera visual y con manejo de controles, se centran mas en los Arreglos y
algunos controles que los utilizan.

Cuaderno de Trabajo Visual Basic .NET II Página 38


Actividad de Aprendizaje 20 – Promedio de Notas

Este ejercicio nos permite ingresar una cantidad de valores, por ejemplo las notas de un alumno, y
luego obtener su promedio. En el formulario usamos cuatro botones, dos cajas de texto, y un ListBox,
un frame y tres Labels.

Necesitamos usar un arreglo para almacenar los valores de las calificaciones que vamos introduciendo,
ya que la caja de lista, tambien se maneja con un arreglo de valores. Veremos ademas, el uso del
control Listbox para agregar elementos y para eliminarlos. Tambien usaremos un ciclo para recorrer
todos los valores del Array y calcular el promedio.

Control Nombre Propiedades


groupbox

label

label

textbox

textbox

Cuaderno de Trabajo Visual Basic .NET II Página 39


button

button

button

button

listbox

El código es el siguiente:
Public Class Form1
Dim Nota() As Single
Dim N As Integer 'Número total de notas.

Private Sub cmdSalir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdSalir.Click
End
End Sub

Private Sub txtCalificacion_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs)


Handles txtCalificacion.LostFocus
If IsNumeric(txtCalificacion.Text) Then 'Chequea si el valor es numérico.
If txtCalificacion.Text <= 0 Then 'Chequea si es mayor que cero.
MsgBox("Valor incorrecto,debe ser mayor que cero", vbCritical)
txtCalificacion.Focus() 'Situa el foco en el TexBox Text1.
End If
Else 'Si no es numérico el dato.
MsgBox("El valor debe ser mayor que cero", vbCritical)
txtCalificacion.Focus() 'Situa el foco en el TexBox Text1.
End If

End Sub

Private Sub cmdCaptura_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdCaptura.Click
If txtCalificacion.Text = "" Then 'Si no se han introducido nota.
MsgBox("No se ha introducido una nota")
txtCalificacion.Focus()
Exit Sub
End If
N = N + 1 'Inicializa el conteo de las notas entradas.
ReDim Preserve Nota(0 To N) 'Redimesiona el arreglo.
Nota(N) = txtCalificacion.Text 'Asigna el valor al arreglo.
'Añade la nota a la lista.
ListBox1.Items.Add(Nota(N))
'cmdEntrarNota.Enabled = False

End Sub

Cuaderno de Trabajo Visual Basic .NET II Página 40


Private Sub cmdBorrar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Handles cmdBorrar.Click
Dim i As Integer, NotaInd As Integer
'NotaInd = ListBox1.ListIndex + 1 'Asigna el orden del elemento de la lista a una
variable.
NotaInd = ListBox1.SelectedIndex + 1
'If ListBox1.ListIndex = -1 Then 'Si no esta checheada la lista.
If ListBox1.SelectedIndex = -1 Then
MsgBox("Haga click en la lista para borrar la nota")
Exit Sub
Else
'ListBox1.RemoveItem(List1.ListIndex) 'Borra de la Lista la Nota
ListBox1.Items.RemoveAt(ListBox1.SelectedIndex)

txtCalificacion.Text = "" 'Limpia el texto.


'Eliminar la nota de indice (List1.ListIndex+1) y correr las notas
For i = NotaInd To N - 1
Nota(i) = Nota(i + 1)
Next i
N = N - 1 'actualizando número de notas por ser borrada una.

If N > 1 Then ReDim Preserve Nota(0 To N) 'Reajustando la dimensión del arreglo


notas
txtPromedio.Text = ""
End If

End Sub

Private Sub cmdCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles cmdCalcular.Click
'Calcular el proemdio
Dim Suma As Single
Dim Promedio As Single
Dim J As Integer
If N = 0 Then 'Si el número de notas es cero.
MsgBox("No existen valores para promediar")
Exit Sub
End If
Suma = 0
For J = 1 To N 'Suma todas las notas
Suma = Suma + Nota(J)
Next J
Promedio = Suma / N
txtPromedio.Text = Promedio

End Sub
End Class

Cuaderno de Trabajo Visual Basic .NET II Página 41


EJERCICIOS SOBRE USO DE CONTROLES
Los siguientes ejercicios, se centran en el uso de los controles estandar de Visual Basic, sus propiedades y
eventos para conocer como se comportan.

Cuaderno de Trabajo Visual Basic .NET II Página 42


Actividad de Aprendizaje 24 – Torero

Este ejercicio muestra una sucesión de Imágenes al estilo un show de diapositivas .Tenemos 2 modos
de hacerlo. Uino, las imágenes las cargamos en controles Image a la izquierda del formulario invisibles,
para luego convocarlas por código y desplegarlas en la Image central, ésta si con su propiedad visible =
True.

El segundo metodo, es tener las imágenes en la carpeta donde se ejecuta el programa, y de ahí
mediante codigo irlas mostrando en un solo control picturebox. La ventaja es que tendremos menos
controles en nuestro formulario, pero debemos tener las imágenes en la misma carpeta del programa.
En el primer metodo, las imágenes quedan DENTRO del programa.

Cuaderno de Trabajo Visual Basic .NET II Página 43


La sucesión de imágenes la realiza un control Timer asociado a un contador , cada imagen se relaciona
con un texto que desplegamos en una Label colocada debajo de la imagen central. Al llegar el contador
a 12 se detiene la sucesión.

El boton Reiniciar nos posibilita volver a comenzar sin salir de la aplicación, para esto inicializa la
variable A = 0 y pone el Timer nuevamente en funcionamiento.

Control Nombre Propiedades


picturebox

picturebox

label

button

button

El código de los principales procedimientos es el siguiente:

Public Class Form1


Dim a As Integer

Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles


Timer1.Tick

Cuaderno de Trabajo Visual Basic .NET II Página 44


a = a + 1
If a = 2 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG002.jpg")
Label1.Text = " Y los tirantes después..."
ElseIf a = 3 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG003.jpg")
Label1.Text = " enseguida la corbata..."
ElseIf a = 4 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG004.jpg")
Label1.Text = " enseguida la corbata..."
ElseIf a = 5 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG005.jpg")
Label1.Text = "Y una faja de chipé..."
ElseIf a = 6 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG006.jpg")
Label1.Text = "El chaleco hay que ensancharlo..."
ElseIf a = 7 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG007.jpg")
Label1.Text = "la chaquetilla está bien..."
ElseIf a = 8 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG008.jpg")
Label1.Text = "Una cinta desatada..."
ElseIf a = 9 Then
Label1.Text = "Un beso ardiente... dos... tres..."
PictureBox2.Image = Image.FromFile("Torerito_JPG009.jpg")
ElseIf a = 10 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG010.jpg")
Label1.Text = " Mezcla de llanto y de juego y un rezo de ella por él..."
ElseIf a = 11 Then
PictureBox2.Image = Image.FromFile("Torerito_JPG011.jpg")
Label1.Text = "Dios mío que vuelva zano! ¡Si él muere, muero también!"
ElseIf a = 12 Then
'Label4.Visible = True
Timer1.Enabled = False
End If

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button1.Click
Timer1.Enabled = True
a = 0
Label1.Text = "Lo primero es la coleta..."

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)


Handles Button2.Click
End
End Sub
End Class

Cuaderno de Trabajo Visual Basic .NET II Página 45


*NOTA: El timer por defecto esta desactivado, hay que activarlo. El intervalo del timer debe ser puesto
a 3000 (3 segundos) entre cada imagen.

Actividad de Aprendizaje 26 – Cubos

Este ejercicio es para ver los eventos que se pueden manejar con el mouse, moviendo una imagen por
el formulario. Es parecido al Drag&Drop pero no es lo mismo ya que usa los eventos de Mouse. Este
tipo de ejercicios es muy útil para los docentes que trabajan con los más pequeños.

Usamos tres controles Picture cargando en cada uno de ellos un icono que les guste.

Control Nombre Propiedades


picturebox

picturebox

picturebox

el siguiente código:

Cuaderno de Trabajo Visual Basic .NET II Página 46


Public Class Form1

Private btnDown As Boolean


Private offsetX As Integer
Private offsetY As Integer
Private btn2Down As Boolean
Private x2, y2 As Integer
Private btn3Down As Boolean
Private x3, y3 As Integer
Dim origen As Integer

Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
' el boton izquierdo esta pulsado
If (e.Button = MouseButtons.Left) Then

btnDown = True
offsetX = e.X
offsetY = e.Y
End If
End Sub

Private Sub PictureBox1_MouseMove(ByVal sender As Object, ByVal e As


System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove
If btnDown = True Then

'// mover el pictureBox con el raton


PictureBox1.Left += e.X - offsetX
PictureBox1.Top += e.Y - offsetY
End If
End Sub

Private Sub PictureBox1_MouseUp(ByVal sender As Object, ByVal e As


System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp
'// el boton izquierdo se libera
If e.Button = MouseButtons.Left Then

btnDown = False
End If
End Sub

Private Sub PictureBox2_DragDrop(ByVal sender As Object, ByVal e As


System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragDrop
PictureBox2.Left += e.X - x2
PictureBox2.Top += e.Y - y2
End Sub

Private Sub PictureBox2_DragOver(ByVal sender As Object, ByVal e As


System.Windows.Forms.DragEventArgs) Handles PictureBox2.DragOver
PictureBox2.Left += e.X - x2
PictureBox2.Top += e.Y - y2
End Sub

Private Sub PictureBox2_MouseDown(ByVal sender As Object, ByVal e As


System.Windows.Forms.MouseEventArgs) Handles PictureBox2.MouseDown
PictureBox2.DoDragDrop(PictureBox2, DragDropEffects.Move)

Cuaderno de Trabajo Visual Basic .NET II Página 47


x2 = PictureBox2.Location.X
y2 = PictureBox2.Location.Y
End Sub
End Class

Cuaderno de Trabajo Visual Basic .NET II Página 48


RETOS
Las siguientes actividades son retos para los alumnos y que desarrollen sus habilidades como programadores,
aplicando lo que han aprendido en clase sobre los comandos de VB.NET ,asi como la logica de la programacion.
Algunos de los retos, contendran un poco de codigo a manera de guia sobre lo que se desea realizar, otros
mostraran solo alguna imagen final de cómo debe quedar la aplicación final.

Cuaderno de Trabajo Visual Basic .NET II Página 49


RETO 1 – Diagnostico de RED LAN

El reto de esta aplicación es determinar:


1) Si la computadora donde se ejecuta el programa esta conectado a una red
2) Si la computadora donde se ejecuta el programa esta conectado a Internet
3) Checar todas las computadoras de una RED LAN.

Como ejemplo, para el caso numero 1, tendremos:

If My.Computer.Network.IsAvailable = True Then


MsgBox("Estas conectado a una red")
Else
MsgBox("No estas conectado a una red")
End If

Cuaderno de Trabajo Visual Basic .NET II Página 50


Y para el caso numero 2:

If My.Computer.Network.Ping("www.google.com") = True Then


MsgBox("Tienes conexion a Internet")
Else
MsgBox("No puedes conectarte a Internet" + Chr(13) + "Revisa tu modem")
End If

Hay otras instrucciones de VB.NET las cuales obtienen el nombre de la PC por su ip o viceversa, asi como el
manejo de errores si hay problemas de comunicación. El alumno debera resolver todos los inconvenientes y
crear una interfaz amigable para que que el usuario pueda monitorear cuales computadoras estan conectadas y
cuales no.

Posibles opciones:
1) De 1 por 1
2) Con un boton que chequen todas las computadoras de la red
3) Con un timer que se ejecute cada cierto tiempo
4) Con cuadros que cambien de color
5) Con el nombre de la PC
6) Con la ip de la PC
7) Con iconos que cambien.

En fin, las posibilidades son muchas.

NOTA TIP : En Internet hay una aplicación para conocer todas las ips de una red Lan de manera automatica.
Hay que buscar en google para ver el codigo fuente de dicha aplicación, modificarlo y adaptarlo a sus
necesidades.

Cuaderno de Trabajo Visual Basic .NET II Página 51


RETO 2 – Informacion de Sistema de una PC

Este reto, pretende crear una aplicación usando ciertas instrucciones de VB.NET para obtener informacion de
una computadora como su version de sistema operativo, memoria, resolucion de pantalla, etc. Sin hacer uso de
ningun control ActiveX.

La interfaz y la cantidad de informacion presentada correra a cargo del alumno (incluso puede poner algunas
imágenes o iconos de acompañamiento ).

Ejemplo de esta informacion:

Inicializar varias variables para que sea mas descriptivo

Dim nombreEquipo, MemoriaFisicaDisp, MemoriaVirtualDisp As String


Dim sistemaoperativo, sistemaoperativoversion, memoriafisica, memoriavirtual As String
Dim mouseruedita As Boolean
Dim horaloca, directoriodocs As String

nombreEquipo = My.Computer.Name
MemoriaFisicaDisp = My.Computer.Info.AvailablePhysicalMemory
MemoriaVirtualDisp = My.Computer.Info.AvailableVirtualMemory
SistemaOperativo = My.Computer.Info.OSFullName
SistemaOperativoVersion = My.Computer.Info.OSVersion
MemoriaFisica = My.Computer.Info.TotalPhysicalMemory
MemoriaVirtual = My.Computer.Info.TotalVirtualMemory
MouseRuedita = My.Computer.Mouse.WheelExists
HoraLoca = My.Computer.Clock.LocalTime
DirectorioDocs = My.Computer.FileSystem.SpecialDirectories.MyDocuments

TextBox1.Text = directoriodocs

Cuaderno de Trabajo Visual Basic .NET II Página 52