• Lunes 29 de Abril de 2024, 06:24

Autor Tema:  Operaciones Logicas  (Leído 3498 veces)

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Operaciones Logicas
« en: Miércoles 20 de Septiembre de 2006, 02:10 »
0
Los operadores, &, !, ,|, ^, tambien ~, son los de operaciones y/0 manejo a nivel de bits, junto con los de desplazamiento >> ,<<. pero buscaba algo como esto:

e= !a - b^c + b & d

Buscaba si existiera alguna funcion para implementar este tipo de operaciones en C, pero hasta ahorita solo eh encontrado lo habitual.

Alguien ah necesitado algo al respecto o existira alguna funcion pre-definida?

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Operaciones Logicas
« Respuesta #1 en: Miércoles 20 de Septiembre de 2006, 04:26 »
0
la verdad no te entiendo que es lo que quieres.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

chimps

  • Miembro MUY activo
  • ***
  • Mensajes: 208
    • Ver Perfil
    • http://quiqueq.blogspot.com
Re: Operaciones Logicas
« Respuesta #2 en: Miércoles 20 de Septiembre de 2006, 14:15 »
0
no se si entendi bien pero creo que te referis a los operadores logicos como:
AND: &&
OR: ||
NOT: !

ej. lo usarias de la forma: "bool a = b ?? c" (o int en C), y eso te daria el tipico resultado (V si ambos V, F de lo contrario)

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #3 en: Miércoles 20 de Septiembre de 2006, 18:30 »
0
:P  :P  :P

tambien te podria servir sqrt();
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #4 en: Miércoles 20 de Septiembre de 2006, 18:46 »
0
Cita de: "Bicholey"
:P  :P  :P

tambien te podria servir sqrt();
¿Que? ¿La raiz cuadrada?

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Operaciones Logicas
« Respuesta #5 en: Miércoles 20 de Septiembre de 2006, 18:50 »
0
Cita de: "Eternal Idol"
Cita de: "Bicholey"
:P  :P  :P

tambien te podria servir sqrt();
¿Que? ¿La raiz cuadrada?
Me imagino que lo dice por el operador ^ que usualmente en psudocodigo y puede que en otros lenguajes se use para hacer potenciacion, en cuyo caso no seria sqrt() sino pow() .
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #6 en: Miércoles 20 de Septiembre de 2006, 19:02 »
0
:P  :P  :P  :P


podes usarla asi 1/2  raiz de 2  == 4  como si fuera potencia espero me de a entender  como sabes la raiz es el inverso de la potencia , pero poder sacar potencias con raices e inverso   por ejemplo 4 ^ 1/2  = 2.
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #7 en: Miércoles 20 de Septiembre de 2006, 19:15 »
0
Ni pow ni sqrt son operadores logicos sino funciones.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Operaciones Logicas
« Respuesta #8 en: Miércoles 20 de Septiembre de 2006, 19:22 »
0
Cita de: "YO"
usualmente en pseudodigoy puede que en otros lenguajes se use para hacer potenciacion, en cuyo caso no seria sqrt() sino pow()

En psudocodigo y algunos lenguajes (que no recuerdo)

<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->a = b^2; //b elevado al cuadrado
a = b^3; //b elevado al cubo
a = b^n; //b elevado a la nsima potencia<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->

Alli si se considera ^ como operador logico al igual que + , -, *, /

Si mal no recuerdo en otros lenguajes ^ lo usan como XOR y ~^ como EXOR .
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #9 en: Miércoles 20 de Septiembre de 2006, 19:32 »
0
:lol:  :lol:  :lol:


podran o no ser operadores logicos pero la gatita buscaba estas operaciones:

Cita de: "cybergatita"
pero buscaba algo como esto:

e= !a - b^c + b & d

Buscaba si existiera alguna funcion para implementar este tipo de operaciones en C, pero hasta ahorita solo eh encontrado lo habitual.

Alguien ah necesitado algo al respecto o existira alguna funcion pre-definida?
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Operaciones Logicas
« Respuesta #10 en: Miércoles 20 de Septiembre de 2006, 19:34 »
0
la verdad no te entiendo que es lo que quiere
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #11 en: Miércoles 20 de Septiembre de 2006, 19:37 »
0
B)  B)  B)

Ami parecer te has vuelto muy tècnico y ya no recuerdas las tipicas preguntas de la escuela o la de tus compañeros...
pues deberiamos de esperar a ver si ella misma nos da algun indicador de que aun existe...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #12 en: Miércoles 20 de Septiembre de 2006, 19:40 »
0
Cita de: "Bicholey"
B)  B)  B)

