Hola a todo bueno para que agamos algo y sea mas divertido propongo lo siguiente solo con iteraciones....
dado dicha secuencia de numeros 1 15 10 5 0 2 15 10 5 0 3
devemos realizar una iteracion que nos de esa secuencia...simple pero al que se le valla ocurriendo mas lo vamos haciendo,, espero que tenga futuro el pos ::)
HOLA!!!
Private Function RetoIteraciones(Items As Long) As Long()
Dim AuxArr() As Long
Dim CT As Long
Dim X As Long
ReDim AuxArr(Items - 1)
X = Items - 1
Do Until X < 4
CT = CT + 1
AuxArr(Items - X - 1) = CT
AuxArr(Items - X) = 15
AuxArr(Items - X + 1) = 10
AuxArr(Items - X + 2) = 5
AuxArr(Items - X + 3) = 0
X = X - 5
Loop
If Not X < 0 Then
CT = CT + 1
AuxArr(Items - X - 1) = CT
If X > 3 Then
AuxArr(Items - X + 3) = 0
AuxArr(Items - X + 2) = 5
AuxArr(Items - X + 1) = 10
AuxArr(Items - X) = 15
ElseIf X > 2 Then
AuxArr(Items - X + 2) = 5
AuxArr(Items - X + 1) = 10
AuxArr(Items - X) = 15
ElseIf X > 1 Then
AuxArr(Items - X + 1) = 10
AuxArr(Items - X) = 15
ElseIf X > 0 Then
AuxArr(Items - X) = 15
End If
End If
RetoIteraciones = AuxArr
End Function
GRACIAS POR LEER!!!
un poco mas simple pero funciona de igual manera....aver si tienes otra man
'1 15 10 5 0 2 15 10 5 0 3
Dim i As Integer
Dim j As Integer
For i = 1 To 3
Debug.Print i
If i = 3 Then Exit For
For j = 15 To 0 Step -5
Debug.Print j
Next j
Next i
HOLA!!!
Cita de: _katze_ en 16 Junio 2011, 19:09 PM
un poco mas simple pero funciona de igual manera....aver si tienes otra man
'1 15 10 5 0 2 15 10 5 0 3
Dim i As Integer
Dim j As Integer
For i = 1 To 3
Debug.Print i
If i = 3 Then Exit For
For j = 15 To 0 Step -5
Debug.Print j
Next j
Next i
:¬¬ Ese codigo no continua la secuencia, solo escribe lo que esta arriba.
Aca una manera mas simple:
debug.print "1 15 10 5 0 2 15 10 5 0 3" ' :¬¬ :¬¬ :¬¬ :¬¬
Vos hiciste el reto, pero creo que deberiamos armar una funcion que funcione con la formula de la secuencia indicada, no que escriba solo eso....
Osea tu codigo devuelve solo 11 items de la secuencia.
El codigo que arme devuelve de 1 a 162447352 items.
Entendes¿?
GRACIAS POR LEER!!!
.
Este codigo sigue la secuencia hasta n Longitud dada.
Option Explicit
Private Sub Form_Load()
Dim v As Variant
For Each v In iteraccion(20)
Debug.Print v
Next
End Sub
Public Function iteraccion(ByVal llen As Long) As Long()
Dim i As Long
Dim c As Long
Dim t As Long
Dim vares() As Long
llen = (llen - 1)
ReDim vares(0 To llen)
c = 1
For i = 0 To llen Step 5
vares(i) = c: t = i + 1
If (t < llen) Then
vares(t) = 15: t = t + 1
If (t < llen) Then
vares(t) = 10: t = t + 1
If (t < llen) Then
vares(t) = 5: t = t + 1
If (t < llen) Then
vares(t) = 0: c = c + 1
End If
End If
End If
End If
Next i
iteraccion = vares()
End Function
... de una manera mas simple.
Option Explicit
Private Sub Form_Load()
Dim v As Variant
For Each v In iteraccion(21)
Debug.Print v
Next
End Sub
Public Function sets(ByVal lval As Long, ByRef vaArr() As Long, ByVal index As Long, ByVal lub As Long) As Long
If Not ((index And &H80000000) = &H80000000) Then
If (index <= lub) Then
vaArr(index) = lval
sets = (index + 1)
Exit Function
End If
End If
sets = &H80000000
End Function
Public Function iteraccion(ByVal llen As Long) As Long()
Dim i As Long
Dim c As Long
Dim vares() As Long
llen = (llen - 1)
ReDim vares(0 To llen)
c = 1
For i = 0 To llen Step 5
vares(i) = c
sets 5, vares(), sets(10, vares(), sets(15, vares(), (i + 1), llen), llen), llen
c = c + 1
Next i
iteraccion = vares()
End Function
Dulces Lunas!¡.
si pero tenias que llegar a esa secuencia de numeros.... es como que yo te diga que formes esto solo con iteraciones pero lo agamos asi como dicen si se te ocurre otra secuencia lo hacemos ya armo la mia y subo
1
12
123
1234
123456
1234567