Aritmética en C

C y C++
31 marzo, 2015

La mayor parte de los programas en C ejecutan cálculos aritméticos. Los operadores aritméticos de C se resumen en:

Operación Operador Expresion algebraica Expresion en C
Suma + a + b a + b
Resta - a - b a - b
Multiplicación * ab a * b
División / a/b a / b
Módulo % a mod b a % b

Un ejemplo sencillo es el siguiente, el cual realiza todas las operaciones dados dos valores por el usuario:

  1. /* Aritmetica en C */
  2. #include <stdio.h>
  3. int main()
  4. {
  5.     int entero1, entero2, suma, resta, multiplicacion, division, modulo, c;   /* Declaración */
  6.     printf("Agrega el primer entero: ");    /* Pedir el primer valor */
  7.     scanf_s("%d", &entero1);                /* Leemos el primer valor */
  8.     printf("Agrega el segundo entero: ");    /* Pedir el segundo valor */
  9.     scanf_s("%d", &entero2);                /* Leemos el segundo valor */
  10.     suma = entero1 + entero2;                /* Realizamos la suma */
  11.     printf("La suma de %d + %d es: %d \n", entero1, entero2, suma);
  12.     resta = entero1 - entero2;                /* Realizamos la resta */
  13.     printf("La resta de %d - %d es: %d \n", entero1, entero2, resta);
  14.     multiplicacion = entero1 * entero2;        /* Realizamos la multiplicacion */
  15.     printf("La multiplicacion de  %d * %d es: %d \n", entero1, entero2, multiplicacion);
  16.     if (entero2 != 0)
  17.     {
  18.         division = entero1 / entero2;            /* Realizamos la division */
  19.         printf("La division de  %d / %d es: %d \n", entero1, entero2, division);
  20.         modulo = entero1%entero2;                /* Realizamos el modulo */
  21.         printf("El modulo de  %d mod %d es: %d \n", entero1, entero2, modulo);
  22.     }
  23.     else
  24.     {
  25.         printf("La division de  %d / %d no es valida \n", entero1, entero2);
  26.         printf("El modulo de  %d / %d no es valido \n", entero1, entero2);
  27.     }
  28.     do {
  29.         c = getchar();                        /* Obtenemos el ultimo caracter */
  30.     } while (c != '\n' && c != EOF);
  31.     if (c != EOF) {
  32.         getchar();                            /* Esperar una tecla para salir */
  33.     }
  34.     return 0;                        /* Indique que el programa termino correctamente */
  35. }

Siguiendo el ejemplo Suma de dos enteros, se desarrollan de manera similar las operaciones resta, multiplicación, división y modulo.

operaciones_aritmeticas

Aquí, las observación son:

  • La división de enteros da como resultado también un entero. Por ejemplo 9/6 da como resultado 1, y 19/6 da como resultado 3.
  • El operador modulo devuelve el residuo después de una división de enteros.
  • ¡Cuidado!, Tanto el modulo como la división por 0 es invalida, asegúrate de crear una condición en el caso que se presente esta situación.
  • Las expresiones aritméticas en C deben ser escritas en una linea continua, para facilitar la escritura de programas de computadora. Es decir, escribir a/b en lugar de \frac{a}{b}.

Orden de evaluación

Algo muy importante a mencionar es el orden en el cual un programa evalúa operaciones aritméticas:

  1. Primero se calculan expresiones o porciones de expresiones contenidas dentro de pares de paréntesis. Entonces, los paréntesis pueden ser utilizados para obligar a un orden de evaluación en cualquier secuencia deseado por el evaluador. En el caso de paréntesis anidados o incrustados, es evalúa primero la expresión en el par de paréntesis mas interno.
  2. A continuación, se calculan las operaciones de multiplicación, división y modulo. Si una expresión contiene varias multiplicaciones, divisiones y módulos, la evaluación avanzara de izquierda a derecha.
  3. Por ultimo, se calculan las operaciones de suma y resta. Si una expresión contiene varias operaciones de suma y resta, la evaluación avanzara de izquierda a derecha.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *