Desarrollo de Ejercicios Simples Con Vb

16
Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 1 /16 DESARROLLO DE EJERCICIOS SIMPLES CON VB. NET 1. Escribir un programa que pida dos cadenas (de longitud máxima 10 caracteres) y muestre por pantalla el resultado de las siguientes operaciones: Obtener la longitud de ambas cadenas Comparar alfabéticamente ambas cadenas indicando si son iguales o bien cuál es la mayor y cuál la menor. Concatenar la segunda cadena al final de la primera, dejando un espacio entre ambas. Copiar el contenido de la segunda cadena en la primera. Public Class Ejercicio01 Private Sub btnCalcular_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click CalcularProcesoExterno() CalcularProcesoInterno() End Sub Private Sub CalcularProcesoExterno() 'Primero Obtenemos la Longitud de las Cadenas '============================================ Me.txtLongitud1.Text = Me.txtCadena1.Text.Length.ToString Me.txtLongitud2.Text = Strings.Len(Me.txtCadena2.Text.ToString) 'Segundo Calculamos la Cadena Mayor y Menor '============================================ If Me.txtCadena1.Text > Me.txtCadena2.Text Then Me.txtCadenaMayor.Text = Me.txtCadena1.Text Me.txtCadenaMenor.Text = Me.txtCadena2.Text Else Me.txtCadenaMayor.Text = Me.txtCadena2.Text Me.txtCadenaMenor.Text = Me.txtCadena1.Text End If 'Tercero Concatenar la Cadena 2 a la Primera '============================================ Me.txtConcatenar.Text = Me.txtCadena1.Text & " " & Me.txtCadena2.Text 'Cuarto Copiar el Contenido de la 2 Cadena '============================================ Me.txtCadena1.Text = Me.txtCadena2.Text Me.txtCopiarCadena.Text = Me.txtCadena2.Text End Sub Private Sub CalcularProcesoInterno() 'Creacion y Declaracion de las Variables Uso '============================================ Dim Cadena1, Cadena2 As String Dim Longitud1, Longitud2 As Integer Dim CadenaMayor, CadenaMenor As String Dim CadenaConcatenadas As String 'Asignamos valores a las Variables Solicitada '============================================ Cadena1 = "INFORMATICA" Cadena2 = "SISTEMAS" 'Primero Obtenemos la Longitud de las Cadenas

Transcript of Desarrollo de Ejercicios Simples Con Vb

Page 1: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 1 /16

DESARROLLO DE EJERCICIOS SIMPLES CON VB. NET

1. Escribir un programa que pida dos cadenas (de longitud máxima 10 caracteres) y muestre por pantalla el resultado de las siguientes operaciones: • Obtener la longitud de ambas cadenas • Comparar alfabéticamente ambas cadenas

indicando si son iguales o bien cuál es la mayor y cuál la menor.

• Concatenar la segunda cadena al final de la primera, dejando un espacio entre ambas.

• Copiar el contenido de la segunda cadena en la primera.

Public Class Ejercicio01 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click

CalcularProcesoExterno() CalcularProcesoInterno() End Sub Private Sub CalcularProcesoExterno() 'Primero Obtenemos la Longitud de las Cadenas '============================================ Me.txtLongitud1.Text = Me.txtCadena1.Text.Length.ToString Me.txtLongitud2.Text = Strings.Len( Me.txtCadena2.Text.ToString) 'Segundo Calculamos la Cadena Mayor y Menor '============================================ If Me.txtCadena1.Text > Me.txtCadena2.Text Then Me.txtCadenaMayor.Text = Me.txtCadena1.Text Me.txtCadenaMenor.Text = Me.txtCadena2.Text Else Me.txtCadenaMayor.Text = Me.txtCadena2.Text Me.txtCadenaMenor.Text = Me.txtCadena1.Text End If 'Tercero Concatenar la Cadena 2 a la Primera '============================================ Me.txtConcatenar.Text = Me.txtCadena1.Text & " " & Me.txtCadena2.Text 'Cuarto Copiar el Contenido de la 2 Cadena '============================================ Me.txtCadena1.Text = Me.txtCadena2.Text Me.txtCopiarCadena.Text = Me.txtCadena2.Text End Sub Private Sub CalcularProcesoInterno() 'Creacion y Declaracion de las Variables Uso '============================================ Dim Cadena1, Cadena2 As String Dim Longitud1, Longitud2 As Integer Dim CadenaMayor, CadenaMenor As String Dim CadenaConcatenadas As String 'Asignamos valores a las Variables Solicitada '============================================ Cadena1 = "INFORMATICA" Cadena2 = "SISTEMAS" 'Primero Obtenemos la Longitud de las Cadenas

Page 2: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 2 /16

