En este post voy a mostrarte algunos ejercicios y su solución en Visual Basic o VB.NET. Son 13 ejercicios propuestos junto con su solución.
Ejercicios propuestos
1. Escriba un programa que solicite la edad de una persona y determine si es menor o mayor de edad, deberá mostrar un mensaje.
2. Escriba un programa que determine si un número es positivo o negativo.
3. Elabore un programa que de acuerdo con un monto de compra muestre el descuento aplicado y total a pagar.
| Monto compra | Descuento |
| --- | ----------- |
| $ 1000.00 | 30% |
| $ 500.00 | 20% |
| $ 250.00 | 10% |
| Otra Cantidad | 5% |
4. Una compañía de seguros para autos ofrece dos tipos de póliza: cobertura amplia (A) y daños a terceros (B).
Para el plan A, la cuota base es de $500.00, y para el B, de $250.00.
Ambos planes se les carga 10% del costo si la persona que conduce bebe alcohol, 5% si utiliza lentes, 5% si padece alguna enfermedad, y si tiene más de 40 años, se le carga 20%, de lo contrario sólo 10%.
Todos estos cargos se realizan sobre el costo base.
5. Calcule la suma de los números naturales desde 1 hasta n. Ejemplo: 1+2+3+4+5=15
6. Escriba un programa que escriba la tabla de multiplicar de x número ingresado por el usuario.
7. Escriba un programa que determine cuanto ahorrara en dólares una persona, si cada mes incrementa $3.00 en su ahorro.
Ejemplo: Enero $3.00, Febrero $6.00, Marzo $9.00 y así sucesivamente, solicite al usuario que escriba el ahorro a realizar en cada mes y muestre el total ahorrado en un año, utilice el ciclo apropiado.
8. Un cliente realiza un depósito cada mes en su cuenta de ahorros. La cuenta percibe un interés fijo durante cada año del 15% anual. Realice un programa que determine el total de la inversión final de cada año en los próximos N años.
9. Declare un vector en el cual almacene 6 notas de un estudiante y determine cuál es la nota mayor y la nota menor. Debe calcular el promedio del alumno e indicar si aprobó o reprobó.
10. Una empresa de transporte cuenta con cinco empleados, de los cuales se tiene la siguiente información: nombres, horas trabajadas y salario por hora trabajada.
Se pide:
- Calcular el total de horas trabajadas por semana de cada empleado.
- Calcular el salario semanal de cada empleado.
- Indicar el nombre del empleado que trabaja más horas
- Mostrar un reporte con los puntos anteriores.
11. Escriba una función que solicite la edad de una persona y determine si es mayor o menor de edad.
12. Cree una función llamada operaciones la cual reciba tres parámetros: numero1, numero2, y la operación a realizar (suma, resta, multiplicación).
13. Escriba una función que reciba un array de cinco números y determine cuál es el mayor.
Solución
Ahora veamos la solución a estos ejercicios propuestos en Visual Studio. En este caso dividí todo en varios procedimientos (Sub), y las funciones solicitadas las puse en un Function.
Todo el código está en un archivo y separado según el número de ejercicio. Luego se puede invocar desde el Sub Main.
El código completo queda así:
Imports System
Module Program
Sub Ejercicio1()
Dim edad As Integer
Console.WriteLine("Escribe tu edad:")
edad = Convert.ToInt64(Console.ReadLine())
If edad < 18 Then
Console.WriteLine("Menor de edad")
Else
Console.WriteLine("Mayor de edad")
End If
End Sub
Sub Ejercicio2()
Dim numero As Integer
Console.WriteLine("Escribe un número:")
numero = Convert.ToInt64(Console.ReadLine())
If numero < 0 Then
Console.WriteLine("Negativo")
Else
Console.WriteLine("Positivo")
End If
End Sub
Sub Ejercicio3()
Dim monto As Double
Console.WriteLine("Escribe el monto de compra:")
monto = Convert.ToDouble(Console.ReadLine())
Dim porcentajeDescuento As Double
If monto = 1000 Then
porcentajeDescuento = 0.3
ElseIf monto = 500 Then
porcentajeDescuento = 0.2
ElseIf monto = 250 Then
porcentajeDescuento = 0.1
Else
porcentajeDescuento = 0.05
End If
Dim descuento As Double = monto * porcentajeDescuento
Dim total As Double = monto - descuento
Console.WriteLine("Descuento aplicado: {0} ({1} %) Total: {2}", descuento, porcentajeDescuento * 100, total)
End Sub
Sub Ejercicio4()
Dim tipoPoliza As String
Console.WriteLine("Escribe el tipo de póliza [A/B]:")
tipoPoliza = Console.ReadLine()
Dim cuotaBase As Double = 500
Dim porcentajeAumento As Double = 0.0
If tipoPoliza = "B" Then
cuotaBase = 250
End If
Console.WriteLine("¿Bebe alcohol? [s/n]")
If Console.ReadLine() = "s" Then
porcentajeAumento += 0.1
End If
Console.WriteLine("¿Utiliza lentes? [s/n]")
If Console.ReadLine() = "s" Then
porcentajeAumento += 0.05
End If
Console.WriteLine("¿Padece alguna enfermedad? [s/n]")
If Console.ReadLine() = "s" Then
porcentajeAumento += 0.05
End If
Console.WriteLine("Introduzca la edad: ")
If Convert.ToInt64(Console.ReadLine()) > 40 Then
porcentajeAumento += 0.2
Else
porcentajeAumento += 0.1
End If
Dim cargoExtra As Double = cuotaBase * porcentajeAumento
Dim cuotaFinal As Double = cuotaBase + cargoExtra
Console.WriteLine("Monto base: {0}. Cargo extra: {1} ({2} %). Cuota final: {3}", cuotaBase, cargoExtra, porcentajeAumento * 100, cuotaFinal)
End Sub
Sub Ejercicio5()
Console.WriteLine("Ingrese el valor de n: ")
Dim n As Integer = Convert.ToInt64(Console.ReadLine())
Dim suma As Integer = 0
For i = 1 To n
Console.Write("{0}", i)
suma += i
If i < n Then
Console.Write("+")
Else
Console.Write("=")
End If
Next
Console.WriteLine(suma)
End Sub
Sub Ejercicio6()
Console.WriteLine("Ingrese el número para mostrar la tabla de multiplicar:")
Dim numeroDeTabla As Integer = Convert.ToInt64(Console.ReadLine())
Dim suma As Integer = 0
For i = 1 To 10
Dim resultado As Integer = i * numeroDeTabla
Console.WriteLine("{0} x {1} = {2}", numeroDeTabla, i, resultado)
Next
End Sub
Sub Ejercicio7()
Dim incremento As Double = 3
Console.WriteLine("Ingrese ahorro mensual: ")
Dim ahorro As Double = Convert.ToDouble(Console.ReadLine())
Dim meses = New String() {"Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"}
Dim total As Double = ahorro
For Each mesActual As String In meses
Console.WriteLine("{0} ${1}", mesActual, total)
total += ahorro
Next
End Sub
Sub Ejercicio8()
Console.WriteLine("Ingrese depósito mensual:")
Dim depositoMensual As Double = Convert.ToDouble(Console.ReadLine())
Dim depositoAnual As Double = depositoMensual * 12
Console.WriteLine("Ingrese la cantidad de años:")
Dim cantidadAnios As Double = Convert.ToDouble(Console.ReadLine())
Dim interes As Double = 0.15
For i = 1 To cantidadAnios
Dim aumento = depositoAnual * interes
depositoAnual += aumento
Console.WriteLine("Año {0} inversión final: {1}", i, depositoAnual)
Next
End Sub
Sub Ejercicio9()
Dim calificaciones = New Double() {77, 10, 70, 100, 88, 58}
Dim mayor = calificaciones.ElementAt(0)
Dim menor = calificaciones.ElementAt(0)
Dim sumatoria As Double = 0.0
For Each calificacion In calificaciones
sumatoria += calificacion
If calificacion > mayor Then
mayor = calificacion
End If
If calificacion < menor Then
menor = calificacion
End If
Next
Dim promedio As Double = sumatoria / calificaciones.Length
Dim apruebaCon As Double = 70
Console.WriteLine("Nota mayor: {0}", mayor)
Console.WriteLine("Nota menor: {0}", menor)
Console.WriteLine("Promedio: {0}", promedio)
If promedio > apruebaCon Then
Console.WriteLine("Aprueba")
Else
Console.WriteLine("NO arueba")
End If
End Sub
Sub Ejercicio10()
Dim cantidadEmpleados As Integer = 5
Dim nombres(cantidadEmpleados) As String
Dim horasTrabajadas(cantidadEmpleados) As Double
Dim salarios(cantidadEmpleados) As Double
For i = 0 To cantidadEmpleados - 1
Console.WriteLine("Ingrese el nombre del empleado #{0}", i + 1)
nombres.SetValue(Console.ReadLine(), i)
Console.WriteLine("Ingrese las horas trabajadas diarias de empleado #{0}", i + 1)
horasTrabajadas.SetValue(Convert.ToDouble(Console.ReadLine()), i)
Console.WriteLine("Ingrese el salario por hora trabajada del empleado #{0}", i + 1)
salarios.SetValue(Convert.ToDouble(Console.ReadLine()), i)
Next
Dim diasLaborales As Double = 5
Dim nombreEmpleadoMasTrabajador = ""
Dim horasEmpleadoMasTrabajador = 0
For i = 0 To cantidadEmpleados - 1
Dim nombre As String = nombres.ElementAt(i)
Dim horasTrabajadasEmpleado As String = horasTrabajadas.ElementAt(i)
Dim salario As String = salarios.ElementAt(i)
Dim horasTrabajadasSemana As Double = horasTrabajadasEmpleado * diasLaborales
Dim salarioSemanal As Double = horasTrabajadasSemana * salario
If horasTrabajadasSemana > horasEmpleadoMasTrabajador Then
horasEmpleadoMasTrabajador = horasTrabajadasSemana
nombreEmpleadoMasTrabajador = nombre
End If
Console.WriteLine("Empleado {0} trabaja {1} horas a la semana, salario semanal es ${2}", nombre, horasTrabajadasSemana, salarioSemanal)
Next
Console.WriteLine("Empleado que trabaja más horas: {0} (trabajó {1} horas)", nombreEmpleadoMasTrabajador, horasEmpleadoMasTrabajador)
End Sub
Function EsMayorDeEdad(edad As Integer) As Boolean
If edad < 18 Then
Return False
Else
Return True
End If
End Function
Sub Ejercicio11()
Console.WriteLine("Ingresa tu edad: ")
Dim edad As Integer = Convert.ToInt32(Console.ReadLine())
If EsMayorDeEdad(edad) Then
Console.WriteLine("Mayor de edad")
Else
Console.WriteLine("Menor de edad")
End If
End Sub
Function operaciones(numero1 As Double, numero2 As Double, operacion As String) As Double
If operacion = "suma" Then
Return numero1 + numero2
End If
If operacion = "resta" Then
Return numero1 - numero2
End If
If operacion = "multiplicación" Then
Return numero1 * numero2
End If
End Function
Sub Ejercicio12()
Console.WriteLine("Suma: ")
Console.WriteLine(operaciones(1, 2, "suma"))
Console.WriteLine("Resta: ")
Console.WriteLine(operaciones(1, 2, "resta"))
Console.WriteLine("Multiplicación: ")
Console.WriteLine(operaciones(1, 2, "multiplicación"))
End Sub
Function obtenerMayor(numeros As Integer()) As Integer
Dim mayor As Integer = numeros.ElementAt(0)
For Each numero In numeros
If numero > mayor Then
mayor = numero
End If
Next
Return mayor
End Function
Sub Ejercicio13()
Dim numeros = New Integer() {40, 5, 2, 1, 9}
Dim mayor As Integer = obtenerMayor(numeros)
Console.WriteLine("Mayor: {0}", mayor)
End Sub
Sub Main(args As String())
Ejercicio1()
Ejercicio2()
Ejercicio3()
Ejercicio4()
Ejercicio5()
Ejercicio6()
Ejercicio7()
Ejercicio8()
Ejercicio9()
Ejercicio10()
Ejercicio11()
Ejercicio12()
Ejercicio13()
End Sub
End Module
Por aquí te dejo más tutoriales de VB.NET en mi blog.
excelente