Compare commits

..
2 Commits
Author SHA1 Message Date
PC de clase bf91a20bee Ejercicio repaso métodos 2026-11-06 10:26:24 +01:00
PC de clase a2e6a6c8a0 Actualizar modules.xml 2026-11-06 09:01:24 +01:00
2 changed files with 136 additions and 1 deletions

No files matched your search

+1 -1
View File
@@ -2,7 +2,7 @@
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Metodos.iml" filepath="$PROJECT_DIR$/Metodos.iml" />
<module fileurl="file://$PROJECT_DIR$/Tema-3.iml" filepath="$PROJECT_DIR$/Tema-3.iml" />
</modules>
</component>
</project>
+135
View File
@@ -0,0 +1,135 @@
import java.util.*;
public class RepasoMetodos {
static Scanner sc;
public static void main(String[] args) {
sc = new Scanner(System.in);
int opt = mostrarMenu();
int figura = seleccionarFigura();
double resultado = -1.0;
int[] lados;
switch(figura){
case 1: // Cuadrado
System.out.print("Longitud del lado: ");
int lado = leerEnteroPositivo();
lados = new int[4];
for(int i = 0; i < 4; i++){
lados[i] = lado;
}
resultado = (opt == 1) ? areaCuadrado(lado) : perimetroPoligono(lados);
break;
case 2: // Triangulo
lados = new int[3];
for(int i = 0; i < 3; i++){
System.out.printf("Longitud del lado %d: ", i+1);
lados[i] = leerEnteroPositivo();
}
resultado = (opt == 1) ? areaTriangulo(lados) : perimetroPoligono(lados);
break;
case 3: // Circulo
System.out.print("Radio del círculo: ");
int radio = leerEnteroPositivo();
resultado = (opt == 1) ? areaCirculo(radio) : perimetroCirculo(radio);
break;
default:
break;
}
System.out.printf("El resultado es %.2f\n", resultado);
}
// Área del círculo (PI * r^2)
private static double areaCirculo(int radio){
return Math.PI * (radio * radio);
}
// Perímetro del círculo (2 * PI * r)
private static double perimetroCirculo(int radio){
return 2 * Math.PI * radio;
}
// Perímetro de cualquier polígono
private static double perimetroPoligono(int[] lados) {
double resultado = 0.0;
for(int l : lados) resultado += l;
return resultado;
}
// Area cuadrado
private static double areaCuadrado(int lado){
return lado * lado;
}
// Area del triangulo (formula de Herón)
private static double areaTriangulo(int[] lados){
if(lados.length != 3) {
System.out.println("El triangulo tiene que tener 3 lados");
return -1.0;
}
double semiperimetro = perimetroPoligono(lados) / 2.0;
double resultado = semiperimetro;
for(int i = 0; i < 3; i++){
resultado *= semiperimetro - lados[i];
}
resultado = Math.sqrt(resultado);
return resultado;
}
private static int seleccionarFigura(){
System.out.println("Selecciona una figura:\n"+
"1. Cuadrado\n"+
"2. Triángulo\n"+
"3. Círculo");
int resultado = -1;
boolean parar = false;
while(!parar){
System.out.print("Elige una opción: ");
resultado = leerEnteroPositivo();
if(resultado <= 3) parar = true;
else System.out.printf("%d no es una figura valida", resultado);
}
return resultado;
}
private static int mostrarMenu() {
System.out.print(
"¿Qué desea calcular?\n" +
"1. Área\n" +
"2. Perímetro\n"
);
boolean salir = false;
int resultado = -1;
while (!salir) {
System.out.print("Elige una opción: ");
resultado = leerEnteroPositivo();
if (resultado <= 2) salir = true;
else System.out.println("Debe ser 1 o 2");
}
return resultado;
}
private static int leerEnteroPositivo() {
int resultado = -1;
boolean parar = false;
while (!parar) {
try {
resultado = sc.nextInt();
if (resultado > 0) {
parar = true;
} else {
System.out.println("Debe ser un número entero positivo");
}
} catch (InputMismatchException e) {
System.out.println("No es un número entero válido");
sc.next();
}
}
return resultado;
}
}