Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: dav2k6 en 05 de Julio 2019, 13:03
-
Hola, estoy pasando un algoritmo a visual basic... y no logro sacarlo.. A ver si me pueden echar un cable.. he ido probando pero no lo tengo muy claro..
Contar a intervalos hacia delante y hacia detrás
VInicial = Val(TextBox2.Text)
VFinal = Val(TextBox3.Text)
VIncre = Val(TextBox4.Text)
cont = 0
If IsNumeric(VInicial) And IsNumeric(VFinal) And IsNumeric(VIncre) Then
cont = VInicial
For i = VInicial To VFinal Step VIncre
If cont > VFinal Then
TextBox1.Text = TextBox1.Text & "-" & cont & i
Else
cont = cont + VIncre
End If
Next
Else
MsgBox("los datos no son numeros")
End If
donde me estoy equivocando? (Uso Visual Basic 2010)
-
Hola! Hay cosas que no veo claras en el código que propones. En el if
If cont > VFinal Then
TextBox1.Text = TextBox1.Text & "-" & cont & i
no entiendo bien qué es lo que pretendes hacer.
El planteamiento que yo haría sería con un bucle mientras (while), algo como:
Inicio
Tomar valores iniciales de ValorIni, ValorFin y ValorInc
Comprobar que sean números
Mientras (cont < ValorFin)
Mostrar cont
cont = cont + valorInc
FinMientras
Mostrar "El valor de cont ha superado al valor de ValorIni"
Fin
Fíjate que la condición para seguir en el bucle es que cont sea menor que ValorFin. Eso implica que cuando cont es mayor que ValorFin se sale del bucle, que es tal y como se plantea en el diagrama de flujo del problema.
En el curso de bases de la programación I en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=28&Itemid=59 tienes muchos ejemplos de planteamiento de algoritmos. Y en el curso de Visual Basic en https://aprenderaprogramar.com/index.php?option=com_content&view=category&id=37&Itemid=61 tienes muchos de esos algoritmos trasladados a Visual Basic
Saludos!
-
Gracias por la explicacion..... El tema es que tengo que hacerlo con ciclo for, next
Muchas gracias por los links voy a echarles un vistazo a ver si encuentro como mas y explican como hacerlo.
Con este código:
If cont > VFinal Then
TextBox1.Text = TextBox1.Text & "-" & cont & i
no entiendo bien qué es lo que pretendes hacer.
Lo que pretendia hacer era mostrar el valor de i y el contador....
O sea, si fuese de 2 de a 10 con intervalo de 2....
mostrar...
2-2-4-2-6-2-8-2-10.....
-
ya esta solucionado....
-
Hola, si indicas la solución te lo agradecemos como aportación ;D
-
Y tanto...
A ver, el ejercicio me pide un numero de inicio y otro de fin.... uno tiene que ser correlativo, con un incremento y decrecimiento....
-En el correlativo por ejemplo de 5 a 10....
VInicial = CInt(Txtnum.Text)
VFinal = CInt(Txtnum2.Text)
VIncre = CInt(Txtincre.Text)
If IsNumeric(VInicial) And IsNumeric(VFinal) And (VIncre) Then
cont = VInicial
For i = VInicial To VFinal
TxtArray.Text = TxtArray.Text & "-" & i
Next
Else
MsgBox("no son numeros")
End If
-De 5 a 20 con incremento de 5 en 5 .. 5,10,15,20
If IsNumeric(VInicialPosi) And IsNumeric(VFinalPosi) And (VIncrePosi) Then
contPosi = VInicialPosi
For i = VInicialPosi To VFinalPosi Step VIncrePosi
if conposi > VfinalPosi
TxtArray.Text = TxtArray.Text & "-" & contPosi
contPosi = contPosi + VIncrePosi
Else
Msgbox("fin")
Next
Else
MsgBox("no son numeros")
End If
-De 20 a 5 con decrecimiento negativo de 5 en 5, 20, 15, 10, 5....
If IsNumeric(VInicialNega) And IsNumeric(VfinalNega) And (VincrNega) Then
contnega = VInicialNega
For i = VfinalNega To VInicialNega Step VincrNega
if contnega > VfinalNega
TxtArray.Text = TxtArray.Text & "-" & contnega
contnega = contnega - VincrNega
else
Msgbox("fin")
end if
Next
Else
MsgBox("no son numeros")
End If
Un saludo.