Tarea de Programacion
Tarea de Programacion
Los operadores aritméticos son aquellos que "manipulan" datos numéricos, tanto enteros como
reales. Hay 2 tipos de operadores aritméticos: unarios y binarios. Los operadores unarios se
anteponen a la expresión aritmética, y son los operadores de signo. Los operadores binarios se
sitúan entre 2 expresiones aritméticas.
Todos los operadores binarios admiten expresiones enteras y reales a excepción de div y mod, que
sólo admiten expresiones enteras, por lo que devuelven expresiones enteras. En el caso de los
otros operadores, si los 2 operandos a los que afecta son enteros, la expresión resultante será
entera, pero si alguno o ambos son reales, la expresión resultado es de tipo real. En esto tenemos
de nuevo otra excepción: el operador / devuelve siempre expresiones de tipo real. El operador
aritmético + también se puede usar con datos de tipo string. El resultado es la concatenación de
las cadenas. Por ejemplo: 'Esto' + 'es una' + 'concatenación de' + 'cadenas' Como todos sabréis,
cualquier número dividido por 0 da como resultado infinito. Esto se puede aceptar desde el punto
de vista abstracto de las matemáticas, pero si probáis esto en un lenguaje de programación, el
compilador os avisará de un error que viene a decir que la división por 0 no está permitida. Por lo
tanto, el segundo argumento de los operadores /, div y mod no debe ser 0. Como última
aclaración, el operador mod devuelve el resto de realizar la división del primer operando por el
segundo. Es decir, 6 mod 3 = 0 y 5 mod 2 = 1.
Operadores Lógicos
El operador LÓGICO AND (&&) devuelve si ambos true operandos son y devuelve lo true false
contrario. Los operandos se convierten implícitamente al tipo antes de la evaluación bool y el
resultado es de tipo bool. El operador AND lógico tiene asociatividad de izquierda a derecha. Los
operandos del operador AND lógico no necesitan tener el mismo tipo, pero deben tener un tipo
booleano, entero o de puntero. Los operandos son normalmente expresiones relacionales o de
igualdad. El primer operando se evalúa completamente y todos los efectos secundarios se
completan antes de que continúe la evaluación de la expresión AND lógica. El segundo operando
solo se evalúa si el primer operando se evalúa como true (distinto de cero). Esta evaluación
elimina la evaluación sin necesidad del segundo operando cuando la expresión AND lógica es false.
Puede utilizar esta evaluación de cortocircuito para evitar la des referencia de punteros null, como
se muestra en el ejemplo siguiente:
C++
char *pch = 0;
// ...
(pch) && (*pch = 'a');
Si pch es null (0), el lado derecho de la expresión no se evalúa. Esta evaluación de cortocircuito
hace que la asignación a través de un puntero nulo sea imposible.
Ejemplo
C++Copiar
// expre_Logical_AND_Operator.cpp
// compile with: /EHsc
// Demonstrate logical AND
#include <iostream>
int main() {
int a = 5, b = 10, c = 15;
cout << boolalpha
<< "The true expression "
<< "a < b && b < c yields "
<< (a < b && b < c) << endl
<< "The false expression "
<< "a > b && b < c yields "
<< (a > b && b < c) << endl;
}
Operadores Relacionales
Los operadores relacionales nos permiten comparar expresiones de
tipos compatibles, devolviendo un resultado de tipo lógico: la
comparación es verdadera o falsa. Por ejemplo, la expresión (3 +
4) > 12 sería falsa, ya que 7 es menor que 12.
La estructura de una operación relacional sería la siguiente:
expresión_1 operador relacional expresión_2
Los operadores de relación se pueden aplicar a cualquiera de los tipos que hemos visto hasta
ahora:
-Entero
-Real
-Lógico
-Carácter y cadena
Las operaciones relacionales o de comparación entre números reales y enteros no merecen mayor
comentario, las matemáticas dictan las reglas. Si comparamos expresiones lógicas, lo cual no tiene
mucho sentido, hay que saber que el valor falso se considera menor que el valor verdadero. Las
comparaciones entre caracteres o cadenas se basan en el código ASCII de cada carácter. Por
ejemplo, el código ASCII de la letra a es 97, y el de la letra A es 65, luego si las comparamos,
tendríamos que 'a' > 'A'.