elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


  Mostrar Mensajes
Páginas: 1 [2] 3
11  Programación / Programación Visual Basic / Re: [Reto] Zig Zag (OJO ANALISIS) en: 4 Enero 2011, 03:19 am
bueno ps acabe mi code, me costo mucho, pero aki sta ps.

Código:
Option Explicit
'modKrabby
'modulo bas
Public Function Krabby_ZigZag(Numero As Long) As Boolean
    Dim Columnas As Long, Filas As Long
    Dim NumeroValido As Long
    Dim Num As Long, Base As Long
    Dim MyX As Long, MyY As Long
    Dim CeldaAbajoLibre As Long
    Dim Celda() As Long, Resto As Long
    Dim cadena As String
    
    'variables destino
    Dim FilasDestino As Long, ColumnasDestino As Long
    Dim BaseDestino As Long
    Dim CeldaDestino() As Long
    Dim Suma As Long
    Dim SumaUltimaFila As Long
    
    NumeroValido = Int(Sqr(Numero)) * Int(Sqr(Numero))
    Columnas = Int(Sqr(Numero))
    Filas = Int(Sqr(Numero))
    ReDim Celda(1 To NumeroValido) As Long
    Dim X As Long, Y As Long
    For X = 1 To Columnas
        MyY = 1
        MyX = X
        CeldaAbajoLibre = X
        Num = Num + 1
        Base = (MyY - 1) * Columnas
        Celda(Base + MyX) = Num
        If CeldaAbajoLibre > 1 Then
            For Y = 1 To CeldaAbajoLibre - 1
                MyX = MyX - 1
                Num = Num + 1
                MyY = MyY + 1
                Base = (MyY - 1) * Columnas
                Celda(Base + MyX) = Num
            Next Y
        End If
    Next X
    
    
    Resto = Columnas - 1
    Dim MyY2 As Long
    MyY = 1
    For X = Resto To 1 Step -1
        MyY = MyY + 1
        MyX = Columnas
        MyY2 = MyY
        CeldaAbajoLibre = X
        Num = Num + 1
        Base = (MyY2 - 1) * Columnas
        Celda(Base + MyX) = Num
        If CeldaAbajoLibre > 1 Then
            For Y = 1 To CeldaAbajoLibre - 1
                MyX = MyX - 1
                Num = Num + 1
                MyY2 = MyY2 + 1
                Base = (MyY2 - 1) * Columnas
                Celda(Base + MyX) = Num
                
            Next Y
        End If
    Next X
    'imprime
    For X = 1 To Columnas
        Base = (X - 1) * Columnas
        For Y = Base + 1 To Base + Columnas
            cadena = cadena & Celda(Y) & " "
        Next Y
        cadena = cadena & vbCrLf
    Next X
    Debug.Print cadena
    'Open "c:\aa.txt" For Append As #1
    'Print #1, cadena
    'Print #1, extra
    'Close #1
    
    
    'pasa los numero a la celda destino
    FilasDestino = Filas + 1      '1ra fila de sumar
    FilasDestino = FilasDestino + 1     'ultima fila de sumas
    ColumnasDestino = Columnas + 1     'ultima columna de sumas
    ReDim CeldaDestino(1 To (FilasDestino * ColumnasDestino)) As Long
    For X = 1 To Filas
        For Y = 1 To Columnas
            Base = (X - 1) * Columnas
            BaseDestino = (X) * ColumnasDestino
            CeldaDestino(BaseDestino + Y) = Celda(Base + Y)
            Suma = Suma + CeldaDestino(BaseDestino + Y)
        Next Y
        CeldaDestino(BaseDestino + ColumnasDestino) = Suma
        Suma = 0
    Next X
    '**************************************
    'ultimo agregado (codigo perdido)
    For X = 1 To ColumnasDestino - 1
        For Y = 2 To FilasDestino - 1
            BaseDestino = (Y - 1) * ColumnasDestino
            Suma = Suma + CeldaDestino(BaseDestino + X)
        Next Y
        BaseDestino = (FilasDestino - 1) * ColumnasDestino
        CeldaDestino(BaseDestino + X) = Suma
        Suma = 0
    Next X
    
    
    '************************************
    'ultimo codigo agregado al final
    
'*****************************************
    'suma de la ultima fila
    For X = 1 To ColumnasDestino - 1
        BaseDestino = (FilasDestino - 1) * ColumnasDestino
        Suma = Suma + CeldaDestino(BaseDestino + X)
    Next X
    CeldaDestino(BaseDestino + ColumnasDestino) = Suma
    Suma = 0
    
    '***********************************
    'suma vertical de la ultima columna
    For X = 2 To FilasDestino - 1
        BaseDestino = (X - 1) * ColumnasDestino
        Suma = Suma + CeldaDestino(BaseDestino + ColumnasDestino)
    Next X
    BaseDestino = 0   'primera fila
    CeldaDestino(BaseDestino + ColumnasDestino) = Suma
    Suma = 0
    
    '***********************************
    'obtiene la suma de la ultima fila para despues sumarlo
    'a las columnas y obtener el resultado de las sumas de la primera fila
    For X = 1 To ColumnasDestino
        BaseDestino = (FilasDestino - 1) * ColumnasDestino
        Suma = Suma + CeldaDestino(BaseDestino + X)
    Next X
    SumaUltimaFila = Suma
    Suma = 0
    Debug.Print "LEEME *****:"
    Debug.Print "BaseDestino="; BaseDestino
    Debug.Print "columnas="; Columnas
    Debug.Print "SumaUltimaFila="; SumaUltimaFila
    
    '*************************************
    'suma de la primera fila
    For X = 1 To ColumnasDestino - 1
        For Y = 2 To FilasDestino - 1
            BaseDestino = (Y - 1) * ColumnasDestino
            Suma = Suma + CeldaDestino(BaseDestino + X)
        Next Y
        Suma = Suma + SumaUltimaFila
        BaseDestino = 0    '1ra fila
        CeldaDestino(BaseDestino + X) = Suma
        Suma = 0
    Next X
    
    '**********************************************
    
    'imprime las celdas destino
    cadena = ""
    Debug.Print "*************************************" & vbCrLf
        'For X = 1 To ColumnasDestino
        'BaseDestino = (X - 1) * ColumnasDestino
        'For Y = BaseDestino + 1 To BaseDestino + ColumnasDestino
            'cadena = cadena & CeldaDestino(Y) & " "
        'Next Y
        'cadena = cadena & vbCrLf
    'Next X
    
    
For X = 1 To FilasDestino
    For Y = 1 To ColumnasDestino
        BaseDestino = (X - 1) * ColumnasDestino
        cadena = cadena & CeldaDestino(BaseDestino + Y) & " "
    Next Y
    cadena = cadena & vbCrLf
Next X


    Debug.Print cadena
End Function

Código:
Option Explicit
'Form1
Private Sub Form_Load()
    Krabby_ZigZag 64
End Sub

use las etiquetas de codigo simple para que se pueda hacer copy/paste al codigo por si kieren probarlo.
nota: no funka con el numero cero "0" , por que mi array empieza desde "1", black en el 1er post dijiste q no importaba  si el array comienza de "0" o "1".

-Veo que has cambiado las reglas, ahora es "bidimensional", es obligatorio? o lo dejo asi?

edito:
PD: me adelante a las 3 horas q te dije  xp xp  :xD :xD
12  Programación / Programación Visual Basic / Re: [Reto] Zip Zag (OJO ANALISIS) en: 3 Enero 2011, 08:00 am
hey una duda los numeros negativos donde empiezan y hacia donde van a - o +, si por ejm: tengo -64 , tiene que sacarme desde -1 hasta -64, o sera desde -64 hasta -1?
13  Programación / Programación Visual Basic / Re: [Reto] Zip Zag (OJO ANALISIS) en: 3 Enero 2011, 07:49 am
blackzero en ambos ejemplos en la primera fila, los numeros van creciendo pero terminan en un numero menor.
este ultimo numero que es menor no coincide con los demas, ¿se calcula a parte de todos los demas?
please si puedieras responder aorita, son las 1:47 am y me boi a qdar despierto a desarrolar el reto.




4279 4314 4354 4397 4441 4484 4524 5558 2080 <--este ultimo
1 2 4 7 11 16 22 29 92
3 5 8 12 17 23 30 37 135
6 9 13 18 24 31 38 44 183
10 14 19 25 32 39 45 50 234
15 20 26 33 40 46 51 55 286
21 27 34 41 47 52 56 59 337
28 35 42 48 53 57 60 62 385
36 43 49 54 58 61 63 64 428
120 155 195 238 282 325 365 399 2079





100 105 110 45 <-- este ultimo
1 2 4 7
3 5 7 15
6 8 9 23
10 15 20 45

edito: ya di con el clavo.
14  Programación / Programación Visual Basic / Re: [Reto] Zip Zag en: 3 Enero 2011, 00:37 am
edito: ahora entiendo.
15  Programación / Programación Visual Basic / Re: [RETO] Alternativa a Instr() en: 2 Enero 2011, 08:36 am
Bien pues ... ya son las 2:35 am por aki y me kgo de sueño, mañana espero el reto zig zag (me suena a encriptacion) , pero weno qué será? qué será?
hasta mañana.
16  Programación / Programación Visual Basic / Re: [RETO] Alternativa a Instr() en: 2 Enero 2011, 03:51 am
propongo que para no estar codeando a cada rato haciendo pequeñas mejoras, mejor averiguamos todo lo que hace el instr , luego ponemos a prueba el instr en distintos casos para ver lo que resulta, por ejmplo: que es lo que devuelve cuando se busca cadenas vacias, o que devuelve cuando se le pasa una posicion mayor a la cadena de busqueda, etc... y luego tratamos de igualar, o mejor dicho imitar al instr y despues vemos cual de todos los codes es el mejor.