'============================================ Longitud1 = Cadena1.Length Longitud2 = Strings.Len(Cadena2) 'Segundo Calculamos la Cadena Mayor y Menor '============================================ If Cadena1 > Cadena2 Then CadenaMayor = Cadena1 CadenaMenor = Cadena2 Else CadenaMayor = Cadena2 CadenaMenor = Cadena1 End If 'Tercero Concatenar la Cadena 2 a la Primera '============================================ CadenaConcatenadas = Cadena1 & " " & Cadena2 'Cuarto Copiar el Contenido de la 2 Cadena '============================================ Cadena1 = Cadena2 MsgBox( "Longitud de la Primera Cadena: " & Longitud1.ToString & Chr(13) & _ "Longitud de la Segunda Cadena: " & Longitud2.ToString & Chr(13) & _ "La Cadena Mayor es: " & CadenaMayor & Chr(13) & _ "La Cadena Menor es: " & CadenaMenor & Chr(13) & _ "La Cadena Concatenada es: " & CadenaConcatenadas & Chr(13) & _ "La Cadena Copiada es: " & Cadena1) End Sub

End Class

2. Diseñar un programa que capture en pantalla un total de 10 números, y diga cuanto son positivos, negativos y cuántos son iguales a cero.

Public Class Ejercicio02 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click

'Creacion y Declaracion de las Variables Uso '==========================================

Dim AcumulaPositivo, AcumulaNegativo, AcumulaCero As Integer 'Recorremos Conjunto Controles del Contenedor '============================================ For Each text As Object In Me.dgvIngreso.Controls If TypeOf text Is TextBox Then If Val(text.Text) < 0 Then AcumulaNegativo += 1 ElseIf Val(text.Text) = 0 Then AcumulaCero += 1 Else AcumulaPositivo += 1 End If End If Next Me.txtPositivo.Text = AcumulaPositivo.ToString Me.txtNegativo.Text = AcumulaNegativo.ToString Me.txtCero.Text = AcumulaCero.ToString End Sub

End Class

Page 3: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 3 /16

3. Escribir una función que calcule el factorial de un número ingresado por pantalla y utilizar esto para calcular lo siguiente: 1. Factorial de un número 2. Cálculo de e 3. Cálculo de e^x Nota 1: El cálculo debe hacerse con la siguiente expresión: Nota 2: e^x puede calcularse mediante fórmula: Nota 3: La precisión con la que se obtiene el resultado (e o e^x) para este caso existirá interacciones hasta el número ingresado.

Public Class Ejercicio03 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click

Dim Numero As Integer = CInt ( Me.txtNumero.Text) Me.txtFactorial.Text = FuncionFactorial(Numero).ToStr ing Me.txtFuncionE.Text = FuncionE(Numero).ToString Me.txtFuncionEx.Text = FuncionEX(Numero).ToString End Sub Shared Function FuncionFactorial( ByVal Numero As Integer ) As Long Dim Factorial As Long = 1 For i As Integer = 2 To Numero Factorial *= i Next Return Factorial End Function Shared Function FuncionE( ByVal Numero As Integer ) As Decimal Dim Retorna As Decimal = 1 For i As Integer = 2 To Numero Retorna += 1 / FuncionFactorial(i) Next Return Retorna End Function Shared Function FuncionEX( ByVal Numero As Integer ) As Decimal Dim Retorna As Decimal = 1 For i As Integer = 2 To Numero Retorna += Math.Pow(Numero, i) / Funcio nFactorial(i) Next Return Retorna End Function

End Class

4. Elabore un programa que calcule y muestre por pantalla el más grande, el más pequeño y la media de 7 números; los números se deben introducir por el usuario.

Public Class Ejercicio04 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click

'Creacion y Declaracion de las Variables Uso '============================================ Dim NumeroMenor, NumeroMayor, Media As Decimal

Page 4: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 4 /16

'Iniciación de las Variables Uso '============================================ NumeroMenor = Me.txtNumero1.Text NumeroMayor = Me.txtNumero1.Text 'Recorremos Conjunto Controles del Contenedor '============================================ For Each text As Object In Me.dgvIngreso.Controls If TypeOf text Is TextBox Then If Val(text.Text) < NumeroMenor Then NumeroMenor = Val(text.Text) If Val(text.Text) > NumeroMayor Then NumeroMayor = Val(text.Text) Media += Val(text.Text) End If Next Me.txtMayor.Text = NumeroMayor.ToString Me.txtMenor.Text = NumeroMenor.ToString Me.txtMedia.Text = (Media / 7).ToString End Sub

End Class

5. Realizar una Función que devuelva la suma o resultante de dos vectores ingresados por pantalla, nota deben ingresarse los dos vectores y el ángulo entre ambas.

Imports System.Math Public Class Ejercicio05 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click

Me.txtResultante.Text = FuncionResultante( CDbl ( Me.txtVector1.Text), CDbl ( Me.txtVector2.Text), CDbl ( Me.txtAngulo.Text)).ToString

End Sub Shared Function FuncionResultante( ByVal Vector1 As Double , _ ByVal Vector2 As Double , _ ByVal Angulo As Double ) As Double Dim Retorna As Double Retorna=Pow((Pow(Vector1,2) + Pow(Vector2,2) + 2*Ve ctor1*Vector2*Cos(Angulo * PI/180)), 0.5) Return Retorna End Function End Class 6. Encontrar el ángulo entre dos vectores de a y b

unidades de longitud, cuando su resultante tiene c unidades de longitud, ingresar los valores de a, b y c.

Imports System.Math Public Class Ejercicio06 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click

Me.txtAngulo.Text = FuncionAngulo( CDbl ( Me.txtVector1.Text), CDbl ( Me.txtVector2.Text), CDbl ( Me.txtResultante.Text)).ToString

End Sub Shared Function FuncionAngulo( ByVal Vector1 As Double , _ ByVal Vector2 As Double , _ ByVal Resultante As Double ) As Double Dim Retorna As Double Retorna = Math.Acos((Pow(Resultante,2) - Pow(Vector 1,2) - Pow(Vector2,2)) /2 *Vector1*Vector2) Return Retorna End Function End Class

Page 5: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 5 /16

7. Imprimir el área de un triangulo isósceles cuya base y altura se ingresen por pantalla.

Sabiendo que Área es igual a Base por Altura dividido por 2. Public Class Ejercicio07 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Me.txtArea.Text = FuncionAreaTriangulo(Val( Me.txtBase.Text), Val( Me.txtAltura.Text)).ToString End Sub Shared Function FuncionAreaTriangulo( ByVal Base As Decimal , ByVal Altura As Decimal ) As Decimal Dim Retorna As Double Retorna = Base * Altura / 2 Return Retorna End Function End Class 8. La secuencia 3n + 1 de un número natural n es la secuencia que se

obtiene empezando por n y repitiendo la siguiente regla: • Si n = 1, parar. • Si n es par, el siguiente número de la secuencia es n/2. • Si n es impar, el siguiente número de la secuencia es 3n + 1.

Por ejemplo, la secuencia 3n + 1 de 22 es 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 Ingresar un número y determinar su secuencia o longitud cíclica.

Public Class Ejercicio08 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim n As Integer n = CInt ( Me.txtNumero.Text) While n <> 1 If n Mod 2 = 0 Then n = n / 2 Else n = 3 * n + 1 End If Me.lstUlam.Items.Add(n) End While End Sub Private Sub btnCancelar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancelar.Click Me.lstUlam.Items.Clear() End Sub End Class

9. Realizar un programa que imprima la serie de fibonacci y la suma de la misma, para ello introducir los dos

primeros números y cuántos números quieres que aparezcan en la serie. Ejemplo: la serie de los números 2 y 3 sería: 2, 3, 5, 8, 13 (hasta 5 números en la serie), y la suma de la serie sería igual a 31.

Public Class Ejercicio09 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Numero1 As Integer = CInt ( Me.txtNumero1.Text) Dim Numero2 As Integer = CInt ( Me.txtNumero2.Text) Dim Cantidad As Integer = CInt ( Me.txtCantidad.Text) - 2 Dim Auxiliar As Integer = 0 Me.lstFibonacci.Items.Add(Numero1) Me.lstFibonacci.Items.Add(Numero2) For i As Integer = 1 To Cantidad Auxiliar = Numero2 Me.lstFibonacci.Items.Add(Numero1 + Numero2) Numero2 = Numero1 + Numero2 Numero1 = Auxiliar Next End Sub

Page 6: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 6 /16

10. Diseñar un programa denominado estadística que imprima

por la pantalla el porcentaje de alumnos con la calificación APROBADO, de alumnos con la calificación NOTABLE, de alumnos con SOBRESALIENTE y de alumnos con SUSPENSO. Ingresar mínimo 15 alumnos y no permitir el ingreso de promedios negativos. APROBADO: Nota mayor a 10 NOTABLE: Nota entre el rango de 15 a 20. SOBRESALIENTE: Nota entre el rango de 11 a 14. SUSPENSO: Nota entre el rango de 00 a 10.

Public Class Ejercicio10 Private Sub btnAgregar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAgregar.Click 'Verificamos que Nota se Registre de 0 a 20 '========================================== If Val( Me.txtNota.Text) >= 0 And Val( Me.txtNota.Text) <= 20 Then Me.lstNotas.Items.Add( Me.txtNota.Text) 'Agregamos una Nota al Control List. Me.txtNota.Text = "" 'Limpiamos el Texto del Control Nota. Me.txtNota.Focus() 'Colocamos el Foco en el Control Nota. Me.lblElementos.Text = "Notas: " & CStr ( Me.lstNotas.Items.Count) Else MsgBox( "Ingresar Nota de 0 a 20" ) End If End Sub Private Sub btnQuitar_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnQuitar.Click If Me.lstNotas.Items.Count > 0 Then Me.lstNotas.Items.Remove( Me.lstNotas.SelectedItem) Me.lblElementos.Text = "Notas: " & CStr ( Me.lstNotas.Items.Count) End If End Sub Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click 'Registramos la Condicion de Nº Alumnos > 15 '============================================ If Me.lstNotas.Items.Count < 15 Then MsgBox( "Debe Ingresar minimamente la Cantidad de 15 Alumno s" ) Me.txtNota.Focus() Exit Sub End If 'Creacion y Declaracion de las Variables Uso '============================================ Dim Notable, Sobresaliente, Suspenso As Short 'Recorremos Conjunto Controles del Contenedor '============================================ For i As Integer = 0 To Me.lstNotas.Items.Count - 1 Select Case Me.lstNotas.Items.Item(i) Case 15 To 20 : Notable += 1 Case 11 To 14 : Sobresaliente += 1 Case 0 To 10 : Suspenso += 1 End Select Next Me.txtAprobado.Text = (Notable + Sobresaliente).ToStr ing Me.txtNotable.Text = Notable.ToString Me.txtSobresaliente.Text = Sobresaliente.ToString Me.txtSuspenso.Text = Suspenso.ToString End Sub Private Sub txtNota_KeyPress( ByVal sender As Object , ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNota.KeyPress If e.KeyChar = Chr(Keys.Enter) Then 'Invocamos el Metodo del Control Button. btnAgregar_Click(btnAgregar, Nothing ) End If End Sub End Class

Page 7: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 7 /16

11. Realizar un programa que verifique si un número ingresado es primo truncable, un número truncable es un número al que le puedes ir quitando uno a uno los números por la derecha y cada número resulta ser también primo. Ejemplo el número 7393913.

Public Class Ejercicio11 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click If FuncionPrimoTruncable( CInt ( Me.txtNumero.Text)) Then MsgBox( "Si es Primo Truncable" ) Else MsgBox( "No es Primo Truncable" ) End If End Sub Shared Function FuncionPrimoTruncable( ByVal Numero As Integer ) As Boolean For i As Integer = 0 To Strings.Len(Numero) If Not FuncionPrimo( CInt (Strings.Left(Numero.ToString, Strings.Len(Numero) + 1 - i))) Then Return False End If Next Return True End Function Shared Function FuncionPrimo( ByVal Numero As Integer ) As Boolean For i As Integer = 2 To Numero / 2 If Numero Mod i = 0 Then Return False End If Next Return True End Function End Class

12. Diseñar un programa que permita resolver una serie de la forma:

Imports System.Math Public Class Ejercicio12 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim n As Integer = CInt ( Me.txtNumero.Text) Dim Serie As Double = 0 For k As Integer = 1 To n Serie += Log(k) * Pow(k, n - k) / Pow(n , k) * Ejercicio03.FuncionFactorial(k) Next Me.txtSerie.Text = Serie.ToString End Sub End Class

(* Realizar la Prueba con el Número 15 … ¿Que resul tado se imprimirá por pantalla?. Que solución planteas para mejorar el Algoritmo o la Programació n.

Page 8: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 8 /16

13. Escribir un programa que calcule el número de billetes de 200, 100, 50, 20, 10 así como de monedas de 5, 2, 1, 0.5 y 0.1 soles para desglosar una cantidad, N de soles ingresada en pantalla, (menor de 25045), de forma que se necesite la menor cantidad de monedas y billetes de cada tipo.

Imports System.Math Public Class Ejercicio13 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click If Val( Me.txtDinero.Text) > 0 Then Dim Dinero As Decimal = Me.txtDinero.Text Dim Billete200, Billete100, Billete50, Billete20, Bill ete10 As Short Dim Moneda5, Moneda2, Moneda1, Moneda05, Moneda01 As Short 'Truncate Obtiene Parte Entera de un Decimal '============================================ Billete200 = Truncate(Dinero / 200) Dinero -= Billete200 * 200 Billete100 = Truncate(Dinero / 100) Dinero -= Billete100 * 100 Billete50 = Truncate(Dinero / 50) Dinero -= Billete50 * 50 Billete20 = Truncate(Dinero / 20) Dinero -= Billete20 * 20 Billete10 = Truncate(Dinero / 10) Dinero -= Billete10 * 10 Moneda5 = Truncate(Dinero / 5) Dinero -= Moneda5 * 5 Moneda2 = Truncate(Dinero / 2) Dinero -= Moneda2 * 2 Moneda1 = Truncate(Dinero / 1) Dinero -= Moneda1 * 1 Moneda05 = Truncate(Dinero / 0.5) Dinero -= Moneda05 * 0.5 Moneda01 = Dinero / 0.1 'Cargamos las Cajas de Texto con Resultados '============================================ Me.txtBillete200.Text = Billete200.ToString Me.txtBillete100.Text = Billete100.ToString Me.txtBillete50.Text = Billete50.ToString Me.txtBillete20.Text = Billete20.ToString Me.txtBillete10.Text = Billete10.ToString Me.txtMoneda5.Text = Moneda5.ToString Me.txtMoneda2.Text = Moneda2.ToString Me.txtMoneda1.Text = Moneda1.ToString Me.txtMoneda05.Text = Moneda05.ToString Me.txtMoneda01.Text = Moneda01.ToString End If End Sub End Class

14. Mostrar en forma de Tabla, el cuadrado, el cubo y la raíz

cuadrática de los N primeros números naturales ingresados por pantalla, el valor de N debe de encontrarse dentro del rango de 15 a 45 y en el rango de 115 a 249, además si se ingresa el número 18 o 28 debe de terminar la ejecución del programa hasta dos números antes de los indicados.

Public Class Ejercicio14 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Me.dgvTabla.Rows.Clear() Dim Numero As Short = Me.txtNumero.Text If (Numero > 15 And Numero < 45) Or (Numero > 115 And Numero < 249) Then If Numero = 18 Or Numero = 28 Then Numero -= 2 For i As Integer = 1 To Numero Me.dgvTabla.Rows.Add(i, i ^ 2, i ^ 3, i ^ 0.5) Next End If End Sub End Class

Page 9: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 9 /16

15. Escribir un programa que pida el valor de un ángulo en Grados, minutos y segundo, y los convierta solo en minutos. El formato a ingresar en pantalla debe de ser un número de 6 dígitos, los dos primeros dígitos representan al grado, los dos siguientes a los minutos y lo últimos dos a los segundos.

Public Class Ejercicio15 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Grado, Minuto, Segundo As Short Dim Segundos As Integer 'Funcion Mid de la Clase Strings (=Substring) '============================================ Grado = CShort (Strings.Mid( Me.mtxtAngulo.Text, 1, 2)) Minuto = CShort (Strings.Mid( Me.mtxtAngulo.Text, 4, 2)) Segundo = CShort (Strings.Mid( Me.mtxtAngulo.Text, 7, 2)) Segundos = Grado * 3600 + Minuto * 60 + Seg undo Me.txtSegundo.Text = Segundos.ToString End Sub End Class

16. Sea un sistema de ecuaciones de la forma: que puede resolverse usando las siguientes fórmulas:

Escribir un programa que lea los coeficientes (a, b, c, d, e, f) y resuelva el sistema. El programa deberá indicar los casos en los que el sistema de ecuaciones no tenga solución.

Public Class Ejercicio16 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim fx, fy As Decimal Dim numerador, denominador As Decimal numerador = Val( Me.txtC.Text) * Val( Me.txtE.Text) - Val( Me.txtB.Text) * Val( Me.txtF.Text) denominador = Val( Me.txtA.Text) * Val( Me.txtE.Text) - Val( Me.txtB.Text) * Val( Me.txtD.Text) If denominador > 0 Then fx = numerador / denominador numerador = Val( Me.txtA.Text) * Val( Me.txtF.Text) - Val( Me.txtC.Text) * Val( Me.txtD.Text) denominador = Val( Me.txtA.Text) * Val( Me.txtE.Text) - Val( Me.txtB.Text) * Val( Me.txtD.Text) If denominador > 0 Then fy = numerador / denominador Me.txtX.Text = fx.ToString Me.txtY.Text = fy.ToString End Sub End Class 17. Dado la función U = f (x, y) y dada la función V = f (x, y):

Escribir un programa que calcule los valores de las funciones U y V, una vez conocidas las coordenadas de un punto (x, y). Ingresar las coordenadas en pantalla.

Public Class Ejercicio17 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click

Donde

Page 10: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 10 /16

Dim x, y, fu, fv As Decimal x = Val( Me.txtX.Text) y = Val( Me.txty.Text) fu = CDec(IIf(x * y < 15, 10, y ^ 2)) fv = CDec(IIf(x * y < 15, 1, y ^ 2)) Me.txtFuncionU.Text = fu.ToString Me.txtFuncionV.Text = fv.ToString End Sub End Class

18. Escribir un programa que pida un año y diga si es bisiesto.

Nota: Un año es bisiesto si es múltiplo de 4 salvo el caso en que sea múltiplo de 100, que no es bisiesto, y no sea múltiplo de 400. Por ejemplo, el año 1900 no fue bisiesto, el 2000 sí y el 2100 no lo es.

Public Class Ejercicio18 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click MsgBox( "El Año " & IIf(Bisiesto(Val( Me.txtAnio.Text)), "Es" , "No Es" ).ToString & " Bisiesto" ) End Sub Shared Function Bisiesto( ByVal Periodo As Short ) As Boolean If Periodo Mod 4 = 0 And Periodo Mod 100 <> 0 Or Periodo Mod 400 = 0 Then Return True Else Return False End If End Function End Class

19. La fecha de cualquier Domingo de Pascua se calcula de la

siguiente forma: Sea X el año para el que se quiere calcular la fecha. Sea A el resto de la división de X entre 19 Sea B el resto de la división de X entre 4 Sea C el resto de la división de X entre 7 Sea D el resto de la división de (19 * A + 24) entre 30 Sea E el resto de la división de (2 * B + 4 * C + 6 * D + 5) entre 7 La fecha para el Domingo de Pascua es el día (22 + D + E) de Marzo (obsérvese que puede dar una fecha en mes de Abril). Escribir un programa que pida como entrada un año y saque por pantalla la fecha del Domingo de Pascua para ese año.

Public Class Ejercicio19 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Periodo As Short = Val( Me.txtAnio.Text) Dim rA As Short = Periodo Mod 19 Dim rB As Short = Periodo Mod 4 Dim rC As Short = Periodo Mod 7 Dim rD As Short = (19 * rA + 24) Mod 30 Dim rE As Short = (2 * rB + 4 * rC + 6 * rD + 5) Mod 7 Dim Dia As Short = 22 + rD + rE If Dia > 31 Then Me.txtDomingo.Text = (Dia - 31).ToString & " DE ABRIL DEL " & Me.txtAnio.Text Else Me.txtDomingo.Text = Dia.ToString & " DE MARZO DEL " & Me.txtAnio.Text End If End Sub End Class

Page 11: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 11 /16

20. Programa que calcule el valor de elevar un número real, a, a un exponente entero, b, ab, multiplicando b veces el número a, usando bucles repetitivos. Nota: Mejorar el programa para que compruebe que el exponente es mayor que 0 y si no lo es dar un mensaje de error y pedir otro exponente. Ejemplo 23 = 2 x 2 x 2 = 64.

Public Class Ejercicio20 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Base As Integer = Val( Me.txtBase.Text) Dim Exponente As Short = Val( Me.txtExponente.Text) Dim Potencia As Integer = 1 For i As Integer = 1 To Exponente Potencia *= Base Next Me.txtPotencia.Text = Potencia.ToString End Sub End Class 21. Escribir un programa que calcule los números perfectos entre

dos números ingresados por pantalla (Un número perfecto es aquél tal que la suma de sus divisores menos el propio número es el propio número). Ejemplos: 6 Divisores (6) = {1, 2, 3, 6} Suma = 1 + 2 + 3 + 6 – 6 = 6 Perfecto 10 Divisores (10) = {1, 2, 5, 10} Suma = 1 + 2 + 5 + 10 – 10 ≠ 10 No perfecto

Public Class Ejercicio21 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim inicio As Integer = Val( Me.txtNumero1.Text) Dim final As Integer = Val( Me.txtNumero2.Text) lstPerfecto.Items.Clear() For i As Integer = inicio To final If EsPerfecto(i) Then Me.lstPerfecto.Items.Add(i) Next End Sub Shared Function EsPerfecto( ByVal Numero As Integer ) As Boolean Dim Suma As Integer = 1 For i As Integer = 2 To Numero - 1 If Numero Mod i = 0 Then Suma += i Next If Suma = Numero Then Return True End Function End Class 22. Escribir una función que tome un valor entero y devuelva el número con sus dígitos en reversa. Por ejemplo, dado

el número 7631 la función deberá devolver 1367. Sin aplicar funciones de cadena. Public Class Ejercicio22 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Numero As Integer = Val( Me.txtNumero.Text) Dim CadenaInversa As String = String .Empty While Numero > 0 CadenaInversa &= (Numero Mod 10).ToString Numero = Math.Truncate(Numero / 10) End While Me.txtInversa.Text = CadenaInversa.ToString End Sub End Class

Page 12: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 12 /16

23. Escribir un programa que calcule el número combinatorio. Utilizar para ello una función que calcule factorial de un número.

Public Class Ejercicio23 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim M As Integer = Val( Me.txtM.Text) Dim N As Integer = Val( Me.txtN.Text) Dim Combinacion As Double = 0 Combinacion = Ejercicio03.FuncionFactorial( M)/(Ejercicio03.FuncionFactorial(N) * Ejercicio03.FuncionFactorial(M - N)) Me.txtCombinatorio.Text = Combinacion.ToString End Sub End Class

24. El desarrollo en serie de Taylor de la función coseno es como se

muestra a continuación, donde el ángulo x viene expresado en radianes. Escribir un programa que calcule el valor aproximado de coseno (x), utilizando para ello los N primeros términos de la serie de Taylor. El número de términos N de la serie dependerá del valor del último, es decir, se añadirán términos a la serie hasta que el valor absoluto del último término añadido sea menor que 0.0001.

Public Class Ejercicio24 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Me.txtCoseno.Text = FuncionCoseno( CDbl ( Me.txtX.Text) * Math.PI / 180).ToString End Sub Shared Function FuncionCoseno( ByVal Angulo As Double ) As Double Dim UltimoTermino As Double = 1 Dim i As Integer = 2 FuncionCoseno = UltimoTermino While Math.Abs(UltimoTermino) > 0.00001 UltimoTermino = -UltimoTermino * ((Angu lo ^ i) / Ejercicio03.FuncionFactorial(i)) FuncionCoseno += UltimoTermino i = i + 2 End While End Function End Class

25. Escribir un programa que cuente cantidad de caracteres que son: blancos, dígitos, letras y especiales.

Public Class Ejercicio25 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Texto As String = Me.txtTexto.Text.ToCharArray Dim blanco, digito, letra, otro As Short For Each s As String In Texto If Char .IsSeparator(s) Then blanco += 1 ElseIf Char .IsDigit(s) Then digito += 1 ElseIf Char .IsLetter(s) Then letra += 1 Else otro += 1 End If Next Me.txtBlanco.Text = blanco.ToString Me.txtDigito.Text = digito.ToString Me.txtLetra.Text = letra.ToString Me.txtOtro.Text = otro.ToString Me.txtLongitud.Text = Texto.Length End Sub

End Class

Page 13: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 13 /16

26. Realizar un programa que lea una cadena de caracteres de una longitud menor de 80 y visualice los caracteres de la siguiente forma: primero, último, segundo, penúltimo, tercero, antepenúltimo,... Ejemplo: ROPERO visualizara ROORPE.

Public Class Ejercicio26 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Cadena As String = Me.txtTexto.Text Dim Longitud As Short = Cadena.Length / 2 Dim Reverso As String = "" For i As Integer = 1 To Math.Truncate(Longitud) Reverso &= Strings.Right(Strings.Left(C adena, i), 1) Reverso &= Strings.Left(Strings.Right(C adena, i), 1) Next If Cadena.Length Mod 2 <> 0 Then Reverso &= Mid(Cadena, Longitud + 1, 1) Me.txtTextoR.Text = Reverso.ToString End Sub End Class

27. Crear un programa que pida por pantalla una

cadena de 80 caracteres de longitud máxima y que calcule el la posición inicial que aparece otra cadena determinada, también pedida por teclado.

Public Class Ejercicio27 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Posicion, Veces, i As Short Dim Cadena As String = CStr ( Me.txtTexto.Text) While i <= Me.txtTexto.Text.Length - 1 And Cadena <> "" Posicion = Strings.InStr(Cadena, Me.txtBuscar.Text) Cadena = Strings.Right(Cadena, Cadena.Length - (Posicion + Me.txtBuscar.Text.Length - 1)) If Posicion > 0 Then Veces += 1 i = Posicion Else i += 1 End If End While Me.txtResultado.Text = Veces.ToString End Sub End Class 28. Julio Cesar enviaba mensajes a sus

legiones encriptando los mensajes mediante el siguiente algoritmo: Se escogía un número n como clave y se sumaba a cada letra en el alfabeto n posiciones. Así, si la clave escogida fuese 5, la ‘a’ pasaría a ser la ‘f’, mientras que la ‘f’ pasaría a ser la ‘k’. Para las últimas letras del abecedario se seguiría desde el principio. Así, con la clave de 5 la ‘y’ pasaría a ser la ‘d’.

Page 14: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 14 /16

Imports System.Text Public Class Ejercicio28 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click 'StringBuilder: Manejo de Cadena '=============================== Dim NumeroEncripta As Integer = CInt ( Me.txtNumero.Text) Dim TextoEncripta As String = Me.txtTexto.Text.ToUpper Dim Encriptado As New StringBuilder Dim Caracter As Integer For i As Integer = 1 To Me.txtTexto.Text.Length Caracter = Strings.Asc(Strings.Mid( Me.txtTexto.Text, i, 1)) If NumeroEncripta > 90 Then NumeroEncripta = NumeroEncripta Mod 26 If Caracter + NumeroEncripta > 90 Then Caracter += NumeroEncripta - 90 If Caracter < 65 Then Caracter += 64 End If Encriptado.Append(Strings.Chr(Caracter) ) Next Me.txtTextoR.Text = Encriptado.ToString End Sub Private Sub txtTexto_KeyPress( ByVal sender As Object , ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtTexto.KeyPress If Char .IsLetter(e.KeyChar) Or e.KeyChar = Chr(Keys.Back) Or e.KeyChar = Chr(Keys.Enter) Then e.Handled = False Else e.Handled = True End If End Sub End Class 29. Escribir un programa que cuente de un texto introducido:

Nº. de Blancos Nº. de vocales Nº. de consonantes Nº. de letras Nº. de números Nº. de Alfanuméricos

Public Class Ejercicio29 Private Sub btnCalcular_Click( ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCalcular.Click Dim Texto As String = Me.txtTexto.Text.ToCharArray Dim blanco, digito, letra, vocal As Short For Each s As String In Texto If Char .IsWhiteSpace(s) Then blanco += 1 ElseIf Char .IsDigit(s) Then digito += 1 ElseIf Char .IsLetter(s) Then letra += 1 If s = "A" Or s = "E" Or s = "I" Or s = "O" Or s = "U" Then vocal += 1 End If Next Me.txtBlanco.Text = blanco.ToString Me.txtDigito.Text = digito.ToString Me.txtLetra.Text = letra.ToString Me.txtvocal.Text = vocal.ToString Me.txtConsonante.Text = (letra - vocal).ToString Me.txtOtro.Text = (Texto.Length - blanco - digito - l etra).ToString Me.txtLongitud.Text = Texto.Length End Sub End Class

Page 15: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 15 /16

PRACTICAS: 30. Programa que pida la temperatura en grados Celsius y la convierta a grados Fahrenheit

(y viceversa) mostrando en pantalla un mensaje del tipo “xxx.xx grados Celsius son yyy.yy grados Fahrenheit”

31. Realizar un programa que lea una cadena de caracteres de una longitud menor de 20 y visualice los caracteres de la siguiente forma: último, primero, penúltimo, segundo, antepenúltimo, tercero... Ejemplo: ZAPATO visualizara OZTAAP.

32. Diseñar un programa que permita resolver la siguiente ecuación ingresando los valores de los coeficientes a, b y c:

33. Crear un programa que pida un numero real (acepta decimales) y muestre la tabla de multiplicar correspondiente a dicho número de tal manera que tanto los valores de los factores como del producto se presenten encolumnados y con una precisión de 2 dígitos.

34. Calcular la media aritmética de 17 números ingresados por pantalla y determinar el mayor de ellos y el menor.

35. Realizar un programa que ingrese un número y lo convierta a base 4, base octal y base hexadecimal; tener en cuenta que mostrará un error cuando se ingrese un número entre el rango de 1500 a 2000.

36. En un hospital existen cuatro áreas: Ginecología, Pediatría, Traumatología y Farmacia. El presupuesto anual del hospital se reparte conforme a la sig. Tabla, Obtener la cantidad de dinero que recibirá cada área, para cualquier monto presupuestal ingresado directamente por la pantalla.

37. Calcular el número de pulsaciones que debe tener una persona por cada 10 segundos de ejercicio aeróbico; la formula que se aplica cuando el sexo es femenino es:

num. pulsaciones = (220 - edad)/10 y si el sexo es masculino: num. pulsaciones = (210 - edad)/10 38. Realizar un programa que solicite el ingreso de un número por pantalla y como resultado debe de mostrarnos la

suma de los números pares, números impares, números primos y números capicúa.

39. Tal vez el esquema de codificación más famoso de todos es el código Morse, desarrollado por Samuel Morse en 1832 para el sistema telegráfico. El código Morse asigna una serie de puntos y rayas a cada letra del abecedario, a cada dígito y a algunos caracteres especiales (punto, coma, dos puntos y punto y coma). Ver tabla adjunta.

Escribir un programa que lea una frase y la codifique en código Morse. También escriba un programa que lea una frase en código Morse y la convierta en su equivalente en castellano. La separación entre letras se indicará mediante un espacio, mientras que la separación entre palabras se indicará mediante 3 espacios.

ÁREA PORCENTAJE PRESUPUESTO

Ginecología 40% Traumatología 30% Pediatría 20% Farmacia 10%

Page 16: Desarrollo de Ejercicios Simples Con Vb

Lenguaje de Programación Ing. Henry Bautista Jesús [email protected] Pág. 16 /16

40. Escribir un Programa para determinar cuál es el monto a pagar por la asistencia a un concierto, sabiendo las siguientes premisas: Existen las zonas VIPORO, VIPPLATA y VIPBRONCE, para la zona VIPORO, las personas de mayor edad (Mayor o igual a 18 años) pagaran 150 más una comisión de 25 soles por acompañante y los de menor edad pagaran el monto de 100 más una comisión de 15 soles por acompañante sabiendo que no pueden ser mas de 2 acompañantes; para la zona VIPPLATA los de mayor edad pagan 95 soles más una comisión de 20 soles por 1 solo acompañante, no permitiendo ingresar a mas compañeros, y para las de menor edad se les cobra 64 soles sin acompañantes. Para las personas mayores a 60 años en la zona VIPBRONCE se les cobra 10 soles, y a las de 30 a 59 años pagan 25 soles, en ambos casos por 2 acompañante se les realiza un descuento de 2 soles, para las otras personas no relacionadas las edades mencionadas en la zona VIPBRONCE se les cobrará 50 soles con el permiso de llevar hasta 5 acompañantes con una comisión de 30 soles. Ingresar como dato el Número de Personas acompañantes y la zona a la cual pertenece seleccionándolo de un COMBOBOX en HTML.

SUERTE EN LA PRÁCTICA