19/04/2024
# Tags
#C++ #Programación

Operadores: Asignación, Aritméticos, Relacionales y Lógicos

Para evaluar expresiones en C++ contamos con una amplio conjunto de operadores, en esta etapa introductoria utilizaremos cuatro categorías generales:

  • Operadores de Asignación.
  • Operadores Aritméticos.
  • Operadores relacionales..
  • Operadores lógicos.

Si deseas revisar una relación completa de los operadores disponibles puedes revisar el anexo II, Operadores de C++

Operadores de Asignación

En este momento solo presento el principal operador de asignación por su amplio uso.

OperadorDescripciónAsociatividad
=AsignaciónDerecha a izquierda

Este operador asigna el valor de la expresión que se encuentra a la derecha del operador al lado izquierdo, normalmente a una variable.

El siguiente programa muestra como funciona el operador de asignación.

// operador_asignacion.cpp
// Este programa muestra el uso del operador de asignación
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.tutorialspoint.com/compile_cpp_online.php
#include <iostream>
using namespace std;
int main()
{
   int a, b;
   char letra;
   bool respuesta;
   a = 5;
   b = 0;
   letra = 'P';
   respuesta = true;
   cout << "a = " << a << " y b = " << b << endl;
   cout << "letra = " << letra << " respuesta = " << respuesta << endl;
   respuesta = b;   //Equivalente a false (o)
   cout << "Asignación de una variable a otra variable = " << respuesta << endl;
   return 0;
}

Operadores aritméticos

OperadorNombreDescripciónAsociatividad
*MultiplicaciónMultiplicación aritméticaIzquierda a derecha
/DivisiónDivisión aritmética
%MóduloObtiene el residuo de la división entera
+SumaSuma aritmética
RestaResta aritmética

El siguiente programa muestra el uso de los operadores indicados en esta sección,

// operadores_aritmeticos.cpp
// Este programa muestra el uso del operadores aritméticos
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.tutorialspoint.com/compile_cpp_online.php
#include <iostream>
using namespace std;
int main()
   {
   int a = 5, b = 10, c = 3, resultado;
   cout << "Valor de a = " << a << " - Valor de b = " << b << " - Valor de c = " << c << "\n";
   resultado = a + b;   //Suma
   cout << "a + b = " << resultado << "\n";
   resultado = a - b;   //Resta
   cout << "a - b = " << resultado << "\n";
   resultado = a * b;   //Multiplicación
   cout << "a * b = " << resultado << "\n";
   resultado = a / b;   //División
   cout << "a / b = " << resultado << "\n";
   resultado = a % b;   //Módulo
   cout << "a % b = " << resultado << "\n";
   resultado = a % c;   //Módulo
   cout << "a % c = " << resultado << "\n";
   return 0;
   }

Operadores de relacionales

Los operadores de comparación se caracterizan porque al evaluar una expresión generan un valor Booleano (bool), esto es, Verdadero o Falso, cabe señalar que internamente estos dos valores están definidos de esta forma:

int true = 1		//verdadero  int false = 0		//falso

De modo que podemos utilizar tanto el nombre del identificador, como el valor numérico para identificar cualquiera de estas 2 condiciones. Gran parte de la potencia de un lenguaje se basa en la capacidad de utilizar operadores relacionales y de los operadores a nivel bit.

Operadores Lógicos

Los operadores lógicos modifican el valor de la expresión evaluada de acuerdo a las tablas de verdad de Boole, las 3 operaciones implementadas de forma nativa son:

  • Negación
  • Y lógico
  • O lógico

Tablas de verdad, and, or y not

Tabla AND

Expresión 1Expresión 2Resultado
VerdaderoVerdaderoVerdadero
VerdaderoFalsoFalso
FalsoVerdaderoFalso
FalsoFalsoFalso

Tabla OR

Expresión 1Expresión 2Resultado
VerdaderoVerdaderoVerdadero
VerdaderoFalsoVerdadero
FalsoVerdaderoVerdadero
FalsoFalsoFalso

Tabla Not

Expresión 1Resultado
VerdaderoFalso
FalsoVerdadero

Los operadores relacionales y lógicos implementados en C++ son:

Operadores relacionales

OperadorNombreSintaxis
 <Menor queexpresión < expresión
<=Menor o igual queexpresión <= expresión
 >Mayor queexpresión > expresión
 >=Mayor o igual queexpresión >= expresión
!=Diferente deexpresión != expresión
==Igual queexpresión == expresión
!Negación lógica!expresión
&&AND lógicoexpresión && expresión
||OR lógicoexpresión || expresión

El resultado de una expresión siempre generará un resultado, podemos utilizarlo directamente en una expresión válida o almacenarlo en una variable para su uso posterior. El siguiente ejemplo muestra lo indicado.

//operador_relacional_logico.cpp
//El resultado de una expresión siempre generará un resultado, podemos
//utilizarlo directamente en una expresión válida o almacenarlo en una
//variable para su uso posterior.
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.tutorialspoint.com/compile_cpp_online.php
#include <iostream>
using namespace std;
int main()
{
   int a = 5;
   int b = 8;
   bool r;
   //Evaluación directa de identificadores:
   //Nota: Cuando evalúas la expresión directamente en una expresión
   //debes encerarla entre paréntesis para que no aparezcan errores.
   cout << "Comparación \"menor que\" 5 < 8 = " << (5 < 8) << endl;
   cout << "Comparación \"mayor que\" 5 > 8 = " << (5 > 8) << endl;
   cout << "Comparación \"menor o igual que\" 5 <= 8 = " << (5 <= 8) << endl;
   cout << "Comparación \"mayor o igual que\" 5 >= 8 = " << (5 >= 8) << endl;
   cout << "Comparación \"diferente que\" 5 != 8 = " << (5 != 8) << endl;
   cout << "Comparación \"igual que\" 5 == 8 = " << (5 == 8) << endl;
   //Es preferible evaluar las expresiones fuera de las cadenas
   cout << "\n\nPara la siguiente sección tenemos a = " << a << " y b = "  << b << endl;
   r = a < b;
   cout << "Comparación \"menor que\" a < b = " << r << endl;
   r = a > b;
   cout << "Comparación \"mayor que\" a > b = " << r << endl;
   //Evaluación de expresiones lógicas
   cout << "\n\n";  //2 saltos de línea
   cout << "\n\nPara la siguiente sección tenemos a = " << a << " y b = "  << b << endl;
   r = (a > b) and (a < b);
   cout << "(a > b) \"and\" (a > b) = " << r << endl;
   r = (a > b) or (a < b);
   cout << "(a > b) \"or\" (a > b) = " << r << endl;
   r = not (a > b);
   cout << "\"not\" (a > b) = " << r << endl;
   //¡¡NOTA LA DIFERENCIA CON LA SENTENCIA ANTERIOR!!
   r = not a > b;
   cout << "\"not\" a > b = " << r << endl;
   return 0;
}

Nota que en el último grupo de sentencias las expresiones se agruparon con paréntesis las expresiones principales. Al igual que en álgebra, existen ciertas consideraciones que debemos conocer al momento de evaluar expresiones, estas reglas son las reglas de precedencia, que revisaremos en la siguiente entrega.

En este momento solo mencionaré que para forzar que una expresión se evalúe de la forma que queremos debemos utilizar los paréntesis, la importancia de los paréntesis se muestra en las 2 últimas evaluaciones:

r = not (a > b);
r = not a > b;

En la salida del programa, podrás darte cuenta que el resultado es diferente por la presencia o ausencia de los paréntesis.

Salida del programa de Operadores
Salida del programa de Operadores

eHack Logo

 Fuente Imágenes:

Código Fuente:

Licencia de Creative Commons
Operadores: Asignación, Aritméticos, Relacionales y Lógicos by Roberto C. González is licensed under a Creative Commons Reconocimiento-NoComercial-CompartirIgual 4.0 Internacional License.
Operadores: Asignación, Aritméticos, Relacionales y Lógicos

Variables y Tipos de Datos

Operadores: Asignación, Aritméticos, Relacionales y Lógicos

Precedencia de operadores en C++

Leave a comment

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