Operadores Aritméticos

El lenguaje C++ cuenta con los operadores aritméticos básicos, más los operadores paréntesis () para dar cierta prioridad a operaciones que lo requieran. ( + , - , * , / ) = (adición, sustracción, multiplicación, división) y el símbolo % = operador módulo o resto de la división. (En algoritmos puede aparecer como MOD() o como RESTO() ) Para ejemplarizar consideremos la definición de las variables a, b, result: int result, a = 8, b = 2; result = a % b; result = a - b; Ahora sea: result = a % b; result = a / 5; /* result = 0 */ /* result = 6 */ b = 3; /* 8 % 3 --> result = 2 */ /* 8 / 5 --> result = 1 */

* Observe que la sentencia de asignación, termina con un punto y coma, y las variables se declaran sólo una vez (caso de la variable b).

Diferencias de la división según el tipo de los operandos a) Si uno o más de los operandos es una variable de tipo punto flotante (double, float), entonces la división es real. b) Si los dos operandos son variables enteras (int, long,short,byte), entonces la división es entera.

Tipo de División Resultado int / int int / double double / int double / double int double double double

Ejemplo 3/2=1 3.0 / 2.0 = 1.5 1.0 / 2 = 0.5 6.0 / 5.0 = 1.2

Ejercicio: ¿Cuál es el valor final de a y de b una vez efectuadas las operaciones? int a = 3; double b = 2.0; a = 3 / b; /* ¿a resulta 1 ó 1.5? */ b = 3 / 2; /* ¿Resultado en b? */

b = c++. veremos este tipo de asignación cuando en la sentencia no existe otra variable involucrada. c. En primer lugar. c--. se encuentra en la asignación de variables. c = b / 2. ++variable : variable = variable + 1 variable-. En C++ como también en otros lenguajes de programación. la variable a se incrementa. b = 4. --b. o var = var . pre-incremento a = 8. a++. /* la variable a. a++. tomando un valor final de 8. Luego de la asignación. se ha incluido el operador ++ y -.para realizar estas asignaciones de manera más corta. --variable : variable = variable . Ahora bien. También es válido para var-. toma como valor 5*/ /* la variable se post incrementa y toma el valor 6 */ /* la variable se pre incrementa y toma el valor 7*/ El post y pre incremento en estas condiciones.. . o sea hay otra(s) variable(s) involucrada(s) se deben seguir ciertas reglas.1. b = a++. que se ejemplifican a continuación: post-incremento int a = 7. para luego asignar ese valor a la variable b (o sea b = 9). /* a = 7 y b = 0 */ /* primero b = 7 y luego a = a + 1 --> 8 */ La variable b toma el valor de a (o sea b = 7). Ej: int a = 5.1 La mayor diferencia de estos métodos. se tienen que hacer incrementos o decrementos de una unidad para variables enteras de la manera: var = var + 1. * Todo lo anterior es válido para variables enteras y para el operador de decremento Ejercicios Hacer la traza de los siguientes segmentos de código a) int a = 3. cuando este tipo de incrementos no son independientes. b = ++a. ++a. lo primero que se hace es incrementar la variable a (a = 8). b = ++a. En este caso. b.Operador de post y pre incremento Generalmente en un programa. variable++ .y --var y sólo es válido para variables de tipo entero. producen el mismo efecto.

se está post-incrementando. a / = b.1 = 16 . y después finalmente incrementar la variable b. b = 0. z = 8 Operadores de asignación aritmética Continuando con la idea de contraer ciertas operaciones aritméticas. --z. a = a / b. b = 35. /* Se declaran dos variables enteras a = 2. se usan abreviaciones para la asignación de una variable. a = a * b. a += b--. Valores finales: a = 51. se escribe y evalúa la expresión equivalente.b. a * = b.1 = 36 . z = 6. valores finales : x = 9. se escribe la expresión equivalente y a continuación se evalúan los valores.1 = 15 . c = 2. /* a = a . y = 3. z = --y + z. /* a = a + b = 2 + 3 = 5 */ Para mayor orden en el seguimiento de los valores. b = 3. b = 3 */ a += b. a = b = 16 */ Como existe una variable que se está pre-incrementando. Después de haber hecho esto. b = b . b += --a + 5. se evalúan los valores. /* a = a + b = 15 + 36 = 51. a = a % b. Expresión a + = b. lo primero que se hace es evaluar la expresión equivalente. . a = ++b. lo primero que se hace es modificar el valor de esa variable. a % = b.= b. a . y = 3. a = a . b *= 5. /* b = b * 5 = 3 * 5 = 15 */ /* b = b + 1 = 15 + 1 = 16. b) int x. b = b + a + 5 = 16 + 15 + 5 = 36 */ Después de incrementar la variable a.valores finales: a = 5. Ejemplo: int a = 2. Equivalente a = a + b. x = z + y++.1 = 35 */ Como ahora b. cuando está involucrada como operador. x++.

Los valores finales son: a = 9. Los valores finales: a = 1. a++. b -= 3. a *= 2. b++. b = ++a. c = 5. b += a. c /= 5. b += a. Operador < <= > >= == != Descripción menor Ejemplo a<b menor o igual a++ <= 122 mayor x > 5 * b++ mayor o igual p >= 0.01 igual distinto A % 2 == 0 t != true Ejemplo: 5>1 1 >= 5 2 == 2 2 != 2 /* true */ /* false */ /* true */ /* false */ . c *= b. c = 6 b) int a = 1. El resultado de una comparación es un valor true o false. a %= 2. a = ++b + 2. b = 3. int b = 2. b = 7 Operadores Relacionales Los siguientes operadores son fundamentales para implementar las condiciones de las sentencias de control. b = 3.Ejercicios Determinar los valores finales para los siguientes segmentos de código a) int a = 2.

y los operadores correspondientes son &&. X Y X && Y X | | Y false false false true false true true true !X true true false false false False false true true Trae False Trae Ejercicio: Determinar el resultado de las siguientes operaciones o sentencias. a) true || false && true b) (false || false) && (!true) c) !true && !false d) !(5 > 7 || 8 > 0 && 1 == 2) resp: a = true. c : false. a) 7 <= 5 b) 2 > 6 c) 3 != 5 d) a == a + 1 e) b++ != b++ Operadores Lógicos C++ proporciona operadores lógicos que se usan para simular los conceptos Y. Operador Descripción && || ! AND (y) OR (o) NOT (no) Ejemplo f > 0. b : false . Los argumentos y resultados de estos operadores lógicos son valores de tipo boolean. d : true . Éstos se conocen con el nombre de conjunción.0 && f <= 1. O y NO del álgebra de Boole. disyunción y negación respectivamente.0 e == 1 | | d == 2 !encendido En la siguiente tabla se muestran los resultados de aplicar los operadores lógicos para todos los posibles valores de entrada. El operador && tiene mayor precedencia que el operador ||.Ejercicio: determinar si las siguientes relaciones son true o false. || y !. La precedencia de la conjunción y la disyunción es lo suficientemente baja como para que no sea necesario utilizar paréntesis. mientras que ! se agrupa con los demás operadores.

Sign up to vote on this title
UsefulNot useful