Ami parecer te has vuelto muy tècnico y ya no recuerdas las tipicas preguntas de la escuela o la de tus compañeros...
pues deberiamos de esperar a ver si ella misma nos da algun indicador de que aun existe...
Y a mi me parece que vos respondes cualquier cosa MUCHAS veces.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #13 en: Miércoles 20 de Septiembre de 2006, 19:48 »
0
Disculpen por no responder  mucho antes:

por ejemplo  que el usuario tecleara alguna operacion similar a esto:

8&5-15^4 + !4 |10

&= OPERADOR AND
^= OPERADOR XOR
|= OPERADOR OR
! O bien  ~ = OPERADOR NOT

A eso me referia con esos operadores, a nivel de bits.

Eh tratado de buscar como leer algo asi para que me de el resultado, pero no eh encontrado algo con exito.
Por cierto el resultado de esa operacion seria 34, si mis calculos no me fallan.
Tambien estoy buscando en java si habra algo al respecto.

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #14 en: Miércoles 20 de Septiembre de 2006, 19:49 »
0
En fin que lo que quiere es interpretar una cadena con LOS OPERADORES LOGICOS de C ... nada de funciones.

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #15 en: Miércoles 20 de Septiembre de 2006, 20:18 »
0
:lol:  :lol:  :lol:

quereis interpretar cadenas y nosotros discutiendo otras cosas , porque no lees toda la cadena y vas separando operadores y jerarquizando las operaciones a realizar o si no es esto por favor se mas clara en lo que pides...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #16 en: Miércoles 20 de Septiembre de 2006, 21:00 »
0
bicholey:

quereis interpretar cadenas y nosotros discutiendo otras cosas , porque no lees toda la cadena y vas separando operadores y jerarquizando las operaciones a realizar o si no es esto por favor se mas clara en lo que pides


Asi es bicholey podria ser una cadena esta operacion
8&5-15^4 + !4 |10

El problema que me eh visto es la forma en que la debo leer o tomar la cadena para que haga las operaciones deseadas

por ejemplo de dos valores los tomaria asi

printf("teclea primer valor\n")
scanf("%d",&a);
printf("teclea sergundo valor \n");
scanf("%d",&b);

c=15&8;
printf("El valor es:%d\n", 8);




Gracias a todos por sus respuestas y el intereses a mi duda  de una principiante!!
espero ya ser mas claro con esto.-

JuanK

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Operaciones Logicas
« Respuesta #17 en: Miércoles 20 de Septiembre de 2006, 21:09 »
0
lo primero es que no puedes seguirlo usando asi.

si vas a analizar toda la cadena captura todo de nua vez en una variable string y una vez tengas la cadena alli inicias la busqueda de operadores y de valores, ya con esto debes ir creando un arbol binario donde unos nodos son los operadores y otros los valores... bueno es algo grande de explicar...

por si acaso averiguate de notacion infijo y postfijo. o si alguien tiene mas tiempo para que te ayude mas detalladamente que lo haga.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #18 en: Miércoles 20 de Septiembre de 2006, 21:10 »
0
:D  :D

podei hacer esto :


char cadena[30];

printf("teclea la operacion completa\n")
fflush(stdin);
gets(cadena);

/* aqui capturaste toda la cadena */


ya despues podeis procearla mediante ciclos por ejemplo while(car!='!'&&car!='^')
entonces hacer la operacion o como tu creas mas conveniente...
Espero te haya sido de ayuda...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Bicholey

  • Moderador
  • ******
  • Mensajes: 1234
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #19 en: Miércoles 20 de Septiembre de 2006, 21:15 »
0
:whistling:

lo de los arboles se ha tratado mucho en el foro si buscas seguro encuentras algo...
[size=109]LOS GATOS SIEMPRE CAEMOS DE PIE !!![/size]


Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #20 en: Miércoles 20 de Septiembre de 2006, 21:27 »
0
Cita de: "Bicholey"
char cadena[30];

printf("teclea la operacion completa\n")
fflush(stdin);
gets(cadena);

/* aqui capturaste toda la cadena */
Que podriamos titular: Como hacer codigo inseguro ... ahi capturaste todo lo que escriban en consola pero tu variable local no inicializada se puede reventar ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

cybergatita

  • Miembro MUY activo
  • ***
  • Mensajes: 154
    • Ver Perfil
Re: Operaciones Logicas
« Respuesta #21 en: Miércoles 20 de Septiembre de 2006, 21:33 »
0
Gracias


.. ya me quedo mas amplio para resolver esto.