Logo Studenta

programacion c ejercicios resueltos-38

¡Estudia con miles de materiales!

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

Continuar navegando