Visual Basic - Problema con Do While / Do Until en Visual Studio

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problema con Do While / Do Until en Visual Studio

Publicado por camila (3 intervenciones) el 08/09/2020 17:12:56
Buenos dias!
Tengo que ingresar un conjunto de datos numericos y que se carguen en un ListBox, y el 8 tiene que ser un corte de control (el 8 no lo tenog que contar como dato). El numero 7 tiene que estar si o si entre los datos que cargue. Probe con varias estructuras pero no logro que el 8 funicone como dato y no comom corte cuando no hay un 7 (tipo que el 8 no funicone como corte de control hasta que no se haya cargado un 7).
Si alguien puede ayudarme lo agradeceria mucho!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.286
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problema con Do While / Do Until en Visual Studio

Publicado por Antoni Masana (455 intervenciones) el 09/09/2020 07:48:54
Con mucho gusto te puedo ayudar si subes un ejemplo de lo que quieres hacer, es decir una lista de números a ingresar en el listbox y que significa lo del 8 y el 7.

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problema con Do While / Do Until en Visual Studio

Publicado por Camila (3 intervenciones) el 09/09/2020 13:44:33
Buen dia,
En la primera foto esta la consigna completa. Tengo que cargar cualquier numero (yo use como ejemplo 1, 9, 3 y 7). Lo que hice funcionó porque yo cargue el 7 y, luego cuando cargue el 8 me cortó la carga de datos. El problema es que el 7 tiene que estar si o si entre los numeros, y si yo no lo pongo el 8 no me deberia cortar la carga, sino que deberia seguir hasta que cargue un 7.
Este es el codigo que tengo hasta ahora, pero no se que agregar para que funcione.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
VarMayor = 0
VarSiete = 7
 
Do While VarDato <> 8
 
    VarDato = InputBox("Ingrese un dato", "Ingrese un numero entero o decimal", "Escriba aquí")
    VarCantDatos = VarCantDatos + 1
 
    If VarDato = 8 And VarDato <> 7 Then
 
 
    Else
 
        FrmResultado.ListBox1.Items.Add(VarDato)
        VarSuma = VarSuma + VarDato
        FrmResultado.TxtCantidad.Text = VarCantDatos
        VarPromedio = VarSuma / VarCantDatos
        FrmResultado.TxtPromedio.Text = VarPromedio
 
        If VarDato > VarMayor Then
            VarMayor = VarDato
            FrmResultado.TxtMayor.Text = VarDato
        End If
 
        For a = 1 To VarCantDatos
            If VarDato = VarSiete Then
                VarPosSiete = a
                FrmResultado.TxtPosSiete.Text = VarCantDatos
            End If
 
        Next a
    End If
    FrmResultado.Show()
Loop

Muchas gracias y saludos!


1
2
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 1.286
Bronce
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problema con Do While / Do Until en Visual Studio

Publicado por Antoni Masana (455 intervenciones) el 09/09/2020 14:16:36
Esta es la solución de los 7 y los 8

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Sub Macro
    VarFinal = 0
    VarSiete = 0
 
    ' La condición para salir del bucle es que se ha entrado un 7 y posteriormente un 8
    ' si se pulsa un 8 sin haber pulsado un 7 continua
 
    Do While VarFinal = 0 Or VarSiete = 0
        VarDato = InputBox("Ingrese un dato", "Ingrese un numero entero o decimal", "Escriba aquí")
        VarCantDatos = VarCantDatos + 1
 
        If VarDato = 7 Then
           VarSiete = 7
           VarFinal = 0
        End If
 
        If VarDato = 8 Then
            VarFinal = 1
        Else
            VarFinal = 0
            FrmResultado.ListBox1.Items.Add(VarDato)
            VarSuma = VarSuma + VarDato
            FrmResultado.TxtCantidad.Text = VarCantDatos
            VarPromedio = VarSuma / VarCantDatos
            FrmResultado.TxtPromedio.Text = VarPromedio
 
            If VarDato > VarMayor Then
               VarMayor = VarDato
               FrmResultado.TxtMayor.Text = VarDato
            End If
 
            For a = 1 To VarCantDatos
                If VarDato = VarSiete Then
                    VarPosSiete = a
                    FrmResultado.TxtPosSiete.Text = VarCantDatos
                End If
            Next a
        End If
        FrmResultado.Show()
    Loop
End Sub


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar
sin imagen de perfil
Val: 9
Ha aumentado su posición en 4 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Problema con Do While / Do Until en Visual Studio

Publicado por Camila (3 intervenciones) el 09/09/2020 15:17:01
Muchisimas gracias!
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar