Calcular Área

Xiclonne
17 de Diciembre del 2019

Buen día... estoy estudiando programación de manera autodidacta y quisiera que me ayudaran con esto pequeño código en Java...como hago para que el programa no se detenga en el primer calculo, sino que mediera la posibilidad de seguir ejecutaando para diferentes valores del radio...otra cosa que no entiendo es lo de los Constructores (Circulo area = new Circulo(0)) muchas gracias... Carlos Díaz (Bogotá)

import java.util.Scanner;
// Se define la clase Circulo.
public class Circulo {
	// Se crea el objeto de la clase Scanner, para leer los datos de entrada a través del teclado
	Scanner datos = new Scanner(System.in);
    // Se definen los atributos de la clase.
    private double radio;
    private char desea;

    // Se define el método Cosntructor.
    public Circulo(double radio) {
    	this.radio = radio;
    }

    // Se define el método Procesar.
    public void Procesar() {
        // Se declaran las variables.
        char desea;

        // Se inicia el planteamiento del ciclo.
        do {
            // Se realiza el llamado al método.
            Calcular();

            // Se realiza el llamado al método.
            desea = ObtDesea();
        } while (desea == 's' || desea == 'S');
    }

    // Se define el método Calcular.
    public void Calcular() {
        // Se declaran las variables.
        double radio;
        double area;

        // Se realiza el llmado al método.
        radio = ObtRadio();
        area = Area(radio);

        // Imprimir.
        System.out.println("");
        System.out.println("===========================================");
        System.out.printf("%s %.2fn", "|AREA DEL CIRCULO ES #### | ", area);
        System.out.println("===========================================");
    }

    // Se define el método Area.
    public double Area(double radio) {
        // Se declaran las constates.
        final double PI = Math.PI; 
        // Se declaran las variables.
        double area;
        // Calcular.
        area = (PI * (Math.pow(radio, 2.0)));
        // Se retorna el valor del método.
        return area;
    }

    // Se define el método EstRadio.
    public void EstRadio(double radio) {
        // Calcular.
        this.radio = radio;
    }

    // Se define el método ObtRadio.
    public double ObtRadio() {
        // Se declaran las variables.
        int i;
        int punto;
        int control;
        char car;
        String cadena;
        String numero;

        // Se inicia el planteamiento del ciclo.
        do {
            do {
                // Se inicializan las variables.
                punto = 0;
                control = 1;
                // Solicitar Radio del Círculo.
                System.out.println("");
                System.out.println("==============================================");
                System.out.println("|DIGITE UN VALOR VALIDO PARA EL RADIO CIRCULO|");
                System.out.println("==============================================");
                // Leer Radio del Círculo.
                cadena = datos.nextLine();
                // Asignación.
                numero = cadena;
                // Imprimir.
                System.out.println("========");

                // Se inicia el planteamiento del ciclo.
                for(i = 0; i <= numero.length() - 1; i++) {
                    // Calcular.
                    car = numero.charAt(i);
                    // Se ejecutan las operaciones aritméticas y lógicas.
                    if(!((car >= '0' && car <= '9') || (car == '-' || car == '.'))) {
                        control = 0;
                    }
                    if(car == '-' && i > 0) {
                        control = 0;
                    }
                    if(car == '.' && i == 0) {
                        control = 0;
                    }
                    if(car == '.' && i > 0) {
                        punto = (punto + 1);
                    }
                }
                if(punto > 1) {
                    control = 0;
                }
            } while (control != 1);
            // Calcular.
            radio = Double.parseDouble(numero);
            if(radio < 0) {
                control = 0;
            }
        } while (control != 1);
        // Se retorna el valor del método.
        return radio;
    }

    // Se define el método EstDesea;
    public void EstDesea(char desea) {
    	// Calcular.
    	this.desea = desea;
    }

    // Se define el método ObtDesea.
    public char ObtDesea() {
    	// Se declaran las variables.
    	int i;
    	int control;
    	char car;
    	String cadena;
    	String caracter;

    	// Se inicia el planteamiento del ciclo.
    	do {
    		// Se inicializan las variables.
    		control = 0;
    		// Solicitar Procesar Calculo..
    		System.out.println("");
    		System.out.println("===================================================");
    		System.out.println("|SELECCIONAR UN VALOR VALIDO PARA PROCESAR CALCULO|");
    		System.out.println("===================================================");
    		System.out.println("|(S)| PROCESAR NUEVO CALCULO|");
    		System.out.println("-----------------------------");
    		System.out.println("|(N)| TERMINAR LA APLICACION|");
    		System.out.println("=============================");
    		// Leer Procesar Calculo.
    		cadena = datos.nextLine();
    		// Asiganción.
    		caracter = cadena;
    		// Imprimir.
    		System.out.println("-----------------------------");

    		// Se inicia el planteamiento del ciclo.
    		for(i = 0; i <= caracter.length() - 1; i++) {
    			// Calcular.
    			car = caracter.charAt(i);
    			// Se ejecutan las operaciones aritméticas y lógicas.
    			if(car != 's' && car != 'S' && car != 'n' && car != 'N') {
    				control = 0;
    			}
    		}
    	} while (control != 1);
    	// Calcular.
    	desea = caracter.charAt(0);
    	// Se retorna el valor del método.
    	return desea;
    }
}


/**
 * Created by ANDRESCOM.<br/>
 * User: CARLOS DIAZ<br/>
 * Date: 17/11/2019<br/>
 * Time: 7:15 PM<br/>
 *
 *	Elaborar un algoritmo que permita calcular el área de un círculo. utilizado Programamción Orientada a Objetos
 *	(POO)
 *
 *	Analisis:
 *	Datos de Entrada
 *	Radio del Circulo 			radio 		:		Real
 *	Procesar Calculo 			desea 		:		Carácter
 *
 *	Datos de Salida
 *	Area del Círculo 			area 		:		Real
 *
 *	Proceso:
 *	Los primero que tenemos que hacer es solicitar, validar el dato de entrada (radio) y luego procedemos a cal-
 *	cular el valor del área de la siguiente manera.
 *
 *		area = PI * Potencia(radio, 2)
 *
 *		Donde PI es una constante.
 *
 */

// Se define la clase Programa.
public class Programa {
    // Método principal, empieza la ejecución de la aplicación Java.
    public static void main(String [] args) {

    	Circulo area = new Circulo(0);
    	area.Procesar();
    }
}


Xiclonne
17 de Diciembre del 2019

No hay pasa nada...problema resuelto.