elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Ayuda para usar MsgBox en Visual Basic
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda para usar MsgBox en Visual Basic  (Leído 2,797 veces)
zethli

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Ayuda para usar MsgBox en Visual Basic
« en: 3 Junio 2020, 06:31 am »

necesito su ayuda para un proyecto donde debo usar un inputbox para colocar un  numero que va a ir decreciendo  y usar un Msgbox para que muestre ese decrecimiento en forma de triangulo, ademas de estar bien centrado  así:


15
14  15
13  14  15
12  13  14   15 
11  12  13   14   15
10  11  12   13   14  15
 9   10  11   12   13  14  15
 8    9   10   11   12  13  14  15
 7    8    9    10   11  12  13  14   15
 6    7    8     9    10  11  12  13  14   15
 5    6    7     8     9   10  11  12  13   14  15
 4    5    6     7     8    9   10  11  12   13  14  15
 3    4    5     6     7    8    9   10  11   12  13  14  15 
 2    3    4     5     6    7    8    9   10   11  12  13  14  15
 1    2    3     4     5    6    7    8    9    10  11  12  13  14  15
 
El codigo que use es este, me hace la forma pero, los números no me salen bien centrados ¿Qué puedo hacer?, ¿Como seria la condicion?

    Dim nume  As Integer
        Dim tri, spe, nose As String
        tri = " "
        nume = InputBox("ingrese el numero", "entrada de datos")
        While (nume < 0)
            MsgBox("ingrese  solo valores positivos")
            nume = InputBox("Ingrese solo números mayores a 0")
        End While
        Next
        For n As Integer = 0 To nume
            For i As Integer = n To 1 Step -1
                If nume < 10 Then
                    tri = tri & n - i + 1 & "  "
                Else
                    tri = tri & nume - i + 1 & "  "
                End If
            Next
            tri += vbNewLine
        Next
        MsgBox(tri)
    End Sub


En línea

**Aincrad**


Desconectado Desconectado

Mensajes: 668



Ver Perfil WWW
Re: Ayuda para usar MsgBox en Visual Basic
« Respuesta #1 en: 3 Junio 2020, 16:12 pm »

necesito su ayuda para un proyecto donde debo usar un inputbox para colocar un  numero que va a ir decreciendo  y usar un Msgbox para que muestre ese decrecimiento en forma de triangulo, ademas de estar bien centrado  así:


15
14  15
13  14  15
12  13  14   15 
11  12  13   14   15
10  11  12   13   14  15
 9   10  11   12   13  14  15
 8    9   10   11   12  13  14  15
 7    8    9    10   11  12  13  14   15
 6    7    8     9    10  11  12  13  14   15
 5    6    7     8     9   10  11  12  13   14  15
 4    5    6     7     8    9   10  11  12   13  14  15
 3    4    5     6     7    8    9   10  11   12  13  14  15 
 2    3    4     5     6    7    8    9   10   11  12  13  14  15
 1    2    3     4     5    6    7    8    9    10  11  12  13  14  15
 
El codigo que use es este, me hace la forma pero, los números no me salen bien centrados ¿Qué puedo hacer?, ¿Como seria la condicion?

    Dim nume  As Integer
        Dim tri, spe, nose As String
        tri = " "
        nume = InputBox("ingrese el numero", "entrada de datos")
        While (nume < 0)
            MsgBox("ingrese  solo valores positivos")
            nume = InputBox("Ingrese solo números mayores a 0")
        End While
        Next
        For n As Integer = 0 To nume
            For i As Integer = n To 1 Step -1
                If nume < 10 Then
                    tri = tri & n - i + 1 & "  "
                Else
                    tri = tri & nume - i + 1 & "  "
                End If
            Next
            tri += vbNewLine
        Next
        MsgBox(tri)
    End Sub


Siempre se te va a ver mal si usas eso ya que el Espacio (" ") no tiene el mismo tamaño que cualquier numero.

Tendrias que rellenar con 0 y al final igual te dara error/ bug por las siguientes razones:

1= Que pasaria si meto Letras en el InputBox?
2= Se veria super mal si colocas numeros de mas del 100 en adelante.




Bueno te reestructure el codigo . Solucionando todos esos problemas

Código
  1.  Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  2.        Dim Max As String = String.Empty
  3.  
  4.        Dim Min As String = 1
  5.  
  6.        Dim Input As String = InputBox("Text:")
  7.  
  8.        If Input <> "" Then
  9.            Max = Input
  10.            If Regex.IsMatch(Max, "^[0-9 ]+$") Then
  11.                Dim Filling As Integer = Max.Length
  12.                Dim Result As New StringBuilder
  13.                Dim Progress As String = Max
  14.                For i As Integer = Min To Max
  15.                    Progress -= 1
  16.                    Result.Append(GetProgresive(Progress, Max, Filling) & vbNewLine)
  17.                Next
  18.  
  19.                MsgBox(Result.ToString) 'Resultado Final
  20.            Else
  21.                MsgBox("Porfavor Use Solo Numeros")
  22.            End If
  23.        End If
  24.    End Sub
  25.  
  26.    Private Shared Function GetProgresive(ByVal Min As Integer, ByVal Max As Integer, ByVal FillingCount As Integer, _
  27.                                          Optional ByVal FillingString As String = "0") As String
  28.        Dim s As String = String.Empty
  29.        Dim sb As New StringBuilder
  30.        For i As Integer = Min To Max
  31.            Dim CalculateSpace As Integer = FillingCount - i.ToString.Length
  32.            sb.Append(GenerateSpaces(CalculateSpace, FillingString) & i & " ")
  33.        Next
  34.        Return sb.ToString()
  35.    End Function
  36.  
  37.    Private Shared Function GenerateSpaces(ByVal len As Integer, ByVal FillingStr As String) As String
  38.        Dim sb As New StringBuilder
  39.        For i As Integer = 1 To len
  40.            sb.Append(FillingStr)
  41.        Next
  42.        Return sb.ToString()
  43.    End Function

Se vería así :







Comenta Cualquier cosa si necesitas ayuda





En línea



EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.042



Ver Perfil
Re: Ayuda para usar MsgBox en Visual Basic
« Respuesta #2 en: 3 Junio 2020, 20:13 pm »

Saludos,

- Si se trata de ejercicios de introducción a la programación con sentencias básicas podrías corregir tu código en la parte del If ya que no estás agregando los espacios iniciales si el nume es menor a 10, es más no estás comparando ni mostrando nume correctamente XD:

Código
  1.    Dim nume  As Integer
  2.    Dim tri As String
  3.    tri = " "
  4.    nume = InputBox("ingrese el numero", "entrada de datos")
  5.    While (nume < 0)
  6.      MsgBox("ingrese  solo valores positivos")
  7.      nume = InputBox("Ingrese solo números mayores a 0")
  8.    End While
  9.    For n As Integer = 0 To nume
  10.      For i As Integer = n To 1 Step -1
  11.        If nume - i + 1 < 10 Then
  12.          tri = tri & " " & nume - i + 1 & "   "
  13.        Else
  14.          tri = tri & nume - i + 1 & "  "
  15.        End If
  16.      Next
  17.      tri += vbNewLine
  18.    Next
  19.    MsgBox(tri)

- Lo digo porque algunas veces el profesor pide un algoritmo sencillo de muestra de acuerdo a lo aprendido en clase, es como si se llevara Paint y el profesor pidiera dibujar una casa, y de pronto aparece un alumno que le trae un plano 3D en AutoCAD XD.
En línea

zethli

Desconectado Desconectado

Mensajes: 3


Ver Perfil
Re: Ayuda para usar MsgBox en Visual Basic
« Respuesta #3 en: 4 Junio 2020, 02:54 am »

Muchas gracias, me han salvado la vida.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Usar powerpoint en visual basic 6.0
Programación Visual Basic
WiSeR! 1 2,950 Último mensaje 29 Mayo 2007, 18:09 pm
por Jareth
Compilar sin usar Visual Basic??? « 1 2 3 4 »
Programación Visual Basic
Hole_System 34 12,100 Último mensaje 9 Julio 2008, 22:15 pm
por Pox1
[Ayuda] Sniffer en visual basic, para visual basic
Programación Visual Basic
The_Shakah 8 9,953 Último mensaje 18 Agosto 2010, 19:35 pm
por _katze_
Como usar una API en Visual Basic.Net « 1 2 »
.NET (C#, VB.NET, ASP)
MicroHack 12 11,824 Último mensaje 19 Febrero 2011, 23:44 pm
por seba123neo
[VB - SQL]Problema con Visual Basic-SQL al usar INNER JOIN
Programación Visual Basic
SionTf 2 3,092 Último mensaje 7 Agosto 2013, 19:49 pm
por arfgh
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines