• Viernes 29 de Marzo de 2024, 03:17

Autor Tema:  ¿para Qué Sirven Estos Operadores?  (Leído 4508 veces)

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
¿para Qué Sirven Estos Operadores?
« en: Domingo 17 de Febrero de 2008, 19:10 »
0
Hola a todos,soy un principiante de Ada,y me gustaria saber ,cual es el objetivo de dichos operadores "and then" y "or else", para entenderlos mejor además de decirme para que sirven,me podían poner un ejemplo pequeño de su uso para entenderlos mejor.

Un saludo,espero respuesta.Gracias y perdón por las molestias

Itimag

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: ¿para Qué Sirven Estos Operadores?
« Respuesta #1 en: Domingo 17 de Febrero de 2008, 20:09 »
0
La verdad es que estos operadores así como los indicas no los he estudiado ni conocía de su existencia.

No serán el operador "and" y el "or" ?? El else y el then pertenece a los bucles condicionales.

Un bucle condicional tiene la siguiente estructura:

Código: Text
  1.  
  2. if .... then
  3.    instrucciones;
  4. si no
  5.    instrucciones;
  6. end if;
  7.  
  8.  

Los puntos suspensivos pueden contener varias variables unidas por operadores lógicos como el "or" o el "and".

Un ejemplo sería el siguiente:

Código: Text
  1.  
  2. if caracter1='a' and caracter2='b' and caracter3='c'  then -- Entra si el caracter 1 es a, el caracter 2 es b y el caracter 3 es c
  3.   put("Tenemos abc");
  4. else
  5.   if caracter1='d' or caracter2='e' then -- Entra si el caracter 1 es la 'd' o si es una 'e'
  6.      put("tenemos una d o una e");
  7.   end if;
  8. end if;
  9.  
  10.  
  11.  

La idea principal es que cuando tenemos "and", para entrar en un bucle (while) o al if (en este caso), se deben cumplir todas las condiciones (caracter1="a" and caracter2="b" and caracter3="c"). En cambio, con un or basta que se cumpla una de las condiciones para que entremos en el bucle o al if (en este caso).

No se si me he explicado bien. Si no lo has entendido, no dudes en decirmelo e intentaré explicarlo de alguna forma mejor o más detallada.

Un saludo.

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: ¿para Qué Sirven Estos Operadores?
« Respuesta #2 en: Domingo 17 de Febrero de 2008, 21:12 »
0
no.no...no respondes a mi pregunta, todo lo que me has explicado,,son estructuras de control y todo eso..pero en concreto me gustaría saber los operadores que he citado,..el funcionamiento de dichas estructuras que citastes se su funcionamiento.

Gracias de todas formas.

Itimag

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: ¿para Qué Sirven Estos Operadores?
« Respuesta #3 en: Domingo 17 de Febrero de 2008, 22:02 »
0
buscando en el libro de ada que hay en wikibooks, he encontrado que este tipo de operadores se llaman de corto-circuito y sobre ellos se cita lo siguiente:

<< Para los operadores lógicos existen versiones para minimizar las evaluaciones (short-circuit). Es decir, se evalúa primero el operando de la izquierda y después, sólo si es necesario para determinar el resultado, el de la derecha:

    * Conjunción: and then
    * Disyunción inclusiva: or else >>

Me gustaría ver algún ejemplo de su uso.  A mi no me queda del todo claro.

Gneuromante

  • Miembro activo
  • **
  • Mensajes: 31
    • Ver Perfil
    • http://www.canalada.org/
Re: ¿para Qué Sirven Estos Operadores?
« Respuesta #4 en: Lunes 18 de Febrero de 2008, 00:22 »
0
He editado el wikilibro para a la vez responderos. Ojalá que con esto ya quede claro:

http://es.wikibooks.org/wiki/Programaci%C3...da_/_Operadores
Gneuromante.
Nos vemos en http].

gandalfelgris

  • Miembro activo
  • **
  • Mensajes: 53
    • Ver Perfil
Re: ¿para Qué Sirven Estos Operadores?
« Respuesta #5 en: Lunes 18 de Febrero de 2008, 00:54 »
0
Hola compañeros,
                          viendo el mensaje de itimaq tengo que decir que no esta en lo9 cierto. A continuación explico el objetivo de and then y or else.

And then. Basicamente este operador funciona como un operador and pero con una diferencia. El operador and si recordamoses cierto si los dos son ciertos y falso en caso contrario. Entonces el operador and then en una sentencia condicional o en un bucle lo que consigue es no tener que evaluar la sentencia completa para saber el resultado de la condicion. Si tenenos un and then en un bucle o condicional lo que hace el sistema al ejecutar es mirar la primera parte de la sentencia. Solo en el caso de que esta se evalue a true (cierto) miramos la segunda parte de la sentencia, porque de otro modo no resulta necesario pues la sentencia completa se evaluaria a false. Esta idea nos ahorra ciclos de ejecución y tiempo de procesamiento de un programa.

Or else. La idea del or else es la misma que la de and then pero esta vez con el operador or. El operador or se evalua a false unicamente si las dos partes de la sentencia son false. Por tanto el sistema al ver un operador or else mira primero la primera parte de la sentencia y solo si esta se evalua a false mira la segunda parte, pues de lo contrario la sentencia competa se evaluaria automaticamente a true.

Espero que con todo este galimatias os haya aclarado algo.

Por si acaso hay van unos ejemplos

a=7; b=4
if (a<5 and then b>3)
put (a);
else
put (B);
end if;

En este caso solo mirariamos la primera parte pues al mirar esta nos damos cuenta de que se evalua a false con lo que no necesitamos evaluar la segunda y vamos directamente al else. Escribiriamos un 4.

a=7; b=4
if (a>5 or else b<3) then
put(a);
else
put(B)
end if;

En este caso solo mirariamos la primera parte pues al mirar esta nos damos cuenta de que se evalua a true con lo que no necesitamos evaluar la segunda y vamos directamente al if. Escribiriamos un 7;

Un saludo
gandalfelgris

Itimag

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: ¿para Qué Sirven Estos Operadores?
« Respuesta #6 en: Lunes 18 de Febrero de 2008, 12:58 »
0
muchas gracias a los 2. Ya lo he entendido.  :smartass:

pacorubio77

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: ¿para Qué Sirven Estos Operadores?
« Respuesta #7 en: Lunes 18 de Febrero de 2008, 13:33 »
0
Muchas gracias. por aclararme el concepto de dichos operadores,muchas gracias,por la atencion.

un saludo