[Simple - reto] Iteraciones

Iniciado por _katze_, 16 Junio 2011, 05:43 AM

0 Miembros y 1 Visitante están viendo este tema.

_katze_

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 ::)

79137913

HOLA!!!

Código (vb) [Seleccionar]
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!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

_katze_

un poco mas simple pero funciona de igual manera....aver si tienes otra man

Código (vb) [Seleccionar]
'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

79137913

#3
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

Código (vb) [Seleccionar]
'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!!!
"Como no se puede igualar a Dios, ya he decidido que hacer, ¡SUPERARLO!"
"La peor de las ignorancias es no saber corregirlas"

79137913                          *Shadow Scouts Team*

BlackZeroX

#4
.

Este codigo sigue la secuencia hasta n Longitud dada.

Código (vb) [Seleccionar]


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.

Código (Vb) [Seleccionar]


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!¡.
The Dark Shadow is my passion.

_katze_

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