Compare commits

..
4 Commits
Author SHA1 Message Date
PC de clase 8f7e450a26 parque atracciones (no terminado) 2026-11-09 13:07:50 +01:00
PC de clase dc0a3aacb3 Semaforos 2026-11-09 13:07:23 +01:00
PC de clase 81eac7a894 RepasoMetodos sin arrays 2026-11-09 10:16:41 +01:00
PC de clase e190552230 Ejercicio repaso métodos 2026-11-06 10:27:02 +01:00
3 changed files with 158 additions and 44 deletions

No files matched your search

+30
View File
@@ -0,0 +1,30 @@
public class Constructores1 {
public static class Semaforo {
public static enum Estados{
Rojo,
Ambar,
Verde,
}
private Estados estado;
Semaforo(Estados estado){
this.estado = estado;
}
public void imprimirEstado(){
System.out.printf("El semaforo está en %s\n", this.getEstado());
}
public Estados getEstado(){
return this.estado;
}
public void setEstado(Estados estado){
this.estado = estado;
}
}
public static void main(String[] args) {
Semaforo semaforo = new Semaforo(Semaforo.Estados.Rojo);
semaforo.imprimirEstado();
semaforo.setEstado(Semaforo.Estados.Ambar);
semaforo.imprimirEstado();
semaforo.setEstado(Semaforo.Estados.Verde);
semaforo.imprimirEstado();
}
}
+85
View File
@@ -0,0 +1,85 @@
import java.util.*;
public class ParqueAtracciones {
private static int totalEntradas = 0;
private static int totalAdultos = 0;
private static int totalNinos = 0;
private static int recaudacion = 0;
private static int totalDescuentos = 0;
private static Scanner sc = new Scanner(System.in);
public static void main(String[] args) {
boolean salir = false;
while (!salir) {
switch (menuPrincipal()) {
case vender:
break;
case recaudacion:
break;
case estadisticas:
break;
case resumen:
break;
case salir:
salir = true;
break;
case invalida:
System.out.println("Opción inválida, intentalo de nuevo");
break;
}
}
}
private static enum OpcionesMenu {
vender,
recaudacion,
estadisticas,
resumen,
salir,
invalida,
}
private static OpcionesMenu menuPrincipal() {
System.out.print(
"========== PARQUE DE ATRACCIONES ==========\n" +
"1. Vender entrada\n" +
"2. Consultar recaudación\n" +
"3. Consultar estadísticas\n" +
"4. Mostrar resumen del día\n" +
"5. Salir\n" +
"Elige una opción: "
);
int opt = leerEnteroPositivo();
return switch (opt) {
case 1 -> OpcionesMenu.vender;
case 2 -> OpcionesMenu.recaudacion;
case 3 -> OpcionesMenu.estadisticas;
case 4 -> OpcionesMenu.resumen;
case 5 -> OpcionesMenu.salir;
default -> OpcionesMenu.invalida;
};
}
private static int leerEnteroPositivo() {
int resultado = 0;
do {
try {
resultado = sc.nextInt();
} catch (Exception e) {
System.out.printf(
"Valor incorrecto, debe ser un número natural (%s)\n",
e
);
sc.next();
}
if (resultado < 0) System.out.println(
"Debe ser un numero positivo"
);
} while (resultado < 0);
return resultado;
}
}
+43 -44
View File
@@ -9,29 +9,31 @@ public class RepasoMetodos {
int opt = mostrarMenu(); int opt = mostrarMenu();
int figura = seleccionarFigura(); int figura = seleccionarFigura();
double resultado = -1.0; double resultado = -1.0;
int[] lados; switch (figura) {
switch(figura){
case 1: // Cuadrado case 1: // Cuadrado
System.out.print("Longitud del lado: "); System.out.print("Longitud del lado: ");
int lado = leerEnteroPositivo(); int lado = leerEnteroPositivo();
lados = new int[4]; resultado =
for(int i = 0; i < 4; i++){ opt == 1 ? areaCuadrado(lado) : perimetroCuadrado(lado);
lados[i] = lado;
}
resultado = (opt == 1) ? areaCuadrado(lado) : perimetroPoligono(lados);
break; break;
case 2: // Triangulo case 2: // Triangulo
lados = new int[3]; int l1, l2, l3;
for(int i = 0; i < 3; i++){ System.out.printf("Longitud del lado 1: ");
System.out.printf("Longitud del lado %d: ", i+1); l1 = leerEnteroPositivo();
lados[i] = leerEnteroPositivo(); System.out.printf("Longitud del lado 2: ");
} l2 = leerEnteroPositivo();
resultado = (opt == 1) ? areaTriangulo(lados) : perimetroPoligono(lados); System.out.printf("Longitud del lado 3: ");
l3 = leerEnteroPositivo();
resultado =
opt == 1
? areaTriangulo(l1, l2, l3)
: perimetroTriangulo(l1, l2, l3);
break; break;
case 3: // Circulo case 3: // Circulo
System.out.print("Radio del círculo: "); System.out.print("Radio del círculo: ");
int radio = leerEnteroPositivo(); int radio = leerEnteroPositivo();
resultado = (opt == 1) ? areaCirculo(radio) : perimetroCirculo(radio); resultado =
opt == 1 ? areaCirculo(radio) : perimetroCirculo(radio);
break; break;
default: default:
break; break;
@@ -40,68 +42,65 @@ public class RepasoMetodos {
} }
// Área del círculo (PI * r^2) // Área del círculo (PI * r^2)
private static double areaCirculo(int radio){ private static double areaCirculo(int radio) {
return Math.PI * (radio * radio); return Math.PI * (radio * radio);
} }
// Perímetro del círculo (2 * PI * r) // Perímetro del círculo (2 * PI * r)
private static double perimetroCirculo(int radio){ private static double perimetroCirculo(int radio) {
return 2 * Math.PI * radio; return 2 * Math.PI * radio;
} }
// Perímetro de cualquier polígono // Perímetro de triangulo
private static double perimetroPoligono(int[] lados) { private static double perimetroTriangulo(double l1, double l2, double l3) {
double resultado = 0.0; return l1 + l2 + l3;
for(int l : lados) resultado += l; }
return resultado;
// Perímetro de cuadrado
private static double perimetroCuadrado(double lado) {
return lado * 4;
} }
// Area cuadrado // Area cuadrado
private static double areaCuadrado(int lado){ private static double areaCuadrado(int lado) {
return lado * lado; return lado * lado;
} }
// Area del triangulo (formula de Herón) // Area del triangulo (formula de Herón)
private static double areaTriangulo(int[] lados){ private static double areaTriangulo(double l1, double l2, double l3) {
if(lados.length != 3) { double semiperimetro = perimetroTriangulo(l1, l2, l3) / 2.0;
System.out.println("El triangulo tiene que tener 3 lados");
return -1.0;
}
double semiperimetro = perimetroPoligono(lados) / 2.0;
double resultado = semiperimetro; double resultado = semiperimetro;
for(int i = 0; i < 3; i++){ resultado *= semiperimetro - l1;
resultado *= semiperimetro - lados[i]; resultado *= semiperimetro - l2;
} resultado *= semiperimetro - l3;
resultado = Math.sqrt(resultado); resultado = Math.sqrt(resultado);
return resultado; return resultado;
} }
private static int seleccionarFigura() {
private static int seleccionarFigura(){ System.out.println(
System.out.println("Selecciona una figura:\n"+ "Selecciona una figura:\n" +
"1. Cuadrado\n"+ "1. Cuadrado\n" +
"2. Triángulo\n"+ "2. Triángulo\n" +
"3. Círculo"); "3. Círculo"
);
int resultado = -1; int resultado = -1;
boolean parar = false; boolean parar = false;
while(!parar){ while (!parar) {
System.out.print("Elige una opción: "); System.out.print("Elige una opción: ");
resultado = leerEnteroPositivo(); resultado = leerEnteroPositivo();
if(resultado <= 3) parar = true; if (resultado <= 3) parar = true;
else System.out.printf("%d no es una figura valida", resultado); else System.out.printf("%d no es una figura valida\n", resultado);
} }
return resultado; return resultado;
} }
private static int mostrarMenu() { private static int mostrarMenu() {
System.out.print( System.out.print(
"¿Qué desea calcular?\n" + "¿Qué desea calcular?\n" + "1. Área\n" + "2. Perímetro\n"
"1. Área\n" +
"2. Perímetro\n"
); );
boolean salir = false; boolean salir = false;
int resultado = -1; int resultado = -1;