Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
84 | Capítulo 3: Tipos numéricos, expresiones y salida Dadas las declaraciones int num; int alpha; fl oat rate; char ch; las siguientes son sentencias de asignación apropiadas: Variable Expresión alpha = 2856; rate = 0.36; ch = 'B'; num = alpha En cada una de estas sentencias de asignación, el tipo de datos de la expresión concuerda con el de la variable a la que se asignó. Más adelante, en este capítulo, se explica lo que sucede si no concuer- dan los tipos de datos. 3.4 Expresiones aritméticas simples Ahora que se ha examinado la declaración y la asignación, se considera cómo calcular con valores de tipos numéricos. Los cálculos se efectúan con expresiones. Primero se consideran las expresiones simples que tienen que ver con a lo sumo un operador de modo que se examine cada operador en detalle. Luego, se pasa a las expresiones compuestas que combinan operaciones múltiples. Operadores aritméticos Las expresiones están constituidas por constantes, variables y operadores. Las siguientes son expre- siones válidas: alpha + 2 rate – 6.0 4 – alpha rate alpha * num Los operadores permitidos en una expresión dependen de los tipos de datos de las constantes y variables en la expresión. Los operadores aritméticos son + Signo positivo unario - Signo negativo unario + Suma - Resta * Multiplicación / División de punto fl otante (resultado de punto fl otante) División de enteros (sin parte fraccionaria) % Módulo (residuo de la división de enteros) Los dos primeros operadores son operadores unarios, toman sólo un operando. Los cinco restantes son operadores binarios, toman dos operandos. Los signos unarios positivo y negativo se usan como sigue: –54 +259.65 -rate Operador unario Operador que sólo tiene un operando. Operador binario Operador que tiene dos operandos. DALE003.indd 84DALE003.indd 84 4/12/06 18:56:124/12/06 18:56:12 www.FreeLibros.me Los programadores rara vez usan el más unario. Sin signo, se supone de cualquier manera que una constante numérica es positiva. Quizá no esté familiarizado con la división de enteros y el módulo (%). Examinémoslos más de cerca. Observe que el signo % se emplea sólo con enteros. Cuando divide un entero entre otro, se obtiene un cociente entero y un residuo. La división de enteros da sólo el cociente entero, y % da sólo el residuo. (Si el operando es negativo, el signo del residuo puede variar de un compilador a otro de C++.) 3 6 6 0 )2 6 / 2 6 % 2 3 7 6 1 )2 7 / 2 7 % 2 En contraste, la división de punto fl otante produce un resultado de punto fl otante. La expresión 7.0 / 2.0 produce el valor 3.5. A continuación se dan algunas expresiones con operadores aritméticos y sus valores: Expresión Valor 3 + 6 9 3.4 - 6.1 –2.7 2 * 3 6 8 / 2 4 8.0 / 2.0 4.0 8 / 8 1 8 / 9 0 8 / 7 1 8 % 8 0 8 % 9 8 8 % 7 1 0 % 7 0 5 % 2.3 error (ambos operandos deben ser enteros) Tenga cuidado con la división y el módulo. Las expresiones 7.0 / 0.0, 7 / 0 y 7 % 0 producen errores. La computadora no puede dividir entre cero. Debido a que en las expresiones se permiten variables, las siguientes son asignaciones válidas: alpha = num + 6; alpha = num / 2; num = alpha * 2; num = 6 % alpha; alpha = alpha + 1; num = num + alpha; Como se vio con las sentencias de asignación relacionadas con expresiones string, la misma variable puede aparecer en ambos lados del operador de asignación. En el caso de num = num + alpha; 3.4 Expresiones aritméticas simples | 85 DALE003.indd 85DALE003.indd 85 4/12/06 18:56:134/12/06 18:56:13 www.FreeLibros.me 86 | Capítulo 3: Tipos numéricos, expresiones y salida el valor en num y el valor en alpha se suman y, después, la suma de los dos valores se almacena de nuevo en num, remplazando el valor previo almacenado ahí. Este ejemplo muestra la diferencia entre igualdad matemática y asignación. La igualdad matemática num = num + alpha es verdadera sólo cuando alpha es igual a 0. La sentencia de asignación num = num + alpha; es válida para cualquier valor de alpha. A continuación se muestra un programa simple que usa expresiones aritméticas: //****************************************************************** // Programa FreezeBoil // Este programa calcula el punto medio entre // los puntos de congelación y ebullición del agua //****************************************************************** #include <iostream> using namespace std; const fl oat FREEZE_PT = 32.0; // Punto de congelación del agua const fl oat BOIL_PT = 212.0; // Punto de ebullición del agua int main() { fl oat avgTemp; // Contiene el resultado de promediar // FREEZE_PT y BOIL_PT cout << "El agua se congela a " << FREEZE_PT << endl; cout << "y hierve a " << BOIL_PT << "grados. " << endl; avgTemp = FREEZE_PT + BOIL_PT; avgTemp = avgTemp / 2.0; cout << "La mitad es "; cout << avgTemp << " grados. " << endl; return 0; } El programa comienza con un comentario que explica lo que hace el programa. A continuación viene una sección de declaraciones donde se defi nen las constantes FREEZE_PT y BOIL_PT. El cuer- po de la función main incluye una declaración de la variable avgTemp y luego una serie de senten- cias ejecutables. Estas sentencias imprimen un mensaje, suman FREEZE_PT y BOIL_PT, dividen la suma entre 2 y, por último, imprimen el resultado. Operadores de incremento y decremento Además de los operadores aritméticos, C++ provee los operadores de incremento y decremento ++ Incremento -- Decremento DALE003.indd 86DALE003.indd 86 4/12/06 18:56:154/12/06 18:56:15 www.FreeLibros.me
Compartir