Introducción
En este laboratorio, aprenderás cómo determinar si un número dado es un cuadrado perfecto en C++. Un cuadrado perfecto es un número que se puede expresar como el producto de un entero por sí mismo. Por ejemplo, 1, 4, 9, 16 y 25 son cuadrados perfectos porque se pueden expresar como 1×1, 2×2, 3×3, 4×4 y 5×5 respectivamente.
Crearemos un programa en C++ que utiliza la función sqrt() de la biblioteca estándar para calcular la raíz cuadrada de un número y determinar si es un cuadrado perfecto. Este laboratorio te introducirá a conceptos básicos de programación en C++, incluyendo funciones, declaraciones condicionales y operaciones matemáticas.
Crear un nuevo archivo de C++ e incluir las bibliotecas necesarias
En este paso, crearemos un nuevo archivo de C++ e incluiremos las bibliotecas necesarias para nuestro programa.
Primero, creemos un nuevo archivo llamado main.cpp en el directorio del proyecto:
- En el WebIDE, haz clic en el icono del Explorador en la barra lateral izquierda.
- Haz clic derecho en la carpeta
projecty selecciona "Nuevo archivo". - Nombrar el archivo
main.cppy presionar Enter.
Ahora, agreguemos las bibliotecas necesarias a nuestro programa. Necesitamos dos bibliotecas principales:
iostream: Esta biblioteca proporciona funcionalidad para operaciones de entrada y salida.cmath: Esta biblioteca contiene funciones matemáticas, incluyendo la funciónsqrt()que utilizaremos.
Agrega el siguiente código a tu archivo main.cpp:
#include <iostream>
#include <cmath>
using namespace std;
int main() {
cout << "\nWelcome to the Perfect Square Checker Program\n\n";
// We will add more code here in the next steps
return 0;
}
Este código:
- Incluye las bibliotecas requeridas.
- Utiliza el
namespace stdpara evitar tener que escribirstd::antes de las funciones de la biblioteca estándar. - Crea una función
main()básica que muestra un mensaje de bienvenida. - Devuelve 0 para indicar una ejecución exitosa del programa.
Guarda tu archivo presionando Ctrl+S o seleccionando Archivo > Guardar desde el menú.
Implementar la función de comprobación de cuadrados perfectos
Ahora, crearemos una función que determine si un número es un cuadrado perfecto. Un cuadrado perfecto tiene una raíz cuadrada entera. Por ejemplo, 16 es un cuadrado perfecto porque su raíz cuadrada es exactamente 4.
Agrega la siguiente función encima de la función main() en tu archivo main.cpp:
bool isPerfectSquare(int number) {
// Calculate the square root of the number
double squareRoot = sqrt(number);
// Convert the square root to an integer
int intSquareRoot = static_cast<int>(squareRoot);
// A number is a perfect square if squaring its integer square root gives the original number
return (intSquareRoot * intSquareRoot == number);
}
Entendamos cómo funciona esta función:
- La función toma un parámetro entero
numbery devuelve un valor booleano (verdadero o falso). - Utilizamos la función
sqrt()de la bibliotecacmathpara calcular la raíz cuadrada del número de entrada. - Convertimos la raíz cuadrada a un entero utilizando
static_cast<int>(), lo que elimina cualquier parte decimal. - Si el número es un cuadrado perfecto, entonces multiplicar la raíz cuadrada entera por sí misma dará el número original.
- La función devuelve
truesi el número es un cuadrado perfecto yfalseen caso contrario.
Por ejemplo:
- Para el número 16:
- sqrt(16) = 4.0
- Convertir 4.0 a un entero da 4
- 4 × 4 = 16, que es igual al número original, por lo que 16 es un cuadrado perfecto.
- Para el número 10:
- sqrt(10) ≈ 3.16227766
- Convertir 3.16227766 a un entero da 3
- 3 × 3 = 9, que no es igual al número original, por lo que 10 no es un cuadrado perfecto.
Tu código completo hasta ahora debería verse así:
#include <iostream>
#include <cmath>
using namespace std;
bool isPerfectSquare(int number) {
// Calculate the square root of the number
double squareRoot = sqrt(number);
// Convert the square root to an integer
int intSquareRoot = static_cast<int>(squareRoot);
// A number is a perfect square if squaring its integer square root gives the original number
return (intSquareRoot * intSquareRoot == number);
}
int main() {
cout << "\nWelcome to the Perfect Square Checker Program\n\n";
// We will add more code here in the next step
return 0;
}
Guarda tu archivo antes de pasar al siguiente paso.
Completar la función principal con entrada y salida de usuario
Ahora, mejoremos la función main() para:
- Solicitar al usuario que ingrese un número.
- Obtener la entrada del usuario.
- Utilizar nuestra función
isPerfectSquare()para verificar si el número es un cuadrado perfecto. - Mostrar un mensaje adecuado según el resultado.
Actualiza tu función main() con el siguiente código:
int main() {
cout << "\nWelcome to the Perfect Square Checker Program\n\n";
int userNumber;
// Prompt the user to enter a number
cout << "Please enter a positive integer: ";
cin >> userNumber;
// Check if the entered number is a perfect square
if (isPerfectSquare(userNumber)) {
int squareRoot = static_cast<int>(sqrt(userNumber));
cout << "\nThe number " << userNumber << " is a perfect square!" << endl;
cout << "It is equal to " << squareRoot << " × " << squareRoot << endl;
} else {
cout << "\nThe number " << userNumber << " is not a perfect square." << endl;
}
cout << "\nThank you for using the Perfect Square Checker Program!\n" << endl;
return 0;
}
Entendamos lo que hace este código:
- Declaramos una variable entera
userNumberpara almacenar la entrada del usuario. - Solicitamos al usuario que ingrese un entero positivo utilizando
cout. - Leemos la entrada del usuario utilizando
ciny la almacenamos enuserNumber. - Llamamos a nuestra función
isPerfectSquare()conuserNumbercomo argumento. - Si el número es un cuadrado perfecto:
- Calculamos su raíz cuadrada y la almacenamos en
squareRoot. - Mostramos un mensaje que indica que el número es un cuadrado perfecto.
- Mostramos qué dos enteros idénticos se multiplican para dar el número original.
- Calculamos su raíz cuadrada y la almacenamos en
- Si el número no es un cuadrado perfecto:
- Mostramos un mensaje que indica que el número no es un cuadrado perfecto.
- Finalmente, mostramos un mensaje de agradecimiento y salimos de la función
main().
Tu programa completo ahora debería verse así:
#include <iostream>
#include <cmath>
using namespace std;
bool isPerfectSquare(int number) {
// Calculate the square root of the number
double squareRoot = sqrt(number);
// Convert the square root to an integer
int intSquareRoot = static_cast<int>(squareRoot);
// A number is a perfect square if squaring its integer square root gives the original number
return (intSquareRoot * intSquareRoot == number);
}
int main() {
cout << "\nWelcome to the Perfect Square Checker Program\n\n";
int userNumber;
// Prompt the user to enter a number
cout << "Please enter a positive integer: ";
cin >> userNumber;
// Check if the entered number is a perfect square
if (isPerfectSquare(userNumber)) {
int squareRoot = static_cast<int>(sqrt(userNumber));
cout << "\nThe number " << userNumber << " is a perfect square!" << endl;
cout << "It is equal to " << squareRoot << " × " << squareRoot << endl;
} else {
cout << "\nThe number " << userNumber << " is not a perfect square." << endl;
}
cout << "\nThank you for using the Perfect Square Checker Program!\n" << endl;
return 0;
}
Guarda tu archivo antes de pasar al siguiente paso.
Compilar y probar el programa
Ahora que hemos completado nuestro programa en C++, es hora de compilarlo y ejecutarlo. Compilar convierte nuestro código legible por humanos en un programa ejecutable por la máquina.
Compilar el programa
Abre una terminal en el WebIDE haciendo clic en "Terminal" en el menú y seleccionando "Nueva Terminal".
En la terminal, navega hasta el directorio del proyecto:
cd ~/project
Compila el programa utilizando el compilador g++:
g++ main.cpp -o perfect_square_checker
Este comando le dice al compilador que:
- Tome nuestro archivo fuente
main.cpp - Lo compile en un ejecutable llamado
perfect_square_checker
Si la compilación es exitosa, no verás ninguna salida. Si hay errores, lee los mensajes de error, corrige los problemas en tu código y vuelve a intentar compilar.
Ejecutar el programa
Después de compilar el programa exitosamente, ejecútalo utilizando:
./perfect_square_checker
El programa se iniciará y te pedirá que ingreses un entero positivo.
Probar con diferentes entradas
Probemos nuestro programa con diferentes entradas para verificar que funcione correctamente:
Caso de prueba 1: Un cuadrado perfecto
Ingresa 16 cuando se te solicite. Deberías ver una salida similar a:
Please enter a positive integer: 16
The number 16 is a perfect square!
It is equal to 4 × 4
Thank you for using the Perfect Square Checker Program!
Caso de prueba 2: No es un cuadrado perfecto
Ejecuta el programa nuevamente e ingresa 10 cuando se te solicite. Deberías ver una salida similar a:
Please enter a positive integer: 10
The number 10 is not a perfect square.
Thank you for using the Perfect Square Checker Program!
Caso de prueba 3: Otro cuadrado perfecto
Ejecuta el programa nuevamente e ingresa 25 cuando se te solicite. Deberías ver una salida similar a:
Please enter a positive integer: 25
The number 25 is a perfect square!
It is equal to 5 × 5
Thank you for using the Square Square Checker Program!
Al probar con diferentes entradas, puedes verificar que tu programa identifique correctamente los cuadrados perfectos y los no cuadrados perfectos.
¡Felicidades! Has creado exitosamente un programa en C++ que determina si un número es un cuadrado perfecto.
Resumen
En este laboratorio, has creado exitosamente un programa en C++ que determina si un número es un cuadrado perfecto. Repasemos lo que has logrado:
Aprendiste cómo incluir las bibliotecas necesarias en un programa de C++:
iostreampara operaciones de entrada y salidacmathpara funciones matemáticas comosqrt()
Implementaste la función
isPerfectSquare()que utiliza un enfoque matemático para determinar si un número es un cuadrado perfecto:- Calcula la raíz cuadrada del número
- Verifica si elevar al cuadrado la parte entera de la raíz cuadrada es igual al número original
Creaste una interfaz amigable para el usuario en la función
main()que:- Solicita al usuario que ingrese un número
- Utiliza la función
isPerfectSquare()para verificar si el número es un cuadrado perfecto - Muestra un mensaje adecuado según el resultado
Compilaste y probaste tu programa con diferentes entradas para verificar su funcionalidad.
A través de este laboratorio, adquiriste experiencia práctica con varios conceptos importantes de programación en C++:
- Crear y llamar funciones
- Utilizar declaraciones condicionales (if-else)
- Trabajar con entrada y salida de usuario
- Realizar conversiones de tipo
- Utilizar funciones matemáticas de la biblioteca estándar
- Compilar y ejecutar un programa en C++
Puedes mejorar aún más este programa agregando características como:
- Validación de entrada para garantizar que el usuario ingrese un entero positivo
- La capacidad de verificar múltiples números sin reiniciar el programa
- Encontrar el cuadrado perfecto más cercano a un número que no es un cuadrado perfecto
Al continuar practicando y construir sobre estos conceptos fundamentales, desarrollarás habilidades más sólidas de programación en C++ que podrás aplicar a problemas más complejos.



