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

Visual Basic
 

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:

sumatorio series visual basic

 

 

 

 

 

 

Para acceder a la información general sobre este curso y al listado completo de entregas pulsa en este link:  Ver curso completo.
 
Para  hacer un comentario o consulta utiliza los foros aprenderaprogramar.com, abiertos a cualquier persona independientemente de su nivel de conocimiento.

Descargar archivo: