Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Danyfirex

#291
Cita de: rob1104 en 24 Enero 2013, 22:03 PM
Si  :)

Código (vb) [Seleccionar]
Private Sub Form_Load()
   Dim x, y As Long
   x = 4613732
   y = 4613732
   MsgBox LenB(x) & " bytes"
   MsgBox LenB(y) & " bytes"
End Sub


Gracias.

ya alargue el tema con mis preguntas y respuestas tontas  :silbar:

Edito mi código. saludos
#292
Cita de: Psyke1 en 24 Enero 2013, 20:49 PM
Como no organices mejor el código no nos vamos a enterar de nada. :silbar: No abuses tanto de los ":".

Y te informo que haciendo esto:
Código (vb) [Seleccionar]
Dim a, b, c As Long
Sólo declaras la última variable como Long, las otras, como no has puesto nada, por defecto serían Variant, que ocupa memoria innecesariamente.
Sería así:
Código (vb) [Seleccionar]
Dim a As Long, b As Long, c As Long

DoEvents! :P

No sabia eso.  Gracias Psyke1. y perdon por el abuso de los :.

gracias Corrijo el código.

saludos



EDITO:

Comprobé asi y me dice que es long.

Código (vb) [Seleccionar]
Private Sub Form_Load()
Dim x, y As Long
x = 4613732
MsgBox (VarType(y) = vbLong)
End Sub


Seguro que abarca los bytes de un tipo Variant?
#293
Deja de usar bacth en vb6.
#294
Esto va en NET
#295
Bueno aquí dejo la mía. un Poco larga :silbar: pero funciona.  ;D


Correjido

Código (vb) [Seleccionar]
Private Function Fibonacci() As Long
Dim a As Long, b As Long, c As Long, x As Long: x = &H4
a = 0
b = 0
c = 0
a = (a * x) + 2: Fibonacci = Fibonacci + a: b = a: a = (a * x): Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: b = a: a = (a * x) + c: Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: b = a: a = (a * x) + c: Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: b = a: a = (a * x) + c: Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a: b = a: a = (a * x) + c: Fibonacci = Fibonacci + a: c = a: a = (a * x) + b: Fibonacci = Fibonacci + a:
end Function



Saludos
#296
Bueno aquí dejo  mi otra funcion un poco mas optima que las anteriores ("mias")  :¬¬


Código (vb) [Seleccionar]
Function mul_3_5(numero As Long) As Long
Dim a, b, c, d, e, f, g, i As Integer
a = 3
b = 2
c = 1
d = 3
e = 1
f = 2
g = 3
i = 0
While i < numero
i = i + a
mul_3_5 = mul_3_5 + i
If i = numero - 1 Then Exit Function
i = i + b
mul_3_5 = mul_3_5 + i
If i = numero - 1 Then Exit Function
i = i + c
mul_3_5 = mul_3_5 + i
If i = numero - 1 Then Exit Function
i = i + d
mul_3_5 = mul_3_5 + i
If i = numero - 1 Then Exit Function
i = i + e
mul_3_5 = mul_3_5 + i
If i = numero - 1 Then Exit Function
i = i + f
mul_3_5 = mul_3_5 + i
If i = numero - 1 Then Exit Function
i = i + g
mul_3_5 = mul_3_5 + i
If i = numero - 1 Then Exit Function
Wend

End Function



Muy Rápidas  las de  BlackZeroX  & MCKSys Argentina  :o


saludos
#297
Cita de: Psyke1 en 23 Enero 2013, 22:13 PM
@Danyfirex

http://code.google.com/p/projecteuler-solutions/wiki/ProjectEulerSolutions

Ahí está el resultado de todas las soluciones. ;)

DoEvents! :P

A pues así pues si. bueno en fin aqui dejo la mia como la pides. no es lo mas optimo pero funciona bien.


Código (vb) [Seleccionar]
Function mul_3_5(numero As Long) As Long
Dim i As Integer
For i = 0 To numero - 1
If (i Mod 3) = 0 Or (i Mod 5) = 0 Then mul_3_5 = mul_3_5 + i
Next i
End Function




Cuando y donde podemos colocar el reto 2?
#298
@Psyke1
creo la primera debería imprimir 234168 en vez de 233168.

100% de acuerdo en poner el reto en Español.
#299
Cita de: LeandroA en 23 Enero 2013, 20:38 PM
Hola yo la verdad, no entiendo, en primer instancia dice que  3, 5, 6 and 9 son los que estan por devajo de 10, hasta hay todo bien, pero luego sus resultados no me son coherentes con esta lógica (aunque segun la pagina el resultado final es correcto)

pero por ejemplo el ejemplo de Danyfirex, solo mirando los primeros números de multiplos de 3 imprime esto
y no veo que el 2 sea un múltiplo de 3 , ni el resto de los siguientes.

ami la logica me dice algo asi,


porque estoy equivocado???








hasta ahi vas bien. pero entonces te faltaría quitar los múltiplos de 15.
#300
Cita de: 79137913 en 23 Enero 2013, 17:09 PM
HOLA!!!

Eso que me decis me deja atonito...

Hice los testeos y los acabe de realizar nuevamente, tu funcion es aprox 100% mas lenta que la mia ( y siendo generoso 100%), proba con este ejemplo que arme para medir el timing, acordate que se testea compilado.

(borre el codigo por que lo hizo E_C abajo.

GRACIAS POR LEER!!!

Estabas en lo cierto. bueno no un 100 pero si mucho mas.

la comprobé así.

Código (vb) [Seleccionar]
Dim ct As New CTiming
Private Sub Form_Load()
Form1.Show
MsgBox "empezara luego del ok"
ct.Reset
For x = 1 To 10000
Call mul5and3below1000
Next
Form1.Print "Tiempo 7913 -->" & ct.sElapsed
Form1.Print "Resultado 7913 -->" & mul5and3below1000()
ct.Reset
For x = 1 To 10000
Call mul_3_5
Next
Form1.Print "Tiempo dany -->" & ct.sElapsed
Form1.Print "Resultado dany -->" & mul_3_5()
End Sub


Private Function mul5and3below1000() As Long
   Dim ct As Long
   Dim aux As Long
   Do
       mul5and3below1000 = mul5and3below1000 + aux + aux2
       ct = ct + 1
       aux = ct + ct + ct
       aux2 = ct + ct + ct + ct + ct
   Loop While aux2 < 1000
   Do
       mul5and3below1000 = mul5and3below1000 + aux
       ct = ct + 1
       aux = ct + ct + ct
   Loop While aux < 1000
   ct = 0
   aux = 0
   Do
       mul5and3below1000 = mul5and3below1000 - aux
       ct = ct + 1
       aux = ct + ct + ct + ct + ct + ct + ct + ct + ct + ct + ct + ct + ct + ct + ct
   Loop While aux < 1000
End Function

Function mul_3_5() As Long
Dim i As Integer
For i = 1 To 999
If (i Mod 3) < 1 Or (i Mod 5) < 1 Then
mul_3_5 = mul_3_5 + i
End If
Next i
End Function


gracias vere si la puedo mejorar.

saludos