editado: Mr Frog. anda pensando en otro reto, y lo lanzas despues de este.
 ;D ;D ;D ;D
17  Programación / Programación Visual Basic / Re: [RETO] Alternativa a Instr() en: 2 Enero 2011, 01:10 am
mmmmm se me paso ese detalle de q si se busca cadena vacia el instr siempre devuelve la posicion que le indicamos, black zero nos dio un jalon de orejas, ahora todos a mejorar nuestros codes.
18  Programación / Programación Visual Basic / Re: [RETO] Alternativa a Instr() en: 1 Enero 2011, 21:41 pm
bueno si tienes razon hay veces que el vb da un resultado en debug y otro cuando es compilado, e incluso falla en uno y en el otro no.
ehhh pero segun veo el q le gana al instr es Mr Frog.



edito: mmm :C :C quede tercer puesto .
19  Programación / Programación Visual Basic / Re: [RETO] Alternativa a Instr() en: 1 Enero 2011, 20:32 pm
Bien pues el resultado que me dio:

Código:
RESULTADOS PRUEBA 1:


============ RETO INSTR 31/12/10 ============
String a buscar:            col
String donde buscar:        Baila baila baila como Juana, baila la cubana, parece refresco de cola, a mi me parece que estás bien buena.
Nº de vueltas:               250          

3 Offsets:     1             10            20
============ COMPROBACION ============
Valores de InStr:                          67            67            67


============ VELOCIDAD ============
InStr          0.477649485502989
Raul338        10.0386183350126
Miseryk        16.4880727613527
gaston93       2.41434061336485
Mr Frog        5.18079225155567
Tokes          16.6270077772112
79137913       11.2904333267657
Tokes v2       9.7320513982567
Tenient101     10.14500686101
BlackZeroX     3.33684112168503
krabby         4.56310886870851

____________________________________________________________________________________________________________________________________________

RESULTADOS PRUEBA 2:
============ RETO INSTR 31/12/10 ============
String a buscar:            la
String donde buscar:        Baila baila baila como Juana, baila la cubana, parece refresco de cola, a mi me parece que estás bien buena.
Nº de vueltas:               250          

3 Offsets:     1             10            20
============ COMPROBACION ============
Valores de InStr:                          4             10            34
BlackZeroX no devuelve los mismos valores  4             16            34


============ VELOCIDAD ============
InStr          0.284480818743699
Raul338        1.87330946357435
Miseryk        2.6841720120485
gaston93       3.54192950290311
Mr Frog        3.34420082794071
Tokes          2.48609337482952
79137913       2.04759066734653
Tokes v2       1.64408418552059
Tenient101     1.47925196267583
BlackZeroX     3.07158023007219
krabby         4.22855545029469


___________________________________________________________________________________________________________________________________________

RESULTADOS PRUEBA 3:
============ RETO INSTR 31/12/10 ============
String a buscar:            Ñ
String donde buscar:        Baila baila baila como Juana, baila la cubana, parece refresco de cola, a mi me parece que estás bien buena.
Nº de vueltas:               250          

3 Offsets:     1             10            20
============ COMPROBACION ============
Valores de InStr:                          0             0             0


============ VELOCIDAD ============
InStr          0.368475259943215
Raul338        13.7436827438161
Miseryk        49.2554028048075
gaston93       1.92160775460367
Mr Frog        0.345727713266124
Tokes          25.6878945605716
79137913       15.5823844398382
Tokes v2       13.4906600323155
Tenient101     16.8831941475112
BlackZeroX     2.26947023763487
krabby         2.08259039262616


en la tercera prueba de la "Ñ" en ambos resultados sale que Mr. Frog le gana al instr, :D :D :D
20  Programación / Programación Visual Basic / Re: [RETO] Alternativa a Instr() en: 1 Enero 2011, 20:12 pm
supongo que dices por lo del color, no sabia lo de poner el code =vb, igual no es muy conveniente cuando kieres copiar / pegar un codigo que tiene esas etiquetas, porque en vez de salir los saltos de linea salen unos espacios y hay que editar el codigo poniendo lo saltos correspondientes.
voi a bajar y provar como va ahora tu tester de funciones corregido.
un saludo
Páginas: 1 [2] 3
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines