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

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  [RESUELTO]no le entiendo del todo el and, or , not y xor
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [RESUELTO]no le entiendo del todo el and, or , not y xor  (Leído 4,485 veces)
theghost_te

Desconectado Desconectado

Mensajes: 53


Ver Perfil
[RESUELTO]no le entiendo del todo el and, or , not y xor
« en: 12 Marzo 2013, 04:07 am »

el and , or yo lo se usar de esta forma:

Código
  1. if txtclave.text = "popeye" and txtnombre.text = "coder" then
  2.     msgbox "nombre y clave correctos"

lo interpreto asi: si clave es "popeye" Y nombre es "coder" entonces mostrar "clave y nombre correcto"
esto es facil de entender, pero en muchis codigos que he checado , lo usan de otra forma muy complicadisima incluso le agregan sumas y restas:

Código
  1. if (x and b) + (h or d) then


¿¿¿??? ¿que es esto? como se interpreta?, ademas lo guardan en una variable :

Código
  1. R = (x and b) + (h or d)

otra cosa que no le entiendo es cuando le ponen el not :

Código
  1. [code]if not (x and b) + (h or d) then
[/code]


peor se me hace dificilisimo entender cuando le ponen muchas sumas restas muliplicacion y division , porque no se le entiende cual de las operaciones es la que se realiza primero, jemplo he checado codes como este:

Código
  1. R = not b and g or t and d + 45 or 2 * 5

¿¿¿???

ayuda, no logro entender, me duele la cabeza.


« Última modificación: 19 Marzo 2013, 03:09 am por theghost_te » En línea

79137913


Desconectado Desconectado

Mensajes: 1.169


4 Esquinas


Ver Perfil WWW
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #1 en: 12 Marzo 2013, 12:07 pm »

HOLA!!!

Leete este reto completo y podras apreciar como funcionan internamente esos operadores:
    [RETO] Reemplazo de Operadores Binarios.

Ante cualquier duda que surja me avisas

GRACIAS POR LEER!!!


En línea

"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*
Danyfirex


Desconectado Desconectado

Mensajes: 493


My Dear Mizuho


Ver Perfil
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #2 en: 12 Marzo 2013, 14:14 pm »

mira esto así lo entiendes.

http://es.wikipedia.org/wiki/Puerta_l%C3%B3gica


Igual te explico lo tuyo.

Recuerda que cuando haces operaciones >,=,< Etc. siemrpe obtienes un retorno booleano de esa operacion.

Código
  1. Private Sub Form_Load()
  2. Dim c As Boolean
  3. c = 1 = 1 ' si son iguales obtienes true(Verdadero)
  4. MsgBox (c)
  5. c = 1 = 2 ' si son iguales Diferente False(falso)
  6. MsgBox (c)
  7. End Sub
  8.  


Código
if txtclave.text = "popeye" and txtnombre.text = "coder" then
     msgbox "nombre y clave correctos"

Respuesta:

Eso quiere decir.

que si el texto del textbox es igual a popeye otenemos un "true" y el textbox2 igual a coder otendremos otro "true"

como usamos la compueta AND. Mira la tabla AND en wikipedia
entonces

llevandolo a lo logico nos queda

true and true

segun la tabla nos dice que

1 and 1 = 1 lo mismo que decir true and true=true

y asi todo quedo resuelto segun la tabla de la compuerta logica AND.

Código
if (x and b) + (h or d) then


¿¿¿??? ¿que es esto? como se interpreta?, ademas lo guardan en una variable :

Respuesta.

Código
  1. Private Sub Form_Load()
  2. Dim c As Boolean
  3. Dim a As Boolean
  4. Dim b As Boolean
  5. 'Seria algo así,claro respectivamente de los valores. yo te puse con true y false
  6. a = (True And False)
  7. b = (True or True) ' te toca mirar la tabla de la compuerta or en wikipedia
  8. c = a + b
  9. MsgBox (c)
  10.  
  11. End Sub
  12.  




Código
R = (x and b) + (h or d)

respuesta:


aquí igual que arriba solo que asignas el resultado a una variable booleana.




otra cosa que no le entiendo es cuando le ponen el not :

Código
Código:
if not (x and b) + (h or d) then

Respuesta:


Esta es la mas fácil porque not que hace es invertir si es Not(true) te da false. y not(false) te da true.




peor se me hace dificilisimo entender cuando le ponen muchas sumas restas muliplicacion y division , porque no se le entiende cual de las operaciones es la que se realiza primero, jemplo he checado codes como este:

Código
R = not b and g or t and d + 45 or 2 * 5

¿¿¿???

ayuda, no logro entender, me duele la cabeza.

Respuesta:

Ahi lo unico que tienes que hacer es usar "()" para ordenarlo y verlo mas comodo

Código
  1. R = Not ((b And g) Or (t And d) + (45 Or 2 * 59))



Lo mas importante practicar. y mirar la wiki un buen rato.

Perdon por los errores escribi rapido.  espero se entienda.
Saludos
« Última modificación: 12 Marzo 2013, 15:34 pm por Danyfirex » En línea

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #3 en: 12 Marzo 2013, 14:35 pm »

Código
  1. if (x and b) + (h or d) then

Ahi lo que hace es hacer un And y un Or con esas variables, si miraste lo que dejo 79137913 entonces ya sabras que cuenta han hecho (con sus binarios), y luego suma los 2 binarios resultantes, para quedar con un numero binario, que si es distinto de 0 entonces sera True la condicion del if y por lo tanto se cumple la condicion y hara lo que sigue despues del Then.
Recuerda que True es un booleano pero pasado a integer es 1. Y False a integer es 0.
Y 0 pasado a booleano es False, pero cualquier otra numero distinto de 0 pasado a booleano es True.

Código
  1. R = (x and b) + (h or d)

Ahi lo que hace es guardar el numero en una variable, esa variable puede ser booleana o un integer por ejemplo, no recuerdo si en vb6 era necesario hacer el cambio de tipo de variables o si lo hace solo, creo que lo hace solo si. Asi que si esa suma da un numero distinto de 0 entonces pondra True a la variable R en caso de que sea booleana pero si es una variable integer entonces pondra el numero que le corresponda, por ejemplo 23512 que se yo.

Código
  1. if not (x and b) + (h or d) then

Lo unico que cambia ahi es el uso de "not" que es para hacer lo opuesto al resultado, es decir, si la suma esa da True, entonces la condicion dice: Si NO es True, entonces... Es decir, es como si fuera if (x and b) + (h or d) = False then. Pero algunos odian poner eso y se ahorran poner el "igual a " ya que si no pones nada entonces se sabe que se refiere a que queres que el valor de esa condicion sea True.


Código
  1. R = not b and g or t and d + 45 or 2 * 5

Aca te recomiendo mirar esto, si no entiendes ingles, lo puedes traducir:

http://msdn.microsoft.com/en-us/library/fw84t893

pd: Gracias Danyfirex por el link.
« Última modificación: 13 Marzo 2013, 00:08 am por $Edu$ » En línea

theghost_te

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #4 en: 17 Marzo 2013, 03:15 am »

grax a todos me sirvio, Danyfirex ese ejemplo que das es facil de entender, yo antes ni sabia que una expresion te daba un resultado true-false, ahora segun mis apuntes los parentesis es para indicar que lo que esta dentro se ejecute antes que lo demas, pero tengo una duda : si no le pongo nada de parentesis como se ejecutarian? es decir que orden, por ejemplo la sgte linea:

Código:
R = not b and g or t and d + 45 or 2 * 5 

¿cuales se ejecutarian antes que las demas?, otra preguntita el not niega a todo lo que se encuenbtra a su derecha, incluyendo todas las expresionmes que haya?


Código:
R = not b and g or t and d + 45 or 2 * 5 


se niega solo "b" o todo el resultado que de todas las expresiones?



