queria saber amigos q codigo me hace falta para q me de este resultado
-realizar un programa q dibuje un triangulo de n filas, empleando el carácter asterisco (ver figura). Realice el programa utilizando:
Sentencia For
Sentencia while
Por ejemplo para n = 4
*******
*****
***
*
Option Explicit
Private Sub Command1_Click()
Dim nf As Integer
Dim asterisco As String
'Dim j As Integer
Dim i As Integer
nf = InputBox("ingrese el numero de fila")
asterisco = asterisco & "*"
For i = 1 To nf
asterisco = asterisco & vbCrLf & String(i, "*") & vbCrLf
Next
MsgBox asterisco
End Sub
el post anterior te lo borre, porque borraste el mensaje principal, y eso que te habian respondido varios usuarios incluido yo, como te dijeron no se hacen tareas.
yo haria una relacion entre el numero de filas y asteriscos... es decir, si tu indicas que hay 4 filas, empezar con 4 asteriscos e ir reduciendo la cantidad hasta uno.
porque no usar una matriz?
Valores de X()
[3,0] [3,1] [3,2] [3,3]
[2,0] [2,1] [2,2] [2,3]
[1,0] [1,1] [1,2] [1,3]
[0,0] [0,1] [0,2] [0,3]
0,0 = *
0,1 = *
1,1 = *
2,2 = *
3,3 = *
2,3 = *
1,3 = *
0,3 = *
0,2 = *
Resultado:
[ ] [ ] [ ] [*]
[ ] [ ] [*] [*]
[ ] [*] [ ] [*]
[*] [*] [*] [*]
Despues mostralo con una fuente monospace :P
Edito.
Mas facil hacerlo con un for en negativo, no? :P
hace algo asi:
RUSICMODEOOOOOON!
x = InputBox("asteriscos iniciales")
For i = x To 1 Step -1
asteriscos = asteriscos & String(i, "*") & vbCrLf
Next
MsgBox asteriscos
este codigo no tiene variables declaradas, comprobacion de errores ni nada. es una mera muestra nomas de como usar un step negativo
un bucle while anidado es otra opción, no es muy buena, sobre todo despues de las que hemos visto antes, pero no deja de ser una opción. Lo he escrito aquí sin probarlo ni nada, es sólo un ejemplo, pero puede contener errores (aunque no, creo que no).
Citar
dim respuesta as string=""
dim main_iteracion as integer=4
dim sec_iteracion as integer=0
do while p >= 1
sec_iteracion = p-1
do while sec_iteracion > 1
respuesta=respuesta+"**"
sec_iteracion=sec_iteracion - 1
loop
respuesta=respuesta+"*"+vbnewline
main_iteracion=sec_iteracion - 1
loop
return respuesta
se deben aprovechar las pautas, si llamamos iteración al identificador de la línea que estamos dibujando:
el número de asteriscos por línea = iteracion+(iteracion-1) o lo que es lo mismo
número de asteriscos por línea = 1-(2*iteracion)
Por otro lado no me ha quedado claro si hay que añadir los espacios o no, aunque a juzgar por el enunciado no.
yo lo haría así:
option explicit
Private Sub Form_Load()
Dim n As Long
Dim i As Long
n = CLng(InputBox("Tamaño del triangulo:", "Triangulo", 15))
For i = n To 0 Step -2
Debug.Print String((n - i) / 2, " ") & String(i, "*")
Next i
End Sub
Dulces Lunas!¡.
Cita de: ABDERRAMAH en 25 Agosto 2012, 06:53 AM
el número de asteriscos por línea = iteracion+(iteracion-1) o lo que es lo mismo
número de asteriscos por línea = 1-(2*iteracion)
De hecho:
línea = iteracion+(iteracion-1) es igual a
línea = (2*iteracion) - 1 o lo que es lo mismo a
línea = -1 + (2*iteracion)Dulces Lunas!¡.