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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 128
151  Programación / Programación Visual Basic / Re: vb6 es tonto en: 2 Octubre 2011, 01:44 am
Sí, probé compilado. :P
Yo también sabía esto de hace tiempo, pero ingenuo de mí, llegué a pensar que en todos los lenguajes era igual. :laugh:
Y la gente que no programa en vb6 no lo suele saber, así que no creo que esto haya sido 100% en vano.

DoEvents! :P
152  Programación / Programación Visual Basic / vb6 es tonto en: 2 Octubre 2011, 01:08 am
Hola chicos, bueno a raíz de una discusión con la profesora de programación he investigado sobre los Ifs de vb6... :rolleyes:

En esta situación:
Código
  1. If A = True Or B = False Then
Lo lógico sería que al leer A=True no comprobara Lo siguiente puesto que la condición se cumpliría de todas formas. :)
Pero no, vb te comprueba TODO el If pase lo que pase en todos los casos. :¬¬

Aquí un código que lo demuestra:

Código
  1. Option Explicit
  2.  
  3. Private Function OrTest(ByVal bReturn As Boolean) As Boolean
  4.    '// Imprimo un texto para saber que he pasado por la función.
  5.    Debug.Print Time$, "Función con el argumento " & bReturn & " llamada."
  6.    OrTest = bReturn
  7. End Function
  8.  
  9. Private Sub Form_Load()
  10.  
  11.    '// Aquí lo logico sería comprobar las dos ya que
  12.    '// si la primera no es true, lo puede ser la segunda.
  13.    If OrTest(False) Or OrTest(False) Then
  14.        '// Nothing
  15.    End If
  16.  
  17.    Debug.Print String$(75, "=")
  18.  
  19.    '// Lo lógico sería que se saltase la segunda función puesto
  20.    '// que la primera es true, pero no, nuestro querido vb
  21.    '// comprueba igual...
  22.    If OrTest(True) Or OrTest(False) Then
  23.        '// Nothing
  24.    End If
  25. End Sub
  26.  

Retorno:
Código:
00:27:48      Función con el argumento Falso llamada.
00:27:48      Función con el argumento Falso llamada.
===========================================================================
00:27:48      Función con el argumento Verdadero llamada.
00:27:48      Función con el argumento Falso llamada.


Sé que alguno dirá: ¿y a mí qué más me da si el resultado es el mismo?
Bueno, pues imagina que tienes un If tal que así:

Código
  1. If Calculo(1) Or Calculo(2) Or Calculo(3) Or Calculo(4) Or Calculo(5) Then
  2.    '...
  3. End If
La función Calculo() es un algoritmo complejo y tarda 1 segundo de media.
Si fuera otro lenguaje de programación si Calculo(1) es true se saltaría los demás, pero nuestro querido vb6 llamará a todas las demás funciones perdiendo tiempo innecesariamente... :-\ Pasando de 1 seg a 5 en este caso.
La alternativa que propongo en estos casos es (no son agradables a la vista, aviso :xD) :

Sustituir esto:
Código
  1.    If A(324) = 45 Or B(12) = 2 Or B(4563) = 56 Then
  2.        Call DoIt
  3.    End If

Por esto:
Código
  1.    If A(324) = 45 Then
  2.        Call DoIt
  3.    ElseIf B(12)=2 Then
  4.        Call DoIt
  5.    ElseIf B(4563) = 56 Then
  6.       Call DoIt
  7.    End If

Esto:
Código
  1.    If A(324) = 45 And B(12) = 2 And B(4563) = 56 Then
  2.        '...
  3.    End If

Por esto:
Código
  1.    If A(324) = 45 Then
  2.        If B(12) = 2 Then
  3.            If B(4563) = 56 Then
  4.                '...
  5.            End If
  6.        End If
  7.   End If
Con esto no quiero decir que lo hagáis así de normal, sólo cuando necesitemos velocidad.
Hice estas pruebas a ver si algún lenguaje más era tonto, pero por ahora sólo es vb6.
Si alguien sabe de otro hacedmelo saber, me interesa mucho.
Dedico este articulo a Karcrack, BlackZero, TheSwash y raul338 por orientarme y ayudarme con los test.

VB.NET tiene una expresion para evitar esto:
Código:
Short-Circuiting Logical Operations http://msdn.microsoft.com/en-us/library/wz3k228a.aspx

Más info:
Código:
http://en.wikipedia.org/wiki/Short-circuit_evaluation

Espero que al menos a alguien le sirva todo esto. :)

DoEvents! :P
153  Programación / Programación Visual Basic / Re: [RETO] Palabras pronunciables en: 30 Septiembre 2011, 01:44 am
Está mal... algunos carácteres de esa palabreja:
Código:
iasxinu
Sólo con la mandíbula desencajada podría pronunciar eso. :laugh:

PD: Por cierto hay que hacer otra sesion de Skype! xD

DoEvents! :P
154  Programación / Programación Visual Basic / Re: [RETO] Palabras pronunciables en: 29 Septiembre 2011, 16:31 pm
HAHAHAHAHAHA :xD
¡Dios que fealdad! :laugh: :laugh: :laugh: :laugh:

DoEvents! :P
155  Programación / Programación Visual Basic / [RETO] Palabras pronunciables en: 29 Septiembre 2011, 11:01 am
Bueno, pues la idea es generar una funcion donde ingresemos la longitud de la cadena y te generara una palabra pronunciable.
Por supuesto deben estar contemplados las combinaciones entre dos consonantes.

Ejemplos falsos:
Código:
asdoijs
ouughjt
esrah
wilsohc

Ejemplos verdaderos:
Código:
hola
chema
llama
nikos
clueim
tefral

Sin límite de entrega, todo vale... :)

DoEvents! :P
156  Programación / Programación Visual Basic / Re: Verificar celdas... en: 23 Septiembre 2011, 21:41 pm
Perfecto, muchas gracias, que buena idea, no se me había ocurrido. :-*
Lo de mirar todos los pixels no me lo planteo... demasiado tiempo. :-\
¿Alguna idea para verificar este?

Encima es una animación que gira... :xD
Igual podría ser: si no es ningun color en concreto y no es moneda por tanto es molino.

DoEvents! :P
157  Programación / Programación Visual Basic / Verificar celdas... en: 23 Septiembre 2011, 18:58 pm
Hola buenas, pido vuestra ayuda:
Hay un juego del estilo al biotronic, y al igual que el bioSolver necesito hacer una plantilla que descifre los cuadros que hay debajo.
Para ello pensé hacer 4 GetPixel() por cada celda, si esos cuatro puntos son de un color similar, podré deducir el color de la celda.
El problema es que hay figuras diferentes que no sé como validar:
Este:

O podría confundir estos dos:


¿Alguna idea? ¿Alguna forma mejor de hacerlo?
Tened en cuenta que debe ser algo rápido, se debe actualizar cada 500ms o así... ::)
Igual con el CheatEngine se podría hacer algo, pero a todo el mundo que pregunto me llama loco.
Gracias. :D

DoEvents! :P
158  Programación / Programación Visual Basic / Re: [RETO] Sudoku en: 23 Septiembre 2011, 16:13 pm
Las reglas del Sudoku:

Regla 1: hay que completar las casillas vacías con un solo número del 1 al 9.

Regla 2: en una misma fila no puede haber números repetidos.

Regla 3: en una misma columna no puede haber números repetidos.

Regla 4: en una misma región no puede haber números repetidos.

Regla 5: la solución de un sudoku es única.


Reglas explicadas con imágenes.

Ésto tendrá que confirmarlo el autor del reto, si se respetan las reglas o no.
Éso es madpitbull_99, pero como dice raul a veces hay más de una solución válida, a mí me a pasado.
Código:
http://es.answers.yahoo.com/question/index?qid=20110327233520AA7q9QG

@BlackZero: Precioso el código, voy a analizarlo. :D

DoEvents! :P
159  Programación / Programación Visual Basic / Re: [RETO] Sudoku en: 23 Septiembre 2011, 00:39 am
@Shell
Ok, gracias, ya entendí.


Un ej:
http://sudoku.friko.net/es/

DoEvents! :P
160  Programación / Programación Visual Basic / Re: [RETO] Sudoku en: 22 Septiembre 2011, 16:53 pm
No, claro que hay datos de entrada.
Entra una matriz así:

Los huecos serán 0 en la matriz de entrada.
Y deberá retornar la matriz que corresponda a la solución.

@BlackZero
¿BackTracking? ¿Puedes explicar qué es? :huh:

DoEvents! :P
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 128
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines