Aprende Programación
Menú

Operadores de asignación, racionales y lógicos

Operadores de asignación
En la mayoría de los lenguajes de programación el signo .=. no significa .igual a.. Es un operador de asignación de valores, y no hay que confundirlo con el operador relacional de igualdad (==). Veamos algunos ejemplos de asignación:

a = 6;
resultado = a - 1;
resultado = resultado * 2;

La primera sentencia asigna el valor numérico 6 a una variable llamada a.

La segunda sentencia hace que en una variable llamada resultado se almacene el valor numérico que tiene la variable a menos el valor numérico 1, es decir, en este caso la variable resultado almacenaría el valor 5.

La tercera sentencia multiplica entre 2 el valor que tenía la variable resultado, es decir, después de ejecutarse en este caso, resultado pasaría a valer 10.

Hay que notar que desde el punto de vista matemático la expresión no tiene sentido. Ya se ha dicho que no es un operador de igualdad, sino de sustitución. Por eso, la sentencia a + b = 5; no es válida.

A la izquierda del operador .=. no puede haber nunca una expresión. Tiene que haber necesariamente una variable. De esta forma tampoco es válida la expresión a + b = 5 + c = d-f;
Operadores relacionales
Este es un apartado especialmente importante para todas aquellas personas sin experiencia en programación. Una característica imprescindible de cualquier lenguaje de programación es la de considerar alternativas, esto es, la de proceder de un modo u otro según se cumplan o no ciertas condiciones. Los operadores relacionales permiten estudiar si se cumplen o no esas condiciones. Así pues, estos operadores producen un resultado u otro según se cumplan o no algunas condiciones que se verán a continuación.

En el lenguaje natural, existen varias palabras o formas de indicar si se cumple o no una determinada condición: sí o no, verdadero o falso (true o false en inglés), etc. En la mayoría de lenguajes de programación se ha hecho bastante general el utilizar la última de las formas citadas: (true, false). Si una condición se cumple, el resultado es true (verdadero) (se considera un .sí.); en caso contrario, el resultado es false(falso) (se considera un .no.).

Los operadores relacionales son los siguientes:
 
Signo Significado Ejemplo
== Igual que A == A
< Menor que 1 < 3
> Mayor que 7 > 5
<= Menor o igual que 1 <= 3
>= Mayor o igual que 7 >= 5
!= Diferente que A != 1
Ejemplos

El resultado de la operación será false(falso) si la condición representada por el operador relacional no se cumple, y será un true(verdadera) si la condición representada por el operador relacional se cumple.

(5==2) el resultado es false porque la condición no se cumple.
(3<=3) el resultado es true porque la condición se cumple.
(3<3) el resultado es false porque la condición no se cumple.
(1!=1) el resultado es false porque la condición no se cumple.


Operadores lógicos
Los operadores lógicos permiten unir expresiones lógicas, las cuales son todas aquellas que obtienen como resultado verdadero o falso. Los operadores lógicos en C++ son los siguientes && (operador Y) || (operador OR).

Vamos a ver ejemplos para comprender el funcionamiento, el operador &&(Y) podríamos usarlo en esta expresión lógica: (3<5) &&  (30>20) esta expresión devuelve verdadero, ya que las dos expresiones son verdaderas (3<5) es verdadero y (30>20) también es verdadero. El operador &&(Y) devuelve verdadero si todas las expresiones son verdaderas, con que una sea falsa el operador devolverá falso.

Vamos a ver el operador ||(OR) por ejemplo en esta expresión:  (3<5)||(10>20) esta expresión devuelve verdadero, porque con el operador || (OR) si una de todas las expresiones es verdadera el resultado es verdadero y como (3<5) es verdadero pues ya se cumple. Para que sea falso ninguna debe de ser verdadera.

En este punto espero que hayas entendido estos operadores y los anteriores vistos, la comprensión de estos es muy importante, aunque entiendo, que no veas todavía el efecto que tienen dentro de la programación. Esto es una pieza fundamental del rompecabezas que hay que construir para  programar.