1).Implementaremos el siguiente ejercicio con POO:
.-Mostrar los N primeros términos de la serie: 7, 6, 8, 5, 9, 4, 10, 3,….
.-Mostrar los K primeros términos de la serie: 5, 7, 10, 14, 19,…
.-Mostrar los N primeros términos de la serie: 7, 6, 8, 5, 9, 4, 10, 3,….
.-Mostrar los K primeros términos de la serie: 5, 7, 10, 14, 19,…
La serie de N primeros términos definimos según la imagen:
La serie de K primeros términos definimos según nos muestra la imagen:
En un nuevo proyecto: Creamos una clase con el nombre “ClsSeries.vb” dentro de una carpeta clases
También un formulario con el nombre:“Frmseries.vb” que tendrá en el diseño 2 label, 2 TextBox con los nombre “txtN, txtK”, 2 ListBox con los nombres “lstN,lstK” y 1 Button con el nombre “btngenerar”. Como muestra la imagen:
Clase clsserie:
Public Class ClsSeries
'‘entradas que uno coloca en la caja de texto
'‘entradas que uno coloca en la caja de texto
Private n As Integer
Private k As Integer
Private k As Integer
'Almacenamos la serie en un arrays AK() AN()
Private AK() As Integer
Private AN() As Integer
Private AK() As Integer
Private AN() As Integer
Public Property xn As Integer
Get
Return Me.n
End Get
Set(value As Integer)
Me.n = value
End Set
End Property
Public Property xk As Integer
Get
Return Me.k
End Get
Set(value As Integer)
Me.k = value
End Set
End Property
Public Function GenerarserieN() As Integer()
Dim x As Integer = 0
Dim condicion As Boolean 'Una variable boolean para jugar con la serie ya que salta un número
Dim r As Integer
Dim z As Integer = 1
Me.AN = New Integer(Me.xn) {}
Get
Return Me.n
End Get
Set(value As Integer)
Me.n = value
End Set
End Property
Public Property xk As Integer
Get
Return Me.k
End Get
Set(value As Integer)
Me.k = value
End Set
End Property
Public Function GenerarserieN() As Integer()
Dim x As Integer = 0
Dim condicion As Boolean 'Una variable boolean para jugar con la serie ya que salta un número
Dim r As Integer
Dim z As Integer = 1
Me.AN = New Integer(Me.xn) {}
For I = 0 To Me.AN.Length - 2
If condicion = False Then
r = 7 + x
Me.AN(I) = r
x = x + 1
condicion = True
Else
r = r - z
Me.AN(I) = r
z = z + 2
condicion = False
End If
Next
Return Me.AN
End Function
Public Function generarseriek() As Integer()
Me.AK = New Integer(Me.xk) {}
Dim ini As Integer = 4
Dim x As Integer = 1
For i = 0 To Me.AK.Length - 2
ini = ini + x
Me.AK(i) = ini
x = x + 1
Next
Return Me.AK
End Function
End Class
If condicion = False Then
r = 7 + x
Me.AN(I) = r
x = x + 1
condicion = True
Else
r = r - z
Me.AN(I) = r
z = z + 2
condicion = False
End If
Next
Return Me.AN
End Function
Public Function generarseriek() As Integer()
Me.AK = New Integer(Me.xk) {}
Dim ini As Integer = 4
Dim x As Integer = 1
For i = 0 To Me.AK.Length - 2
ini = ini + x
Me.AK(i) = ini
x = x + 1
Next
Return Me.AK
End Function
End Class
Programamos en el Formulario:
Public Class Frmseries
Private oserie As ClsSeries 'Se llama a una clase
Private N() As Integer
Private k() As Integer
Private Sub btngenerar_Click(sender As System.Object, e As System.EventArgs) Handles btngenerar.Click
'preguntamos si los texto están vacios que muestre un mensaje
' si lo pones valores recién se ejecute le programa
If txtK.Text = "" And txtN.Text = "" Then
MessageBox.Show("ingrese valores a las cajas de texto ", "aviso", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
oserie = New ClsSeries 'Se está instanciando la clase
oserie.xn = txtN.Text
oserie.xk = txtK.Text
'Asignamos una función de la clase clsseries a una variable arrays
N = oserie.GenerarserieN
k = oserie.generarseriek
'Limpiamos los listbox
lstN.Items.Clear()
For i = 0 To N.Length - 2
lstN.Items.Add(N(i))
Next
'Limpiamos los listbox
lstK.Items.Clear()
For j = 0 To k.Length - 2
lstK.Items.Add(k(j))
Next
oserie = Nothing
End If
Private oserie As ClsSeries 'Se llama a una clase
Private N() As Integer
Private k() As Integer
Private Sub btngenerar_Click(sender As System.Object, e As System.EventArgs) Handles btngenerar.Click
'preguntamos si los texto están vacios que muestre un mensaje
' si lo pones valores recién se ejecute le programa
If txtK.Text = "" And txtN.Text = "" Then
MessageBox.Show("ingrese valores a las cajas de texto ", "aviso", MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
oserie = New ClsSeries 'Se está instanciando la clase
oserie.xn = txtN.Text
oserie.xk = txtK.Text
'Asignamos una función de la clase clsseries a una variable arrays
N = oserie.GenerarserieN
k = oserie.generarseriek
'Limpiamos los listbox
lstN.Items.Clear()
For i = 0 To N.Length - 2
lstN.Items.Add(N(i))
Next
'Limpiamos los listbox
lstK.Items.Clear()
For j = 0 To k.Length - 2
lstK.Items.Add(k(j))
Next
oserie = Nothing
End If
End Sub
' Validamos para que las cajas de texto solo ingresen números en su evento KeyPress
Private Sub txtN_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtN.KeyPress
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
Private Sub txtK_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtK.KeyPress
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
If Char.IsDigit(e.KeyChar) Then
e.Handled = False
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
e.Handled = True
End If
End Sub
End Class
Resultado:
2). Crear una Clase que permita ingresar un número para que muestre números aleatorios y desarrollar dos métodos numeroMayor y numeroMenor que lo conforma.
.Creamos una clase con el nombre “ClsNumeroMayMe.vb” dentro de la carpeta clases
.Creamos una clase con el nombre “ClsNumeroMayMe.vb” dentro de la carpeta clases
Clase ClsNumeroMayMe:
Public Class ClsNumeroMayMe
Private n As Integer
Private lista() As Integer
Property xn As Integer
Get
Return Me.n
End Get
Set(value As Integer)
Me.n = value
End Set
End Property
'En este método generamos los números aleatorios que se
'van a mostrar en la lstlista
Public Function asignacion() As Integer()
lista = New Integer(Me.xn) {}
For i = 0 To lista.Length - 2
lista(i) = 1 + Rnd() * 50
Next
Return lista
End Function
'método del numero mayor
Public Function numeroMayor() As Integer
Dim ma As Integer = 0
For i = 0 To lista.Length - 2
'Preguntamos si el valor de la lista actual es mayor que el valor de ma
'Si es verdad lo remplazamos
If Me.lista(i) >= ma Then
ma = Me.lista(i)
Else
' si no es el mismo valor
ma = ma
End If
Next
Return ma
End Function
'método del numero menor
Public Function numeroMenor() As Integer
Dim men As Integer = lista(1)
For i = 0 To lista.Length - 2
If lista(i) <= men Then
men = lista(i)
Else
men = men
End If
Next
Return men
End Function
End Class
Programamos en el Formulario:Private n As Integer
Private lista() As Integer
Property xn As Integer
Get
Return Me.n
End Get
Set(value As Integer)
Me.n = value
End Set
End Property
'En este método generamos los números aleatorios que se
'van a mostrar en la lstlista
Public Function asignacion() As Integer()
lista = New Integer(Me.xn) {}
For i = 0 To lista.Length - 2
lista(i) = 1 + Rnd() * 50
Next
Return lista
End Function
'método del numero mayor
Public Function numeroMayor() As Integer
Dim ma As Integer = 0
For i = 0 To lista.Length - 2
'Preguntamos si el valor de la lista actual es mayor que el valor de ma
'Si es verdad lo remplazamos
If Me.lista(i) >= ma Then
ma = Me.lista(i)
Else
' si no es el mismo valor
ma = ma
End If
Next
Return ma
End Function
'método del numero menor
Public Function numeroMenor() As Integer
Dim men As Integer = lista(1)
For i = 0 To lista.Length - 2
If lista(i) <= men Then
men = lista(i)
Else
men = men
End If
Next
Return men
End Function
End Class
Public Class FrmMayoryMenor
Private lista() As Integer
Private onumero As ClsNumeroMayMe
Private Sub btningresar_Click(sender As System.Object, e As System.EventArgs) Handles btningresar.Click
onumero = New ClsNumeroMayMe
onumero.xn = txtnumero.Text
lista = onumero.asignacion
Lstlista.Items.Clear()
For i = 0 To lista.Length - 2
Lstlista.Items.Add(lista(i))
Next
Private lista() As Integer
Private onumero As ClsNumeroMayMe
Private Sub btningresar_Click(sender As System.Object, e As System.EventArgs) Handles btningresar.Click
onumero = New ClsNumeroMayMe
onumero.xn = txtnumero.Text
lista = onumero.asignacion
Lstlista.Items.Clear()
For i = 0 To lista.Length - 2
Lstlista.Items.Add(lista(i))
Next
'los label
lblmayor.Text = onumero.numeroMayor
lblmenor.Text = onumero.numeroMenor
End Sub
End Class
lblmayor.Text = onumero.numeroMayor
lblmenor.Text = onumero.numeroMenor
End Sub
End Class
Resultado:
3).Implemente la clase Matematica con los siguientes Métodos:
a. getNumeroPerfecto (se considera número perfecto cuando la suma de sus divisores es igual al número. Por ejemplo 6 tiene como divisores 1, 2, 3 y la suma es 6, el 28 tiene como divisores 1, 2, 4, 7, 14 y la suma es 28).
b. getCubosPerfectos: Son aquellos que sumados los cubos de sus dígitos nos dan el mismo número. Por ejemplo 153 es un cubo perfecto porque 1^3 + 5^3+ 3^3 = 153
Creamos una clase con el nombre “ClsMatematica.vb” dentro de la carpeta clases
3).Implemente la clase Matematica con los siguientes Métodos:
a. getNumeroPerfecto (se considera número perfecto cuando la suma de sus divisores es igual al número. Por ejemplo 6 tiene como divisores 1, 2, 3 y la suma es 6, el 28 tiene como divisores 1, 2, 4, 7, 14 y la suma es 28).
b. getCubosPerfectos: Son aquellos que sumados los cubos de sus dígitos nos dan el mismo número. Por ejemplo 153 es un cubo perfecto porque 1^3 + 5^3+ 3^3 = 153
Creamos una clase con el nombre “ClsMatematica.vb” dentro de la carpeta clases
Un formulario con el nombre:“FrmMatematicaCuPef.vb” .
El diseño: 1 GroupBox dentro de este tendra -- 5 label dos de ellos con AutoSize "False", BorderStyle "Fixed3D"y en el name "lblnumero,lblcubo",1 TextBox con el nombre "txtnumero" y un Button "btncalcular" , como muestra la imagen:
Clase ClsMatematica:
Public Class ClsMatematica
Private numero As Integer
Public Property xnumero As Integer
Get
Return Me.numero
End Get
Set(value As Integer)
Me.numero = value
End Set
End Property
'en esta function se calcula si el numero es prefecto o no es perfecto
Public Function getNumeroPerfecto() As String
Dim numper As String = ""
Dim r As Integer = 0
Dim i As Integer
'recorremos desde 1 antes del numero ingresado en el texto
For i = 1 To Me.xnumero - 1
'preguntamos si el numero ingresado tiene como divisores al I si es así sumamos
If Me.xnumero Mod i = 0 Then
r = r + i
End If
Next
'si la suma es igual al número es perfecto de lo contrario imperfecto
If Me.xnumero = r Then
numper = "PERFECTO"
Else
numper = "IMPERFECTO"
End If
' retorna la variable numper
Return numper
End Function
Private numero As Integer
Public Property xnumero As Integer
Get
Return Me.numero
End Get
Set(value As Integer)
Me.numero = value
End Set
End Property
'en esta function se calcula si el numero es prefecto o no es perfecto
Public Function getNumeroPerfecto() As String
Dim numper As String = ""
Dim r As Integer = 0
Dim i As Integer
'recorremos desde 1 antes del numero ingresado en el texto
For i = 1 To Me.xnumero - 1
'preguntamos si el numero ingresado tiene como divisores al I si es así sumamos
If Me.xnumero Mod i = 0 Then
r = r + i
End If
Next
'si la suma es igual al número es perfecto de lo contrario imperfecto
If Me.xnumero = r Then
numper = "PERFECTO"
Else
numper = "IMPERFECTO"
End If
' retorna la variable numper
Return numper
End Function
'en esta function se calcula si el cubo es prefecto o no es perfecto
Public Function getCuboPerfecto() As String
Dim cubper As String = ""
Dim I As Integer
Dim t As Integer
Dim sum As Integer = 0
Public Function getCuboPerfecto() As String
Dim cubper As String = ""
Dim I As Integer
Dim t As Integer
Dim sum As Integer = 0
'recorremos desde 1 hasta el tamaño de la variable numero ingresado por el texto
For I = 1 To Me.xnumero.ToString.Length
For I = 1 To Me.xnumero.ToString.Length
'Devuelve una cadena que contiene un número especificado de caracteres de una cadena por ejemplo si NUMERO ES IGUAL ="1234", t = Mid(numero, p, n) Toma los n caracteres indicados a partir de la posición p como así t = Mid(numero, 1, 1) entonces t TENDRÍA EL VALOR = 1, otro ejemplo: t = Mid(numero, 2, 1) t TOMARÍA EL VALOR = 2 y así sucesivamente
t = Mid(Me.xnumero, I, 1)
'una ves obtenido el valor lo elevamos a 3 y sumamos sucesivamente
sum = sum + (t ^ 3)
Next
t = Mid(Me.xnumero, I, 1)
'una ves obtenido el valor lo elevamos a 3 y sumamos sucesivamente
sum = sum + (t ^ 3)
Next
'si la suma es igual al número es un cubo perfecto de lo contrario imperfecto
If Me.xnumero = sum Then
cubper = "PERFECTO"
Else
cubper = "IMPERFECTO"
End If
Return cubper
End Function
End Class
Programamos en el Formulario:
Public Class FrmMatematicaCuPef
Private omatematica As ClsMatematica
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
omatematica = New ClsMatematica
omatematica.xnumero = txtnumero.Text
lblcubo.Text = omatematica.getCuboPerfecto
lblnumero.Text = omatematica.getNumeroPerfecto
omatematica.xnumero = Nothing
End Sub
End Class
Resultado:
4). El gobierno ha implementado como parte de su programa social, un subsidio familiar bajo la siguiente reglamentación:
Un formulario con el nombre:“FrmProgramaFamiliar.vb”
Clase Clsfamilia:
Public Class Clsfamilia
Private nhijos As Integer
Private estado As String
Public Property xnhijos As Integer
Get
Return Me.nhijos
End Get
Set(value As Integer)
Me.nhijos = value
End Set
End Property
Public Property xestado As String
Get
Return Me.estado
End Get
Set(value As String)
Me.estado = value
End Set
End Property
' en esta funcion se calcula el sub total de su sueldo
Public Function sueldomensual() As Integer
Dim suel As Integer
If Me.nhijos > 0 And Me.nhijos <= 2 Then
suel = 70
ElseIf Me.nhijos > 2 And Me.nhijos <= 5 Then
suel = 90
ElseIf Me.nhijos > 5 Then
suel = 120
End If
Return suel
End Function
' en esta funcion se calcula el sueldo total
Public Function totalsueldomensual() As Integer
Dim totalsuel As Integer
If Me.estado = "Viuda" Then
totalsuel = Me.sueldomensual + 20
ElseIf Me.estado = "Divorciada" Then
totalsuel = Me.sueldomensual + 10
Else
totalsuel = Me.sueldomensual
End If
Return totalsuel
End Function
End Class
Programamos en el Formulario:
Public Class FrmProgramaFamiliar
Private ofamilia As Clsfamilia
Private Sub FrmProgramaFamiliar_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'cargamos los ítems que va tener el estado(combobox)
cbestado.Text = "Viuda"
cbestado.Items.Add("Viuda")
cbestado.Items.Add("Soltera")
cbestado.Items.Add("Divorciada")
End Sub
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
ofamilia = New Clsfamilia
ofamilia.xestado = cbestado.Text
ofamilia.xnhijos = txthijos.Text
MessageBox.Show("monto mensuales de : S/." & ofamilia.totalsueldomensual & " nuevo soles mensuales ", "Programa Social")
End Sub
End Class
Resultado:
5). Implementar el siguiente ejercicio con POO, Determinar la cantidad de dígitos que tiene un número entero y además mostrar la suma de los dígitos pares e impares. Considerar al cero como dígito par.Creamos una clase con el nombre “ClsDigitos.vb” dentro de la carpeta clases
Clase ClsDigitos:
Public Class ClsDigitos
Private numero As Integer
Public Property xnumero As Integer
Get
Return Me.numero
End Get
Set(value As Integer)
Me.numero = value
End Set
End Property
Public Function cantidad_digitos() As Integer
Dim cantida As Integer
'con esta función calculamos el tamaño de caracteres de un valor con ToString.Length por ejemplo V=128 el tamaño seria = 3 ................
cantida = Me.xnumero.ToString.Length
Return cantida
End Function
Public Function sumarimpar() As Integer
Dim r As Integer
Dim resuim As Integer = 0
'recorremos hasta el tamaño del valor
For i = 1 To Me.cantidad_digitos
'con mid damos un rango para recorrer los caracteres de una variable por ejemplo V= 12345 colocamos de Mid(Me.xnumero, 1, 1) obtendremos 1 o Mid(Me.xnumero, 3, 1) obtendríamos el 3 ...
r = Mid(Me.xnumero, i, 1)
'preguntamos si el residuo es diferente de o suma impares
If r Mod 2 <> 0 Then
resuim = resuim + 1
End If
Next
Return resuim
End Function
Public Function sumarpar() As Integer
Dim rp As Integer
Dim resulpar As Integer = 0
For i = 1 To Me.cantidad_digitos
rp = Mid(Me.xnumero, i, 1)
'preguntamos igual 0 por que lo tomamos como par
If rp = 0 Then
resulpar = resulpar + 1
Else
If rp Mod 2 = 0 Then
resulpar = resulpar + 1
End If
End If
Next
Return resulpar
End Function
End Class
Programamos en el Formulario:
Public Class FrmDigitoResul
Private odigito As ClsDigitos
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
odigito = New ClsDigitos
odigito.xnumero = txtnumero.Text
lblcandidad.Text = odigito.cantidad_digitos
lblimpar.Text = odigito.sumarimpar
lblpar.Text = odigito.sumarpar
End Sub
'todo esto debe estar en evento KeyPress
Private Sub txtnumero_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtnumero.KeyPress
'primer if si es que esta vacío el txtnumero y si quieres ingresar un cero no puedas (el cero se ingresa después de cualquier numero ingresado)
If Me.txtnumero.Text.Length = 0 And e.KeyChar = "0" Then
e.Handled = True
MessageBox.Show("no esta permitido ingresar el cero primero", "aviso", 0)
Else
'Char.IsNumber(e.KeyChar) solo me ingrese numero nada de letras colocándolo e.Handled = False para se active el requisito
If Char.IsNumber(e.KeyChar) Then
e.Handled = False
' Char.IsControl(e.KeyChar) permita tambien el ingreso de retroceso
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
' si no cumple con las siguinte if que no me deje ingresar o digitar nada en el texto
e.Handled = True
End If
End If
End Sub
End Class
Resultado:
6).Implemente la clase Alumno con el atributo definidos en la clase (edad)
Creamos una clase con el nombre “ClsAlumno.vb” dentro de la carpeta clases.
Clase ClsAlumno:
Public Class ClsAlumno
Private edad() As Integer
Public Function generaredades(ByVal n As Integer) As Integer()
Dim i As Integer
Me.edad = New Integer(n) {}
For i = 0 To Me.edad.Length - 1
Me.edad(i) = 1 + Rnd() * 100
Next
Return Me.edad
End Function
Public Function CalcularSuma() As Integer
Dim t As Integer = 0
Dim i As Integer
For i = 0 To Me.edad.Length - 1
t = t + Me.edad(i)
Next
Return t
End Function
Public Function CalcularPromedio() As Double
Dim p As Double
p = Me.CalcularSuma / (Me.edad.Length)
Return p
End Function
Public Function CalcularMayor() As Integer
Dim i As Integer
Dim f As Integer = 0
Dim mostrar As Integer
For i = 0 To Me.edad.Length - 1
If Me.edad(i) > f Then
mostrar = Me.edad(i)
f = edad(i)
Else
mostrar = f
End If
Next
Return mostrar
End Function
Public Function CalcualrMenor() As Integer
Dim i As Integer
Dim f As Integer = Me.edad(1)
Dim mostrarm As Integer
For i = 0 To Me.edad.Length - 1
If Me.edad(i) <= f Then
mostrarm = Me.edad(i)
f = edad(i)
Else
mostrarm = f
End If
Next
Return mostrarm
End Function
Public Function asc() As Integer()
'con esta Array.Sort(Of Integer)(edad) ponemos el array en froma Ascendente
Array.Sort(Of Integer)(edad)
Return Me.edad
End Function
End Class
Programamos en el Formulario:
Public Class FrmAlumno
Private oalumno As ClsAlumno
Private edad() As Integer
Private Sub FrmAlumno_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'botón btnasc este desactivado al momento de cargar el formulario
btnasc.Enabled = False
End Sub
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
oalumno = New ClsAlumno
'generaredades(3) hay em mostrara 4 edades por que es 0.1.2.3
edad = oalumno.generaredades(3)
lstlista.Items.Clear()
For i = 0 To edad.Length - 1
lstlista.Items.Add(edad(i))
Next
lblsuma.Text = oalumno.CalcularSuma
lblpromedio.Text = oalumno.CalcularPromedio
lblmayor.Text = oalumno.CalcularMayor
lblmenor.Text = oalumno.CalcualrMenor
'boton btnasc se active
btnasc.Enabled = True
End Sub
Private Sub btnasc_Click(sender As System.Object, e As System.EventArgs) Handles btnasc.Click
lstlista.Items.Clear()
edad = oalumno.asc
For i = 0 To edad.Length - 1
lstlista.Items.Add(edad(i))
Next
End Sub
End Class
Resultado:
DESCARGAR: EJEMPLO
If Me.xnumero = sum Then
cubper = "PERFECTO"
Else
cubper = "IMPERFECTO"
End If
Return cubper
End Function
End Class
Programamos en el Formulario:
Public Class FrmMatematicaCuPef
Private omatematica As ClsMatematica
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
omatematica = New ClsMatematica
omatematica.xnumero = txtnumero.Text
lblcubo.Text = omatematica.getCuboPerfecto
lblnumero.Text = omatematica.getNumeroPerfecto
omatematica.xnumero = Nothing
End Sub
End Class
Resultado:
4). El gobierno ha implementado como parte de su programa social, un subsidio familiar bajo la siguiente reglamentación:
- Las familias que tienen hasta 2 hijos reciben S/. 70.00, las que tienen entre 3 y 5 hijos reciben S/. 90.00 y las que tienen 6 hijos o más reciben S/.120.00 mensual.
- Si la madre de familia fuera viuda, la familia recibe S/. 20.00 adicionales o si fuera divorciada recibe S/. 10.00 adicionales .
Un formulario con el nombre:“FrmProgramaFamiliar.vb”
El diseño : 1 GroupBox dentro de este tendra -- 2 label, 1 TextBox con el nombre "txthijos", 1 ComboBox con
el nombre de "cbestado" y un Button "btncalcular" , como muestra la
imagen:
Public Class Clsfamilia
Private nhijos As Integer
Private estado As String
Public Property xnhijos As Integer
Get
Return Me.nhijos
End Get
Set(value As Integer)
Me.nhijos = value
End Set
End Property
Public Property xestado As String
Get
Return Me.estado
End Get
Set(value As String)
Me.estado = value
End Set
End Property
' en esta funcion se calcula el sub total de su sueldo
Public Function sueldomensual() As Integer
Dim suel As Integer
If Me.nhijos > 0 And Me.nhijos <= 2 Then
suel = 70
ElseIf Me.nhijos > 2 And Me.nhijos <= 5 Then
suel = 90
ElseIf Me.nhijos > 5 Then
suel = 120
End If
Return suel
End Function
' en esta funcion se calcula el sueldo total
Public Function totalsueldomensual() As Integer
Dim totalsuel As Integer
If Me.estado = "Viuda" Then
totalsuel = Me.sueldomensual + 20
ElseIf Me.estado = "Divorciada" Then
totalsuel = Me.sueldomensual + 10
Else
totalsuel = Me.sueldomensual
End If
Return totalsuel
End Function
End Class
Programamos en el Formulario:
Public Class FrmProgramaFamiliar
Private ofamilia As Clsfamilia
Private Sub FrmProgramaFamiliar_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'cargamos los ítems que va tener el estado(combobox)
cbestado.Text = "Viuda"
cbestado.Items.Add("Viuda")
cbestado.Items.Add("Soltera")
cbestado.Items.Add("Divorciada")
End Sub
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
ofamilia = New Clsfamilia
ofamilia.xestado = cbestado.Text
ofamilia.xnhijos = txthijos.Text
MessageBox.Show("monto mensuales de : S/." & ofamilia.totalsueldomensual & " nuevo soles mensuales ", "Programa Social")
End Sub
End Class
Resultado:
5). Implementar el siguiente ejercicio con POO, Determinar la cantidad de dígitos que tiene un número entero y además mostrar la suma de los dígitos pares e impares. Considerar al cero como dígito par.Creamos una clase con el nombre “ClsDigitos.vb” dentro de la carpeta clases
En el diseño del formulario con el nombre:“FrmProgramaFamiliar.vb”
Tenemos los siguientes cuadros de herramientas : 7 label y 3 de ellos con el nombre "lblcandidad, lblimpar ,lblpar " con su respectivas propiedades antes enseñadas , 1 TextBox con el nombre "txtnumero" y un Button "btncalcular" , como muestra la
imagen:
Clase ClsDigitos:
Public Class ClsDigitos
Private numero As Integer
Public Property xnumero As Integer
Get
Return Me.numero
End Get
Set(value As Integer)
Me.numero = value
End Set
End Property
Public Function cantidad_digitos() As Integer
Dim cantida As Integer
'con esta función calculamos el tamaño de caracteres de un valor con ToString.Length por ejemplo V=128 el tamaño seria = 3 ................
cantida = Me.xnumero.ToString.Length
Return cantida
End Function
Public Function sumarimpar() As Integer
Dim r As Integer
Dim resuim As Integer = 0
'recorremos hasta el tamaño del valor
For i = 1 To Me.cantidad_digitos
'con mid damos un rango para recorrer los caracteres de una variable por ejemplo V= 12345 colocamos de Mid(Me.xnumero, 1, 1) obtendremos 1 o Mid(Me.xnumero, 3, 1) obtendríamos el 3 ...
r = Mid(Me.xnumero, i, 1)
'preguntamos si el residuo es diferente de o suma impares
If r Mod 2 <> 0 Then
resuim = resuim + 1
End If
Next
Return resuim
End Function
Public Function sumarpar() As Integer
Dim rp As Integer
Dim resulpar As Integer = 0
For i = 1 To Me.cantidad_digitos
rp = Mid(Me.xnumero, i, 1)
'preguntamos igual 0 por que lo tomamos como par
If rp = 0 Then
resulpar = resulpar + 1
Else
If rp Mod 2 = 0 Then
resulpar = resulpar + 1
End If
End If
Next
Return resulpar
End Function
End Class
Programamos en el Formulario:
Public Class FrmDigitoResul
Private odigito As ClsDigitos
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
odigito = New ClsDigitos
odigito.xnumero = txtnumero.Text
lblcandidad.Text = odigito.cantidad_digitos
lblimpar.Text = odigito.sumarimpar
lblpar.Text = odigito.sumarpar
End Sub
'todo esto debe estar en evento KeyPress
Private Sub txtnumero_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtnumero.KeyPress
'primer if si es que esta vacío el txtnumero y si quieres ingresar un cero no puedas (el cero se ingresa después de cualquier numero ingresado)
If Me.txtnumero.Text.Length = 0 And e.KeyChar = "0" Then
e.Handled = True
MessageBox.Show("no esta permitido ingresar el cero primero", "aviso", 0)
Else
'Char.IsNumber(e.KeyChar) solo me ingrese numero nada de letras colocándolo e.Handled = False para se active el requisito
If Char.IsNumber(e.KeyChar) Then
e.Handled = False
' Char.IsControl(e.KeyChar) permita tambien el ingreso de retroceso
ElseIf Char.IsControl(e.KeyChar) Then
e.Handled = False
Else
' si no cumple con las siguinte if que no me deje ingresar o digitar nada en el texto
e.Handled = True
End If
End If
End Sub
End Class
Resultado:
6).Implemente la clase Alumno con el atributo definidos en la clase (edad)
Creamos una clase con el nombre “ClsAlumno.vb” dentro de la carpeta clases.
En el diseño del formulario con el nombre:“FrmAlumno.vb”
Tenemos los siguientes cuadros de herramientas : 8 label y 4 de ellos con el nombre "lblsuma, lblpromedio, lblmayor, lblmenor" con su respectivas propiedades antes enseñadas, 1 ListBox con el nombre "lstlista" y 2 Button "btncalcular, btnasc" , como muestra la
imagen:
Clase ClsAlumno:
Public Class ClsAlumno
Private edad() As Integer
Public Function generaredades(ByVal n As Integer) As Integer()
Dim i As Integer
Me.edad = New Integer(n) {}
For i = 0 To Me.edad.Length - 1
Me.edad(i) = 1 + Rnd() * 100
Next
Return Me.edad
End Function
Public Function CalcularSuma() As Integer
Dim t As Integer = 0
Dim i As Integer
For i = 0 To Me.edad.Length - 1
t = t + Me.edad(i)
Next
Return t
End Function
Public Function CalcularPromedio() As Double
Dim p As Double
p = Me.CalcularSuma / (Me.edad.Length)
Return p
End Function
Public Function CalcularMayor() As Integer
Dim i As Integer
Dim f As Integer = 0
Dim mostrar As Integer
For i = 0 To Me.edad.Length - 1
If Me.edad(i) > f Then
mostrar = Me.edad(i)
f = edad(i)
Else
mostrar = f
End If
Next
Return mostrar
End Function
Public Function CalcualrMenor() As Integer
Dim i As Integer
Dim f As Integer = Me.edad(1)
Dim mostrarm As Integer
For i = 0 To Me.edad.Length - 1
If Me.edad(i) <= f Then
mostrarm = Me.edad(i)
f = edad(i)
Else
mostrarm = f
End If
Next
Return mostrarm
End Function
Public Function asc() As Integer()
'con esta Array.Sort(Of Integer)(edad) ponemos el array en froma Ascendente
Array.Sort(Of Integer)(edad)
Return Me.edad
End Function
End Class
Programamos en el Formulario:
Public Class FrmAlumno
Private oalumno As ClsAlumno
Private edad() As Integer
Private Sub FrmAlumno_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'botón btnasc este desactivado al momento de cargar el formulario
btnasc.Enabled = False
End Sub
Private Sub btncalcular_Click(sender As System.Object, e As System.EventArgs) Handles btncalcular.Click
oalumno = New ClsAlumno
'generaredades(3) hay em mostrara 4 edades por que es 0.1.2.3
edad = oalumno.generaredades(3)
lstlista.Items.Clear()
For i = 0 To edad.Length - 1
lstlista.Items.Add(edad(i))
Next
lblsuma.Text = oalumno.CalcularSuma
lblpromedio.Text = oalumno.CalcularPromedio
lblmayor.Text = oalumno.CalcularMayor
lblmenor.Text = oalumno.CalcualrMenor
'boton btnasc se active
btnasc.Enabled = True
End Sub
Private Sub btnasc_Click(sender As System.Object, e As System.EventArgs) Handles btnasc.Click
lstlista.Items.Clear()
edad = oalumno.asc
For i = 0 To edad.Length - 1
lstlista.Items.Add(edad(i))
Next
End Sub
End Class
Resultado:
DESCARGAR: EJEMPLO
0 comentarios:
Publicar un comentario