gracias

edit:

algun enlace donde aprender estas cosas del not, and, or etc pero en vb? el tema me queda claro , lo que no me queda muy claro es el orden en que se ejecutan, porque varias veces hay lineas de code muy pero muuuuuuuuuuuy anidados (NOTs dentro de ANDs dentro de ORs con sumas, restas y llamadas a otras funciones), o si pudieran explicarme se lo agradeceria, necesito entender al 100 % este tema.


edit 2:

cuando hacemos un Not asi :
Código:
if Not Funcion(Parametro) = 0 then

se obliga al if a que espere un resultado tipo false, o se invierte el resultado de la expresion?
« Última modificación: 17 Marzo 2013, 03:27 am por theghost_te » En línea

tincopasan


Desconectado Desconectado

Mensajes: 1.286

No es lo mismo conocer el camino que recorrerlo.


Ver Perfil
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #5 en: 17 Marzo 2013, 07:08 am »

quizá deberiás usar el debugger de vb y realizar cada operación línea a línea, así verias el resutado de cada operación y sabrías que toma o no.
En línea

MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.471


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #6 en: 17 Marzo 2013, 08:23 am »

Necesitas saber la precedencia de operadores:

En VB 2005, aunque debería ser igual a VB6: http://msdn.microsoft.com/es-es/library/fw84t893(v=vs.80).aspx

En VBScript (lo mismo): http://javascripts.astalaweb.com/Ayuda/html/vsgrpoperatorprecedence.asp

Mas: http://www.google.com.ar/search?q=vb6+precedencia+de+operadores&ie=utf-8&oe=utf-8

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

$Edu$


Desconectado Desconectado

Mensajes: 1.842



Ver Perfil
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #7 en: 17 Marzo 2013, 16:15 pm »

Ya te habia dejado un link que responde a todas tus preguntas...
En línea

arts

Desconectado Desconectado

Mensajes: 103


Ver Perfil
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #8 en: 17 Marzo 2013, 20:34 pm »

Un truquito:
Sabiendo que true = 1 y false = 0 y que los AND se suelen corresponder por multiplicaciones y los Or por Sumas. entonces según esto....

1 And 1 = es como decir 1 * 1 = 1 y 1 hemos dicho que era true
1 Or 1 = es como decir 1+1 pero como solo se usan 1 y 0 se queda en 1
false And true = es como decir 0*1 = 0 es decir false

Así sucesivamente con todos.
En línea

theghost_te

Desconectado Desconectado

Mensajes: 53


Ver Perfil
Re: no le entiendo del todo el and, or , not y xor
« Respuesta #9 en: 19 Marzo 2013, 03:08 am »

 :D  :D  :D  :D  gracias gracias gracias eso era lo que me faltaba entender.

$Edu$ , si tienes razon solo que no lo entendia bien porque esta en english, igual gracias.

MCKSys Argentina , muchas grax man en los 2 primeros enlaces esta exactamente lo que queria, creo que el primer es la version en español del enlace que me paso $Edu$ ¿o me parece?

ahora a imprimirlo y leerlo.


salu2
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
{RESUELTO} ¿Cómo redimensiono un jPanel? {RESUELTO} « 1 2 »
Java
|Miguel| 12 10,650 Último mensaje 13 Febrero 2012, 15:11 pm
por |Miguel|
[RESUELTO] No consigo limpiar un JTable... [RESUELTO]
Java
|Miguel| 2 29,294 Último mensaje 12 Febrero 2018, 09:06 am
por shoni_isra
[Resuelto] ¿Actualizar sólo el kernel o todo el S.O?
GNU/Linux
CodeJiyu 7 4,036 Último mensaje 5 Mayo 2014, 21:57 pm
por CodeJiyu
[Resuelto] navegador marca cargando cuando ya cargo todo(aparentemente)
Desarrollo Web
basickdagger 3 2,599 Último mensaje 16 Enero 2015, 22:48 pm
por basickdagger
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines