Practica 11

[TERCER PERIODO]

Tema Nº11Procedimientos y Funciones en VB .NET


Comentarios: 

¿Que es un procedimiento?

Un procedimiento es una colección de sentencias que ejecutan una tarea específica.

Un procedimiento Sub consiste en una serie de instrucciones de Visual Basic delimitadas por las instrucciones Sub y EndSub. El procedimiento Sub ejecuta una tarea y devuelve el control al código de llamada, pero no le devuelve un valor.



¿Que es una función?

Una función en Visual Basic es un módulo de un programa separado del cuerpo principal, que realiza una tarea especifica y que puede regresar un valor a la  parte principal del programa u otra función o procedimiento que la invoque.

Sobrecarga de Procedimientos o Funciones: 
Sobrecargar un procedimiento significa definirlo en varias versiones, utilizando el mismo nombre pero distintas listas de parámetros.

El propósito de sobrecargar un procedimiento es definir varias versiones de un procedimiento estrechamente relacionadas sin tener que distinguirlas por su nombre. Esto se lleva a cabo modificando la lista de parámetros.


Conclusiones:
La principal diferencia entre una función y un procedimiento es que las funciones devuelven un valor que se usara en el codigo principal, mientras que un procedimiento no devuelve nada. Para sobrecargar un procedimiento solo se necesita que tengan diferentes parámetros.





Practica #11

Problema 1:

Escriba un procedimiento que imprima la hora actual.

Código VB .NET:

Module Module1

    Sub Main()
        hora()
        Console.ReadLine()
    End Sub
--------------------------------------------------------------------------------------------------------
    Sub hora()
        Console.WriteLine("Hora actual: " & TimeOfDay)
    End Sub


End Module




Problema 2:

Escriba una aplicación que capture un texto por teclado y que posea un procedimiento para mostrar el texto capturado en mayúsculas y color rojo y otro procedimiento para mostrarlo en minúsculas y color amarillo.

Código VB .NET:

Module Module2
    Sub Main()
        Dim texto As String
        Console.WriteLine("Ingrese un texto:")
        texto = Console.ReadLine()
        Console.WriteLine()
        RojoUp(texto)
        AmaLow(texto)
        Console.ReadLine()
    End Sub
--------------------------------------------------------------------------------------------------------
    Sub RojoUp(ByVal texto As String)
        Console.Write("Rojo y Mayúsculas: ")
        Console.ForegroundColor = ConsoleColor.Red
        Console.WriteLine(texto.ToUpper)
    End Sub
--------------------------------------------------------------------------------------------------------
    Sub AmaLow(ByVal texto As String)
        Console.ForegroundColor = ConsoleColorGray
        Console.Write("Amarillo y Minusculas: ")
        Console.ForegroundColor = ConsoleColor.Yellow
        Console.WriteLine(texto.ToLower)
    End Sub


End Module




Problema 3:

Escriba una aplicación para capturar el número de teléfono de 5 participantes y que posea un procedimiento que seleccione e imprima de forma aleatoria el número de teléfono ganador.


Código VB .NET:

Module Module3
    Sub Main()
        Console.WriteLine("Prueba tu suerte!")
        Console.WriteLine("Ingrese 5 números de telefono")
        Seleccion()
        Console.ReadLine()
    End Sub
--------------------------------------------------------------------------------------------------------
    Sub Seleccion()
        Dim tel(4) As String
        For i = 0 To 4
            tel(i) = Console.ReadLine()
        Next

        Dim re As New Random()
        Dim n As Integer
        n = re.Next(0, 5)
        Console.WriteLine()
        Console.Write("El telefono ganador es: " & tel(n))
    End Sub

End Module




Problema 4:

Escriba una función para calcular el valor a pagar a un empleado por servicios, capturando por teclado el nombre y horas trabajadas, estableciendo el valor de la hora a $ 6.50


Código VB .NET:


Module Module4
    Sub Main()
        Dim hora As Decimal
        Console.WriteLine("Monto a pagar a un empleado por horas trabajadas")

        Console.Write("Ingrese la cantidad de horas: ")

        hora = Console.ReadLine
        Console.WriteLine()
        Console.WriteLine("Monto a pagar: $" & sueldo(hora))
        Console.ReadLine()
    End Sub
--------------------------------------------------------------------------------------------------------
    Function sueldo(x As Integer) As Decimal
        Return x * 6.5
    End Function

End Module




Problema 5:

Escriba una función que indique si un año capturado por teclado es o no es bisiesto.


Código VB .NET:

Module Module5
    Sub Main()
        Dim año As Integer
        Console.WriteLine("Compruebe si un año es bisiesto")
        
Console.Write("Ingrese un año: ")
        año = 
Console.ReadLine()
        
Console.WriteLine()
        
Console.WriteLine(bisiesto(año))
        
Console.ReadLine()
    End Sub

--------------------------------------------------------------------------------------------------------
    Function bisiesto(x As Integer)
        If (x Mod 4 = 0) And ((x Mod 100 <> 0) Or (x Mod 400 = 0)) Then
            Return "El año es bisiesto"
        Else
            Return "El año no es bisiesto"        End If
    End Function
End Module




Problema 6:

Escriba una función que retorne el mayor de dos números ingresados por teclado.


Código VB .NET:


Module Module6
    Sub Main()
        Dim num1, num2 As Integer
        Console.WriteLine("¿Qué número es mayor?")
        Console.WriteLine("Ingrese dos numeros:")
        num1 = Console.ReadLine
        num2 = Console.ReadLine
        Console.WriteLine()
        Console.Write("El número mayor es: " & mayor(num1, num2))
        Console.ReadLine()
    End Sub
