Una calculadora sencilla en C y C++
En esta lección vas a crear una calculadora sencilla que ejecuta la operación elegida con la sentencia switch.
Introducción
Una calculadora sencilla recibe dos números y un símbolo de operación, como +, -, * o /, y hace el cálculo correspondiente. La sentencia switch encaja perfectamente en este caso, porque elige la rama según un valor concreto.
Puntos importantes
- Activa los avisos del compilador (compiler warnings) y corrígelos todos.
- Entiende bien el tipo y la vida útil (lifetime) de cada valor.
- Comprueba siempre los datos de entrada y los límites de los índices de los arreglos.
Ejemplos de código C y C++
#include <stdio.h>
int main(void) {
int left = 12, right = 4, result = 0; char operation = '*';
// Select the calculation from the operator.
switch (operation) { case '+': result = left + right; break; case '-': result = left - right; break; case '*': result = left * right; break; case '/': result = left / right; }
printf("%d %c %d = %d\n", left, operation, right, result);
}
12 * 4 = 48
#include <iostream>
int main() {
int left = 12, right = 4, result = 0; char operation = '*';
// Select the calculation from the operator.
switch (operation) { case '+': result = left + right; break; case '-': result = left - right; break; case '*': result = left * right; break; case '/': result = left / right; }
std::cout << left << ' ' << operation << ' ' << right << " = " << result << '\n';
}
12 * 4 = 48
Comparación entre C y C++
La sentencia switch compara el carácter operation con cada case y hace el cálculo correspondiente. Cada case termina con break para que el programa no pase al case siguiente. Con la operación '*', el resultado mostrado es 12 * 4 = 48. Fíjate en que la división de dos enteros descarta la parte decimal.
C usa funciones procedurales pequeñas y muestra abiertamente cómo se representan los datos en memoria.
C++ sigue permitiendo trabajar a bajo nivel, pero añade tipos de biblioteca y abstracciones más seguras.
Ejercicios de práctica
Ejecuta las dos versiones y después modifica el código para ver la diferencia de seguridad que aporta cada lenguaje.
- Prueba entradas no válidas y valores límite.
- Compila con las opciones -Wall -Wextra -Wpedantic para activar más avisos.
- Pon las declaraciones comunes en un archivo de cabecera y la implementación en un archivo aparte.
Practica con un reto
Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.
Todos los retos