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? */

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

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

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

y los operadores correspondientes son &&. mientras que ! se agrupa con los demás operadores. disyunción y negación respectivamente. Operador Descripción && || ! AND (y) OR (o) NOT (no) Ejemplo f > 0.0 && f <= 1. b : false . La precedencia de la conjunción y la disyunción es lo suficientemente baja como para que no sea necesario utilizar paréntesis. El operador && tiene mayor precedencia que el operador ||. O y NO del álgebra de Boole. c : false. || y !.Ejercicio: determinar si las siguientes relaciones son true o false. d : true .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. Éstos se conocen con el nombre de conjunción. 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) 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. Los argumentos y resultados de estos operadores lógicos son valores de tipo boolean. a) true || false && true b) (false || false) && (!true) c) !true && !false d) !(5 > 7 || 8 > 0 && 1 == 2) resp: a = true.

Sign up to vote on this title
UsefulNot useful