Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: dferna en 05 de Abril 2017, 23:22
-
Buenas ;)
Aquí dejo la resolución al ejercicio CU00673B del curso de programación Java con IDE BlueJ, de calcular el área y la longitud de un circulo a través del radio.
Clase Test donde creo un objeto Circulo y le calculo su área y longitud a través del radio introducido por el usuario.
package aplicacion;
import circulo.Circulo;
import utilidades.Utilidades;
public class Test {
public static void main(String[] args) {
Circulo circulo = new Circulo();
Utilidades utilidades = new Utilidades();
double numeroIntroducido = 0;
double area = 0.0;
double longitud = 0.0;
System.out.println("En esta aplicación vamos a proceder a calcular el área y la longitud de un círculo a través de su radio");
System.out.println("Por favor ingrese el radio:");
numeroIntroducido = utilidades.pideNumero();
circulo.setRadio(numeroIntroducido);
area = circulo.calcularAreaCirculo();
longitud = circulo.calcularLongitudCirculo();
System.out.println("El area del circulo es: "+area+" y la longitud es: "+longitud+" metros");
}
}
Clase Circulo con los métodos para calcular el área y la longitud del círculo
package circulo;
public class Circulo {
private static final double NUMEROPI = 3.1416;
private double radio;
public double getNumeroPi(){
return NUMEROPI;
}
public double getRadio() {
return radio;
}
public void setRadio(double valorRadio) {
radio = valorRadio;
}
public double calcularAreaCirculo(){
double area = 0.0;
area = Math.pow(radio,2)*NUMEROPI;
return area;
}
public double calcularLongitudCirculo(){
double longitud = 0.0;
longitud = 2*NUMEROPI*radio;
return longitud;
}
}
Clase Utilidades que contiene los métodos de entrada de datos.
package utilidades;
import java.util.Scanner;
public class Utilidades {
public int pideNumero() {
Scanner sc = new Scanner(System.in);
int entradaTeclado = sc.nextInt();
return entradaTeclado;
}
public String pideCadena() {
Scanner sc = new Scanner(System.in);
String entradaTeclado = sc.nextLine();
return entradaTeclado;
}
}
Aquí dejo también una prueba de funcionamiento:
En esta aplicación vamos a proceder a calcular el área y la longitud de un círculo a través de su radio
Por favor ingrese el radio:
3
El area del circulo es: 28.2744 y la longitud es: 18.8496 metros
Saludos :)
-
Hola dferna.
Funciona bien, solo comentarte lo mismo que en el ejercicio anterior con el nombre de la clase Utilidades y en este caso también comentar que la clase Circulo quedaría más completa si hubieses añadido un constructor para inicializar el valor del radio y por qué no otro en el que se reciba el valor del radio.
Saludos. ;D
-
Hola pedro ;)
Gracias por la corrección del ejercicio y por darme esos consejos, he rediseñado la aplicación introduciendo los constructores como me has indicado, he dejado las dos soluciones en la misma aplicación, eso si comentada la antigua para que se observe que hacen los mismo de dos maneras diferentes.
Aqui dejo el código que he modificado.
package aplicacion;
import circulo.Circulo;
import utilidades.EntradaDatos;
public class Test {
public static void main(String[] args) {
Circulo circulo = new Circulo();
EntradaDatos entradaDatos = new EntradaDatos();
double numeroIntroducido = 0;
double area = 0.0;
double longitud = 0.0;
/*System.out.println("En esta aplicación vamos a proceder a calcular el área y la longitud de un círculo a través de su radio");
System.out.println("Por favor ingrese el radio:");
//Resolución ejercicio pidiendo los datos por teclado y utilizando el set para dar el valor del radio al objeto
numeroIntroducido = entradaDatos.pideNumero();
circulo.setRadio(numeroIntroducido);
area = circulo.calcularAreaCirculo();
longitud = circulo.calcularLongitudCirculo();
System.out.println("El area del circulo es: "+area+" y la longitud es: "+longitud+" metros");*/
//Resolución del ejercicio utilizando el constructor sobrecargado en el que creo el objeto con el valor del radio ya establecido con el
//valor que ha introducido el usuario por teclado de esta manera no se tiene que utilizar el método set del objeto.
System.out.println("En esta aplicación vamos a proceder a calcular el área y la longitud de un círculo a través de su radio");
System.out.println("Por favor ingrese el radio:");
numeroIntroducido = entradaDatos.pideNumero();
Circulo circulo2 = new Circulo(numeroIntroducido);
area = circulo2.calcularAreaCirculo();
longitud = circulo2.calcularLongitudCirculo();
System.out.println("El area del circulo es: "+area+" y la longitud es: "+longitud+" metros");
}
}
Clase Circulo
package circulo;
public class Circulo {
private static final double NUMEROPI = 3.1416;
private double radio;
public Circulo(){
radio = 0.0;
}
public Circulo(double valorRadio){
radio = valorRadio;
}
public double getNumeroPi(){
return NUMEROPI;
}
public double getRadio() {
return radio;
}
public void setRadio(double valorRadio) {
radio = valorRadio;
}
public double calcularAreaCirculo(){
double area = 0.0;
area = Math.pow(radio,2)*NUMEROPI;
return area;
}
public double calcularLongitudCirculo(){
double longitud = 0.0;
longitud = 2*NUMEROPI*radio;
return longitud;
}
}
Saludos ;)