Kevin Y.
Padilla Taboas 841228470 Asignacion 4
import java.lang.Math;
// Definición de la clase αµπβΩ (FiguraGeometrica)
abstract class αµπβΩ {
protected String tipo;
public αµπβΩ(String tipo) {
this.tipo = tipo;
}
public abstract double calcularArea();
public abstract double calcularVolumen();
}
// Definición de subclases de FiguraGeometrica
class Circulo extends αµπβΩ {
private double radio;
public Circulo(double radio) {
super("Círculo");
this.radio = radio;
}
@Override
public double calcularArea() {
return Math.PI * Math.pow(radio, 2);
}
@Override
public double calcularVolumen() {
throw new UnsupportedOperationException("El círculo no tiene volumen");
}
}
class Cubo extends αµπβΩ {
private double lado;
public Cubo(double lado) {
super("Cubo");
this.lado = lado;
}
@Override
public double calcularArea() {
return 6 * Math.pow(lado, 2);
}
@Override
public double calcularVolumen() {
return Math.pow(lado, 3);
}
}
class Pyramid extends αµπβΩ {
private double length;
private double width;
private double height;
public Pyramid(double length, double width, double height) {
super("Pirámide");
this.length = length;
this.width = width;
this.height = height;
}
@Override
public double calcularArea() {
double baseArea = length * width;
double sideArea = length * Math.sqrt(Math.pow(width / 2, 2) +
Math.pow(height, 2));
return baseArea + 2 * sideArea;
}
@Override
public double calcularVolumen() {
return (length * width * height) / 3;
}
}
// Definición de la clase αµπβΩArrayPrintingApp
public class αµπβΩArrayPrintingApp {
private αµπβΩ[] figuras;
public αµπβΩArrayPrintingApp() {
figuras = new αµπβΩ[5]; // Cambia el tamaño según lo necesites
}
public void agregarFigura(αµπβΩ figura, int indice) {
figuras[indice] = figura;
}
public void mostrarDatos() {
for (int i = 0; i < figuras.length; i++) {
αµπβΩ figura = figuras[i];
if (figura != null) {
System.out.println("Figura " + (i + 1) + ":");
System.out.println("Tipo: " + figura.tipo);
System.out.println("Área: " + figura.calcularArea());
System.out.println("Volumen: " + figura.calcularVolumen());
System.out.println();
}
}
}
public static void main(String[] args) {
αµπβΩArrayPrintingApp app = new αµπβΩArrayPrintingApp();
// Agregar figuras al arreglo
app.agregarFigura(new Circulo(5), 0);
app.agregarFigura(new Cubo(3), 1);
app.agregarFigura(new Pyramid(2, 3, 4), 2);
// Mostrar datos de las figuras
app.mostrarDatos();
}
}
import java.util.ArrayList;
import java.util.Scanner;
// Definición de la clase αµπβΩ (FiguraGeometrica)
abstract class αµπβΩ {
protected String tipo;
public αµπβΩ(String tipo) {
this.tipo = tipo;
}
public abstract double calcularArea();
}
// Definición de subclases de FiguraGeometrica
class Circulo extends αµπβΩ {
private double radio;
public Circulo(double radio) {
super("Círculo");
this.radio = radio;
}
@Override
public double calcularArea() {
return Math.PI * Math.pow(radio, 2);
}
}
class Cubo extends αµπβΩ {
private double lado;
public Cubo(double lado) {
super("Cubo");
this.lado = lado;
}
@Override
public double calcularArea() {
return 6 * Math.pow(lado, 2);
}
}
class Pyramid extends αµπβΩ {
private double length;
private double width;
private double height;
public Pyramid(double length, double width, double height) {
super("Pirámide");
this.length = length;
this.width = width;
this.height = height;
}
@Override
public double calcularArea() {
double baseArea = length * width;
double sideArea = length * Math.sqrt(Math.pow(width / 2, 2) +
Math.pow(height, 2));
return baseArea + 2 * sideArea;
}
}
public class αµπβΩListApp {
private static Scanner scanner = new Scanner(System.in);
public static void main(String[] args) {
ArrayList<αµπβΩ> figuras = new ArrayList<>();
// Agregar algunas figuras al ArrayList
figuras.add(new Circulo(5));
figuras.add(new Cubo(3));
figuras.add(new Pyramid(2, 3, 4));
// Mostrar estadísticas
System.out.println("Suma de las áreas: " + calcSumArea(figuras));
System.out.println("Promedio de las áreas: " + calcAverageArea(figuras));
System.out.println("Área máxima: " + calcMaximumArea(figuras));
System.out.println("Área mínima: " + calcMinimumArea(figuras));
System.out.print("Ingrese un área específica: ");
double areaEspecifica = scanner.nextDouble();
filterByArea(areaEspecifica, figuras);
System.out.println("Lista de figuras con área mayor a " + areaEspecifica +
":");
for (αµπβΩ figura : figuras) {
System.out.println(figura.tipo + ": " + figura.calcularArea());
}
}
public static double calcSumArea(ArrayList<αµπβΩ> figuras) {
double sum = 0;
for (αµπβΩ figura : figuras) {
sum += figura.calcularArea();
}
return sum;
}
public static double calcAverageArea(ArrayList<αµπβΩ> figuras) {
double sum = calcSumArea(figuras);
return sum / figuras.size();
}
public static double calcMaximumArea(ArrayList<αµπβΩ> figuras) {
double max = Double.MIN_VALUE;
for (αµπβΩ figura : figuras) {
double area = figura.calcularArea();
if (area > max) {
max = area;
}
}
return max;
}
public static double calcMinimumArea(ArrayList<αµπβΩ> figuras) {
double min = Double.MAX_VALUE;
for (αµπβΩ figura : figuras) {
double area = figura.calcularArea();
if (area < min) {
min = area;
}
}
return min;
}
public static void filterByArea(double area, ArrayList<αµπβΩ> figuras) {
figuras.removeIf(figura -> figura.calcularArea() <= area);
}
}