Cómo escribir un programa en Java que calcule el área de un círculo.
Saludos a todos, y gracias por leerme.
En esta ocasión, les presento una entrada que describe un problema muy básico, el paso a paso para escribir un programa que calcule el área de un círculo. Sin embargo, debido a las condiciones de pandemia por la COVID19 en las que nos encontramos inmersos, muchos estudiantes de programación están empezando a dar sus primeros pasos, creando programas sencillos como el que les propongo, sin la ayuda que quizá necesiten. Para muchos, la única ayuda es encontrar algo en Internet, y lo que encontrarán es seguramente el programa completo. Pero lo que ellos buscan es saber cómo empezar por sí solos. ¿Cómo comienzo a crear este programa sencillo? A veces con simplemente publicar el programa no es suficiente.

Es por ello que en este artículo describiré mi proceso para la creación de este tipo de programas, comenzando con el planteamiento de la solución vía diagrama de flujo y pseudocódigo, y pasando por el proceso de traducción a lenguaje Java.
Enunciado del problema
Escribe un programa que calcule el área de un círculo. El usuario deberá introducir el valor del radio. El programa deberá mostrar el área calculada.
Proceso para encontrar la solución.

En la figura 1 te presento los pasos para solucionar problemas mediante el uso de una computadora. Los pasos son los siguientes:
- Entender el problema: un modo de manejar un problema es la de imaginar el tipo de salida que debe producirse para distintas entradas posibles. Después determinar el tipo de proceso necesario para convertir la entrada en salida.
- Encontrar un método de solución: en este paso diseñaremos un algoritmo que le permita definir los pasos que llevarán a la solución del problema.
- Traducir el método a código de computadora: este paso es generalmente sencillo cuando se ha concretado un método paso a paso y se conoce la sintaxis del lenguaje de programación.
- Probar y depurar: si la ejecución del programa no es la correcta, se deben encontrar y corregir los errores que contenga. Este proceso se llama depuración. Posteriormente debe ejecutarse el programa con una amplia variedad de entradas para verificar que la lógica del programa esté correcta.
Paso 1: entender el problema.
Desde el punto de vista de la computación, una forma de entender el problema, es identificar los datos de entrada al proceso, así como las salidas que deberán ser calculadas, es decir, el resultado que tu programa deberá arrojar.
Para lograrlo, puedes utilizar un diagrama de entradas y salidas como el que muestro en la figura 2. Se trata sólo de escribir a la izquierda las entradas, y a la derecha, las salidas. Y en el medio, dibujo un rectángulo que representa al proceso que transformará las entradas en salidas.

En este nivel, no me interesa mucho saber cómo voy a hacer el proceso, sólo sé que debe existir, y lo dejo indicado con el rectángulo. Recuerda que en este punto sólo interesa identificar entradas y salidas.
No es obligatorio crear un diagrama como éste, pero ayuda mucho tener claras las entradas y salidas del problema.
Para el problema que buscamos resolver, el diagrama de entradas y salidas es el que te muestro en la figura 3.

Paso 2: encontrar un método de solución.
Ahora es tiempo de pensar en el proceso que logrará utilizar las entradas para obtener las salidas.
Para ello, investigamos la fórmula para calcular el área de un círculo. Recuerda que una fórmula ya es un algoritmo, sólo que escrito en notación matemática. Por lo tanto, tenemos que utilizar este algoritmo y expresarlo en una notación adecuada para la computadora.
La fórmula para obtener el área de un círculo es la siguiente:

Por supuesto que ésta ecuación debe ser convertida a la notación de programación para que pueda ser ejecutada por la computadora, por lo que queda de la siguiente forma:
area = PI * radio * radio
Decido utilizar la variable area en lugar de sólo la letra a, para que los nombre de mis variables sean más legibles y tengan relación con el problema.
Ahora, para crear el diagrama de flujo, dibujamos el símbolo de inicio. Del paso anterior, hemos establecido que el valor del radio deberá ser recibido como entrada, así que dibujamos el símbolo de entrada, escribiendo dentro del símbolo sólo el nombre de la variable que hemos identificado (radio).
Es importante mencionar que cuando utilices los símbolos para crear un diagrama de flujo, no escribas texto de más dentro de cada uno, sólo debes escribir la variable a la que hará referencia la operación del símbolo. Por ejemplo, en este caso, requieres de entrada el radio, por lo que sólo debes escribir “radio” dentro del símbolo de entrada. Recuerda que cada símbolo te dirá el tipo de instrucción que estás utilizando, por lo que frases como “Introduce el valor del radio” están de sobra.
Ahora lo que debemos hacer es dibujar el símbolo de proceso. Dentro de él escribiremos la fórmula para obtener el área de un círculo en notación de programación. Hay quien opta por escribir la ecuación en notación matemática, pero yo he visto que es mejor ser disciplinados con esto y escribirla en notación de programación para que cuando realices la codificación, la fórmula pasará directamente como la escribiste en este punto.
En el caso de PI, al ser una constante, no puedo utilizar el símbolo de entrada para asignarle valor. En este caso, puedo hacer dos cosas:
- Utilizar un símbolo de proceso para asignarle valor.
- Usar un comentario para indicar que se trata de una constante y que de ese modo deberá ser definida en el lenguaje de programación.
En este ejemplo, opto por la segunda opción, pero utilizar la primera alternativa también sería correcto.
Lo último que necesita hacer el programa es mostrar la variable calculada, en este caso, área. Por eso se dibuja el símbolo de salida con la variable área dentro de éste. Terminamos el algoritmo con el símbolo de fin. El diagrama de flujo lo puedes ver en la figura 4.

Elaboración del pseudocódigo.
Habiendo creado el diagrama de flujo, podemos decir que ya tenemos el algoritmo creado. Pero siempre les pido a mis estudiantes que trabajen el pseudocódigo, porque esta notación es más parecida al programa final.
Para escribir el pseudocódigo, hago uso del significado de cada símbolo del diagrama de flujo y utilizo una palabra que representa esa acción. Por ejemplo, utilizo las palabras clave: “Entrada” cada vez que me encuentro con el símbolo de entrada, y “Salida” cada vez que veo el símbolo de salida. También podría usar las palabras “Leer” para la entrada e “Imprimir” para la salida. Y lo hago de esta manera porque al escribir pseudocódigo, lo importante es dejar indicado que este tipo de acciones deberán ser traducidas por la instrucción adecuada del lenguaje de programación. Recuerda que un pseudocódigo debe representar una solución con cierto nivel de detalle, pero sin tener una dependencia hacia un lenguaje de programación en específico.
Todo lo que está escrito dentro de un símbolo de proceso (el rectángulo), lo escribo exactamente igual en el pseudocódigo, dado que ya hice la traducción de la expresión matemática original a notación matemática. En la figura 5 te muestro el pseudocódigo para este problema.

Paso 3: traducir el método a código de computadora.
Ahora que ya tenemos creado el algoritmo para el problema, la escritura del programa se reduce a una simple traducción. Así como convertimos cada uno de los símbolos del diagrama de flujo en una representación equivalente en el pseudocódigo, ahora tomaré cada una de las acciones del pseudocódigo y las convertiré a la instrucción apropiada en el lenguaje Java.
Pero antes de traducir el pseudocódigo, necesito declarar las variables y/o constantes que se requieren para el programa. Recuerda que en el algoritmo en sí no hacemos declaración de variables, sólo se identificaron previamente con el diagrama de entradas y salidas. Pero el programa en lenguaje Java sí necesitará la declaración, entendiéndose ésta como el proceso de asignar un nombre y un tipo de dato a las variables y/o constantes identificadas.
Así que hago una rápida inspección del pseudocódigo, y observo que necesito declarar las variables radio y área, y la constante para PI. Además, necesito declarar y construir el objeto BufferedReader para leer la entrada por teclado, y el String donde recuperaré la entrada del búfer. (Si necesitas más información sobre cómo funciona BufferedReader, da click aquí).
Ahora sí estoy lista para traducir el pseudocódigo en programa.
Por cada entrada, utilizo tres líneas de código:
- Un mensaje para pedirle al usuario que ingrese el valor de la variable de entrada.
- La línea de código en donde atraparé lo que venga del teclado.
- La conversión al tipo de dato adecuado a la variable de entrada.
Esto te lo muestro a continuación:
System.out.println("Escribe el valor del radio: "); entrada = bufer.readLine(); radio = Double.parseDouble(entrada);
Una vez que realicé la entrada de la variable radio, continuo con el proceso, en donde se calcula el área del círculo. Debido a que cuando realicé el diagrama de flujo, esta expresión ya la escribí en notación de programación, ya sólo debo escribirlo tal y como aparece en el pseudocódigo, agregándole el ; que indica el fin de la instrucción.
Ahora, para la salida, llamo al método println de la clase final System para mostrar el valor de la variable área en la pantalla. Y de esta forma termino el programa.
Te dejo el código completo a continuación:
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * Programa que calcula el área de un círculo. * @author Gaby Nieva - dCodinGames.com */ public class AreaCirculo { public static void main(String[] args) throws IOException { final double PI = 3.146; // declarando una constante double area; // declaración de variables double radio; // configuración del bufer de entrada BufferedReader bufer = new BufferedReader(new InputStreamReader(System.in)); String entrada; // Entrada(radio) System.out.println("Escribe el valor del radio: "); entrada = bufer.readLine(); radio = Double.parseDouble(entrada); // proceso area = PI * radio * radio; // Salida(area) System.out.println("El área del círculo es: " + area ); } }
Paso 4: probar y depurar.
En este paso realizamos pruebas de ejecución para verificar que el programa obtiene la salida esperada. Un problema más complejo requeriría múltiples pruebas, pero en este caso sólo ejecutamos el programa y verificamos que el cálculo del área sea el correcto.
A continuación te muestro la ventana de salida de la ejecución de este programa.


De esta forma concluyo esta entrada. Espero que te sea de utilidad, y ya sabes, comparte en tus redes sociales, o déjame un comentario si tienes dudas.
¡Hasta el siguiente post!
Gladys Obet Huerta Martínez