--------------------------------------------------------------------------------------------------------
    Function mayor(x As Integer, y As Integer)
        If x > y Then
            Return x
        Else
            Return y
        End If
    End Function
End Module




Problema 7:

Escriba una función que retorne si un número capturado por teclado es par o impar.


Código VB .NET:

Module Module7
    Sub Main()
        Dim k As Integer
        Console.WriteLine("Descubra si un número es par o impar")
        
Console.Write("Introduzca un número: ")
        k = 
Console.ReadLine()
        
Console.WriteLine()
        
Console.Write("Él número es " & ParImpar(k))
        
Console.ReadLine()
    End Sub

--------------------------------------------------------------------------------------------------------
    Function ParImpar(x As Integer) As String
        If x Mod 2 = 0 Then
            Return "par"
        Else
            Return
"impar"
        End If
    End Function
End Module





Problema 8:

Escriba una función que retorne el factorial de un número capturado por teclado.


Código VB .NET:

Module Module8
    Sub Main()
        Dim num As Integer
        Console.WriteLine("Calcule el factorial de un número")
        Console.Write("Introduzca un número: ")
        num = Integer.Parse(Console.ReadLine())
        Console.WriteLine()
        Console.WriteLine(num & "! = " & facto(num))
        Console.Read()
    End Sub
--------------------------------------------------------------------------------------------------------
    Function facto(ByVal num) As Integer
        If num = 1 Then
            Return num
        Else
            Return num * facto(num - 1)
        End If
    End Function
End Module




Problema 9:

Escriba una aplicación para calcular la nota final de un alumno, utilizando el sistema de evaluación de la materia programación I, crear una sola función que permita calcular la nota promedio de cada periodo.


Código VB .NET:

Module Module9
    Sub Main()
        Dim nota1, nota2, nota3, prom1, prom2, prom3, final As Decimal
        Console.WriteLine("Calcule la nota final de un alumno:")
        Console.WriteLine()
        Console.WriteLine("PERIODO 1")
        Console.WriteLine("Ingrese nota 1")
        nota1 = Console.ReadLine()
        Console.WriteLine("Ingrese nota 2")
        nota2 = Console.ReadLine()
        Console.WriteLine("Ingrese nota 3")
        nota3 = Console.ReadLine()
        prom1 = prom(nota1, nota2, nota3)
        Console.Clear()
        '---------------------------------------------
        Console.WriteLine("PERIODO 2")
        Console.WriteLine("Ingrese nota 1")
        nota1 = Console.ReadLine()
        Console.WriteLine("Ingrese nota 2")
        nota2 = Console.ReadLine()
        Console.WriteLine("Ingrese nota 3")
        nota3 = Console.ReadLine()
        prom2 = prom(nota1, nota2, nota3)
        Console.Clear()
        '---------------------------------------------
        Console.WriteLine("PERIODO 3")
        Console.WriteLine("Ingrese nota 1")
        nota1 = Console.ReadLine()
        Console.WriteLine("Ingrese nota 2")
        nota2 = Console.ReadLine()
        Console.WriteLine("Ingrese nota 3")
        nota3 = Console.ReadLine()
        prom3 = prom(nota1, nota2, nota3)
        Console.Clear()

        Console.WriteLine("RESULTADOS")
        Console.WriteLine()
        Console.WriteLine("Periodo 1: " & prom1)
        Console.WriteLine("Periodo 2: " & prom2)
        Console.WriteLine("Periodo 3: " & prom3)
        final = (prom1 + prom2 + prom3) / 3
        Console.WriteLine()
        Console.WriteLine("Nota final: " & FormatNumber(final, 1))
        Console.ReadLine()
    End Sub
--------------------------------------------------------------------------------------------------------
    Function prom(x As Decimal, y As Decimal, z As Decimal)
        Dim total As Decimall
        total = ((x * 0.25) + (y * 0.25) + (z * 0.5))
        'Debido a que las ponderaciones de las actividades de la materia ProgramacionI
        'no han seguido un patron en cada periodo, decidí mejor dejar cada promedio 
        'en este formato 25% + 25% de actividades y 50% de parcial. 
        Return FormatNumber(total, 1)
    End Function
End Module




Problema 10:

Escribir una aplicación que capture por teclado 4 números y posea 3 funciones de nombre sumar pero que la primera permita sumar 2 números, la segunda 3 y la cuarta 4 números.


Código VB .NET:

Module Module10
    Sub Main()
        Dim n1, n2, n3, n4 As Integer
        Console.WriteLine("Ingrese números a sumar")
        n1 = 
Console.ReadLine()
        n2 = 
Console.ReadLine()
        n3 = 
Console.ReadLine()
        n4 = 
Console.ReadLine()
        
Console.WriteLine()
        
Console.WriteLine("Probando la función:")
        
Console.WriteLine("Sumando 4 números: " & sumar(n1, n2, n3, n4))
        
Console.WriteLine("Sumando 3 números: " & sumar(n1, n2, n3))
        
Console.WriteLine("Sumando 2 números: " & sumar(n1, n2))
        
Console.ReadLine()
    End Sub
--------------------------------------------------------------------------------------------------------
    Function sumar(ByVal x As IntegerByVall y As IntegerAs Integer
        Return x + y
    End Function
--------------------------------------------------------------------------------------------------------
    Function sumar(ByVal x As IntegerByVal y As IntegerByVal z As IntegerAs Integer
        
Return x + y + z
    
End Function
--------------------------------------------------------------------------------------------------------

    Function sumar(ByVal x As Integer, y As Integer, z As Integer, a As IntegerAs Integer
        
Return x + y + z + a
    
End Function
End Module





Archivo de solución del Proyecto


[haga clic en la imagen para descargar] 

No hay comentarios:

Publicar un comentario