Resumen: Entrega nº44 del curso Aprender a programar en Visual Basic desde cero.
Codificación aprenderaprogramar.com: CU00345A
Crear el código correspondiente al siguiente ejercicio (mismo ejercicio que hemos resuelto anteriormente) pero, en este caso, prescindiendo del uso de arrays. Se trata de crear un programa con las siguientes opciones:
a) Introducir un valor entero impar comprendido entre 1 y 19
b) Calcular la serie numérica 1 + 3 + 5 + ··· + n
c) Calcular 1 * 3 * 5 * ··· * n
d) Salir del programa.
SOLUCIÓN
El formato gráfico será el mismo que para el programa anterior, aunque en este caso no hemos usado arrays.
Código (versiones VB menos recientes) | Código (versiones VB más recientes) |
'[Curso VB aprenderaprogramar.com] '[PROGRAMA IMPARES02] Option Explicit Dim Dato As Integer Private Sub Form_Load() Form1.Caption = "Impares02" LabelResultado.Alignment = 2 LabelResultado.FontBold = True Command1.Caption = "Introducir valor" Command2.Caption = "Calcular serie 1+3+5..." Command3.Caption = "Calcular serie 1*3*5..." Command4.Caption = "Salir" End Sub Private Sub Command1_Click() Call EntrarDato End Sub Private Sub Command2_Click() If Dato <> 0 Then Call CalculaSuma(Dato) End Sub Private Sub Command3_Click() If Dato <> 0 Then Call CalculaMult(Dato) End Sub Private Sub Command4_Click() Unload Form1 End End Sub Private Sub EntrarDato() Dim Par As Boolean Dato = 0 Do While Dato <= 0 Or Dato > 19 Or Par = True Par = False Dato = Val(InputBox("Introduzca un número impar entre 1 y 19", "Impar")) If Dato Mod 2 = 0 Then Par = True MsgBox("El número debe ser impar") End If Loop LabelResultado = "Dato aceptado" End Sub Private Sub CalculaSuma(ByVal Número As Integer) Dim Impar%, Suma As Integer Impar = -1: Suma = 0 Do Impar = Impar + 2 Suma = Suma + Impar Loop While Impar < Número LabelResultado = vbCrLf & "n= " & Dato & " La suma 1+3+5+...+n vale " & Suma End Sub Private Sub CalculaMult(ByVal Cifra As Integer) Dim Impar As Integer Dim Acumulado As Single Impar = -1: Acumulado = 1 Do Impar = Impar + 2 Acumulado = Acumulado * Impar Loop While Impar < Cifra LabelResultado = vbCrLf & "n= " & Dato & " El producto 1*3*5*...*n vale " & _ Acumulado End Sub |
REM Curso Visual Basic aprenderaprogramar.com '[PROGRAMA IMPARES02] Option Explicit On Public Class Form1 Dim Dato As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.Text = "Impares02" LabelResultado.Font = New Font("Arial", 12, FontStyle.Bold) LabelResultado.TextAlign = ContentAlignment.MiddleCenter Button1.Text = "Introducir valor" Button2.Text = "Calcular serie 1+3+5..." Button3.Text = "Calcular serie 1*3*5..." Button4.Text = "Salir" End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Call EntrarDato() End Sub Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click If Dato <> 0 Then Call CalculaSuma(Dato) End Sub Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click If Dato <> 0 Then Call CalculaMult(Dato) End Sub Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Me.Close() End End Sub Private Sub EntrarDato() Dim Par As Boolean Dato = 0 Do While Dato <= 0 Or Dato > 19 Or Par = True Par = False Dato = Val(InputBox("Introduzca un número impar entre 1 y 19", "Impar")) If Dato Mod 2 = 0 Then Par = True MsgBox("El número debe ser impar") End If Loop LabelResultado.Text = "Dato aceptado" End Sub Private Sub CalculaSuma(ByVal Número As Integer) Dim Impar, Suma As Integer Impar = -1 : Suma = 0 Do Impar = Impar + 2 Suma = Suma + Impar Loop While Impar < Número LabelResultado.Text = vbCrLf & "n= " & Dato & " La suma 1+3+5+...+n vale " & Suma End Sub Private Sub CalculaMult(ByVal Cifra As Integer) Dim Impar As Integer Dim Acumulado As Single Impar = -1 : Acumulado = 1 Do Impar = Impar + 2 Acumulado = Acumulado * Impar Loop While Impar < Cifra LabelResultado.Text = vbCrLf & "n= " & Dato & " El producto 1*3*5*...*n vale " & Acumulado End Sub End Class |
Aspecto gráfico de la ejecución del programa: