Título: triangulo de ceros y unos vb Publicado por: elsrtenedor en 5 Junio 2019, 23:02 pm Código necesito su ayuda con un programa. necesito hacer un programa en visual basic en aplicacion windows from.NET que dibuje un triangulo de 0 y 1 en un msgbox, de n números de filas. por ejemplo n=7 1 11 101 1001 10001 100001 1111111 por favor alguien podria decirme como se hace, llevo varias horas intentandolo y no lo consigo ni de cerca o almenos darme alguna idea. soy muy nuevo en esto Título: Re: triangulo de ceros y unos vb Publicado por: Eleкtro en 6 Junio 2019, 01:26 am Citar 1 11 101 1001 10001 100001 1111111 Eso más que un triángulo, sería una pirámide. Y más que dibujar (la forma de un triángulo), creo que lo que realmente quieres es imprimir texto y mostrarlo mediante un MsgBox. Pero si no especificas cuales son las reglas de formato que debe seguir la construcción de dicha pirámide entonces dudo que alguien te pueda ayudar. Por ejemplo veo que todas las filas están alineadas a la izquierda, y la longitud de las dos primeras y la última fila se imprimen solamente con el caracter "1", mientras que el resto de filas empiezan y acaban con "1" pero el resto son "0". No explicas nada. De todas formas aquí no se hacen tareas (no se me ocurre que utilidad podría tener mostrar una pirámide de ceros y unos en un MsgBox si no es por que te lo pide un ejercicio de clase). Si muestras tus intentos fallidos / progresos y aclaras con exactitud las reglas de formato de dicha pirámide, tendrás más posibilidades de que alguien pueda ayudarte... Un saludo. Título: Re: triangulo de ceros y unos vb Publicado por: tincopasan en 6 Junio 2019, 02:33 am elsrtenedor
Citar por favor alguien podria decirme como se hace, llevo varias horas intentandolo y no lo consigo ni de cerca ¿y qué has intentado en varias horas?Título: Re: triangulo de ceros y unos vb Publicado por: Serapis en 6 Junio 2019, 15:07 pm ...además este no es el foro de VB.NET...
Para no dejarte al sol y que se te seque el cerebro, digamos que necesitas 2 bucles, en el externo se escriben/generan los unos, antes del bucle interno siempre escribe un 1 y a la salida del interno otro 1, y en el bucle interno los ceros. dicho de otra manera...el bucle externo controla la 'verticalidad, el interno la horizontalidad, si bien el bucle interno comienza (por asi decirlo), un carácter '1' antes del bucle y acaba un carácter '1' después del bucle Ahora piensa un poco... cuantos ciclos tendría el bucle externo y cuantos el interno?... intenta dibujar a lápiz primero para n=1,2,3 y luego si te funciona también con 4 (esto es , cuanto debiera ser el valor del bucle externo e interno), y si te sigue resultando bien, es muy probable que te lo resuelva para cualquier n (eso sí, msgbox tiene un límite de caracteres). Título: Re: triangulo de ceros y unos vb Publicado por: elsrtenedor en 7 Junio 2019, 03:16 am GRACIAS NEBIRE
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim filas As Integer = 0 Dim tri As String = "" filas = InputBox("INGRESE UN NUMERO MAYOR A 0", "VENTANA DE CARGA") While (filas < 0) MsgBox("Introduzca solo valores mayores a 0") filas = InputBox("INGRESE UN NUMERO MAYOR A 0", "VENTANA DE CARGA") End While For n As Integer = 1 To filas For i As Integer = 1 To n If i = 1 Or i = n Or n = filas Then tri = tri + "1 " Else tri = tri + "0 " End If Next tri += vbNewLine Next MsgBox("Triángulo:" + vbNewLine + vbNewLine + tri) End Sub Título: Re: triangulo de ceros y unos vb Publicado por: Eleкtro en 7 Junio 2019, 04:58 am El código que has mostrado, puedes simplificarlo y micro-optimizarlo de la siguiente manera:
Código
Dependiendo de tus necesidades reales, y a menos que esto sea para un ejercicio de clase... 1. Reemplaza el tipo primitivo sin signo UShort por el tipo sin signo que sea más conveniente. Usa el tipo Byte si solamente es para mostrarlo en un MsgBox, ya que dudo que en ese caso quieras crear y mostrar más de 255 filas. 2. Deberías considerar mover/encapsular el código a una función reutilizable, que tome como parámetro la cantidad de filas, y que simplemente devuelva la cadena de texto/triángulo. Pero como sigues sin determinar las reglas de formato, he dejado el código tal y como está. Saludos. Título: Re: triangulo de ceros y unos vb Publicado por: Serapis en 7 Junio 2019, 15:50 pm De entrada sigue los consejos que te recomienda Elektro...
...para continuar, la utilidad práctica de utilizar dos bucles es no requerir un condicional... esto es, al disponer de dos bucles en vez de solo uno, ya queda debidamente condicionado. ...luego me has leído solo parcialmente: Citar ...necesitas 2 bucles, en el externo se escriben/generan los unos, antes del bucle interno siempre escribe un 1 y a la salida del interno otro 1, y en el bucle interno los ceros. Es mas, con el tiempo y a medida que entiendas mejor la programación, verías que el bucle interno puede ser substituído por una línea con un método de string... pero para el principiante, el uso de bucles es necesario para que aprenda la lógica subyacente....si bien el bucle interno comienza (por asi decirlo), un carácter '1' antes del bucle y acaba un carácter '1' después del bucle... El código entonces, quedaría algo así como: Código
Como señalaba Elektro, mucho mejor si se coloca dentro de una función y esta recibe 1 o mas parámetros... Código Luego basta invocar la función con el dato introducido por el usuario, algo así como: Código
..y para terminar, tal como señala Elektro, no tenemos una precisa descripción del problema. Por ejemplo pudiera ser que la imagen completa requiera espacios, esto es, que todas las líneas dispongan de la misma cantidad de caracteres, para que visualmente el resultado se vea como un rombo... a falta de una descripción exacta, no puede proporcionarse más solución que la dada. p.d.: Editado, donde puse 'rombo' (párrafo anterior) en realidad debe poner 'triángulo isósceles'. |