Los Arrays o arreglos son conjuntos de Variables Agrupadas con un nombre, que se pueden manejar juntas o individualmente, en Visual Basic .Net se pueden tener arreglos desde una dimensión y hasta un máximo de 32 dimensiones. Puede ver mas en http://emilio.aesinformatica.com/2009/06/05/visual-basic-net-arrays-y-arrays-multidimensionales/.
Nota: Si declaramos a una matriz (6), tendríamos 7 elementos por que recorre desde cero ejemplo
Private estudiante() As Integer
estudiante = New Integer(6) {} , seria como muestran los elementos en la imagen:
. Ejemplo 01: mostra 6 edades aleatorias de una clase persona, también sacar su suma y su promedio de las edades .
Nota: Si declaramos a una matriz (6), tendríamos 7 elementos por que recorre desde cero ejemplo
Private estudiante() As Integer
estudiante = New Integer(6) {} , seria como muestran los elementos en la imagen:
. Ejemplo 01: mostra 6 edades aleatorias de una clase persona, también sacar su suma y su promedio de las edades .
.Agregamos una clase con el nombre"Persona.vb" dentro de una carpeta llamado"clases", y tambien agregamos un formulario con el nombre "FrmPeredadsum.vb"
Diseño del fromulario: 1ListBox.1Button,4label como muestra la imagen:
Clase Persona:
Public Class Persona
Private edad() As Integer
'desde este método devuelves un arreglo '
'byval sirve para pasar valores'
Function generaredades(ByVal n As Integer) As Integer()
Dim i As Integer
'Al utilizar una cláusula New, ésta debe ir seguida de llaves ({}), incluso si están vacías
Me.edad = New Integer(n) {}
For i = 0 To edad.Length - 1
Me.edad(i) = 1 + Rnd() * 100 'Generar valor aleatorio entre 1 y 100.
Next
Return Me.edad
End Function
Private edad() As Integer
'desde este método devuelves un arreglo '
'byval sirve para pasar valores'
Function generaredades(ByVal n As Integer) As Integer()
Dim i As Integer
'Al utilizar una cláusula New, ésta debe ir seguida de llaves ({}), incluso si están vacías
Me.edad = New Integer(n) {}
For i = 0 To edad.Length - 1
Me.edad(i) = 1 + Rnd() * 100 'Generar valor aleatorio entre 1 y 100.
Next
Return Me.edad
End Function
Function suma() As Integer
Dim i As Integer
Dim SUM As Integer
SUM = 0
For i = 0 To edad.Length - 1
SUM = SUM + edad(i)
Next
Return SUM
End Function
Function promedio() As Double
Dim pro As Double
pro = Me.suma / (edad.Length - 1)
Return pro
End Function
End Class
Programamos en el Formulario:
Public Class FrmPeredadsum
Private opersona As Persona
Private edad() As Integer
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
Dim i As Integer
lstedadeslis.Items.Clear()
opersona = New Persona
edad = opersona.generaredades(5)
For i = 0 To edad.Length - 1
lstedadeslis.Items.Add(edad(i))
Next
lblpromedio.Text = opersona.promedio
lblsuma.Text = opersona.suma
End Sub
End Class
Private opersona As Persona
Private edad() As Integer
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
Dim i As Integer
lstedadeslis.Items.Clear()
opersona = New Persona
edad = opersona.generaredades(5)
For i = 0 To edad.Length - 1
lstedadeslis.Items.Add(edad(i))
Next
lblpromedio.Text = opersona.promedio
lblsuma.Text = opersona.suma
End Sub
End Class
Resultado:
. Ejemplo 02: usamos la misma clase "Persona" del ejemplo anterior, agregamos un nuevo fromulario con el nombre de Frmedadcond.vb
. Diseño del formulario: 4 label,1 button, 1 ListView como muestra la imagen:
configuración del ListView con el nombre "lsvmostreo",sigamos las imágenes:
-configurando las columnas en las propiedades de ListView-
Clase Persona (la misma clase del ejercicio nterior solo agregamos lo siguiente):
Public Class Persona
Function total_menor() As Integer
Dim i As Integer
Dim R As Integer
For i = 0 To Me.edad.Length - 1
If edad(i) < 18 Then
R = R + 1
End If
Next
Return R
End Function
Function total_mayorr() As Integer
Dim i As Integer
Dim R As Integer
For i = 0 To Me.edad.Length - 1
If edad(i) >= 18 Then
R = R + 1
End If
Next
Return R
End Function
End Class
Programamos en el Formulario:
Public Class Frmedadcond
'Creo una variable de tipo ListViewItem (ALMACEN) que sirve para ir agregando al ListView.
Private ALMACEN As ListViewItem
Private opersona As Persona
Private edad() As Integer Private Sub BTNMOSTRAR_Click(sender As System.Object, e As System.EventArgs) Handles BTNMOSTRAR.Click
Dim i As Integer
opersona = New Persona
edad = opersona.generaredades(5)
lsvmostreo.Items.Clear()
For i = 0 To edad.Length - 1
'Creo una nueva instancia del ALMACEN
ALMACEN = New ListViewItem
'pasamos como dado principal
ALMACEN.Text = edad(i)
If edad(i) >= 18 Then
'Agregamos los demas datos a los SubItems
ALMACEN.SubItems.Add("MAYOR DE EDAD")
Else
ALMACEN.SubItems.Add("MENOR DE EDAD")
End If
'Agrego el almacen a la colección de listViewItem a lsvmostreo.
lsvmostreo.Items.Add(ALMACEN)
Next
lblmenores.Text = opersona.total_menor
lblmayores.Text = opersona.total_mayorr
End Sub
End Class
Resultado:
. Ejemplo 03: calcular la temperatura minima, maxima y su promedio en 16 dias que oscile ente 10 y 36.
.Crear una clase con el nombre "ClsTemperatura.vb" en una carpeta "clases", agregamos un nuevo formulario con el nombre "FrmTemperatura.vb"
. Diseño del fromulario: 1 button , 1 ListView nombre "Lvtabla" que tine 4 columnas, como muestra la imagen :
.Clase ClsTemperatura:Public Class ClsTemperatura
' matriz filas y columnas bidimensionales
Private num(,) As Integer
Public Sub simular()
Me.num = New Integer(15, 2) {}
Dim i As Integer
For i = 0 To 15
num(i, 0) = 10 + Rnd() * 13
num(i, 1) = num(i, 0) + Rnd() * 13
num(i, 2) = (num(i, 0) + num(i, 1)) / 2
Next
End Sub
'retorno'
Public Function mostraresiltado() As Integer(,)
Return num
End Function
End Class
Programamos en el Formulario:
Public Class FrmTemperatura
Private otemperatura As ClsTemperatura
Private tem(,) As Integer
Private ingresar As ListViewItem
Private Sub BtnMostrar_Click(sender As System.Object, e As System.EventArgs) Handles BtnMostrar.Click
otemperatura = New ClsTemperatura
otemperatura.simular()
tem = otemperatura.mostraresiltado
lsvresul.Items.Clear()
Dim i As Integer
For i = 0 To 15
ingresar = New ListViewItem
ingresar.Text = i + 1
ingresar.SubItems.Add(tem(i, 0))
ingresar.SubItems.Add(tem(i, 1))
ingresar.SubItems.Add(tem(i, 2))
lsvresul.Items.Add(ingresar)
Next
End Sub
End Class
Resultado:
.Ejemplo04: en este ejemplo vamos hacer una tabla aritmética de suma, resta, multiplicación, división:
. Creamos una clase con el nombre "ClsTabla.vb" en una carpeta llamada "clases", luego agregamos un formulario con el nombre "FrmTablaAritmetica.vb"
.Diseño del Formulario: 1 label, 1 TextBox en su propiedad name "txtvalor", 1 button en su propiedad name "Btnmostrar", 1 GroupBox, 4 RadioButton en su propiedad name colocamos "Rbsuma, RbResta, RbMultiplicar, RbDividir", 1 ListView en su propiedad name "lsvresul", vemos la imagen:
.Clase ClsTabla:
Public Class ClsTablaPrivate resul() As Double
Public Function operacion(ByVal tipo As String, ByVal operador As Integer) As Double()
Dim i As Integer
resul = New Double(15) {}
Select Case tipo
Case "+"
For i = 1 To 15
resul(i) = operador + i
Next
Case "-"
For i = 1 To 15
resul(i) = operador - i
Next
Case "*"
For i = 1 To 15
resul(i) = operador * i
Next
Case "/"
For i = 1 To 15
resul(i) = operador / i
Next
End Select
Return resul
End Function
End Class
Programamos en el Formulario:
Public Class FrmTablaAritmetica
Private lista As ListViewItem
Private resultado() As Double
Private otablas As ClsTabla
Private tipo As String
Private valor As Integer
Private Sub Btnmostrar_Click(sender As System.Object, e As System.EventArgs) Handles Btnmostrar.Click
If Rbsuma.Checked Then tipo = "+"
If RbResta.Checked Then tipo = "-"
If RbMultiplicar.Checked Then tipo = "*"
If RbDividir.Checked Then tipo = "/"
otablas = New ClsTabla
valor = txtvalor.Text
resultado = otablas.operacion(tipo, valor)
Dim i As Integer
lsvresul.Items.Clear()
For i = 1 To 12
lista = New ListViewItem
lista.Text = valor
lista.SubItems.Add(tipo)
lista.SubItems.Add(i)
lista.SubItems.Add(resultado(i))
lsvresul.Items.Add(lista)
Next
End Sub
Private Sub FrmTablaAritmetica_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Rbsuma.Checked = True
End Sub
End Class
Resultado:
0 comentarios:
Publicar un comentario