import React, { useState } from 'react'; interface OpcionProduccion { bienesA: number; bienesB: number; } const datosFPP: OpcionProduccion[] = [ { bienesA: 0, bienesB: 100 }, { bienesA: 20, bienesB: 90 }, { bienesA: 40, bienesB: 75 }, { bienesA: 60, bienesB: 55 }, { bienesA: 80, bienesB: 30 }, { bienesA: 100, bienesB: 0 }, ]; export const CostoOportunidadCalculator: React.FC = () => { const [puntoInicial, setPuntoInicial] = useState(0); const [puntoFinal, setPuntoFinal] = useState(1); const [respuestaUsuario, setRespuestaUsuario] = useState(''); const [resultado, setResultado] = useState<{ correcto: boolean; mensaje: string; costoReal: number; } | null>(null); const calcularCostoOportunidad = (inicio: number, fin: number): number => { const opcionInicio = datosFPP[inicio]; const opcionFin = datosFPP[fin]; const cambioBienB = opcionFin.bienesB - opcionInicio.bienesB; const cambioBienA = opcionFin.bienesA - opcionInicio.bienesA; if (cambioBienA === 0) return 0; return Math.abs(cambioBienB / cambioBienA); }; const verificarRespuesta = () => { const costoReal = calcularCostoOportunidad(puntoInicial, puntoFinal); const respuestaNum = parseFloat(respuestaUsuario); if (isNaN(respuestaNum)) { setResultado({ correcto: false, mensaje: 'Por favor ingresa un número válido', costoReal: costoReal }); return; } const margenError = 0.5; const correcto = Math.abs(respuestaNum - costoReal) <= margenError; setResultado({ correcto, mensaje: correcto ? '¡Correcto! Has calculado bien el costo de oportunidad.' : 'Incorrecto. Revisa tu cálculo.', costoReal: costoReal }); }; const generarNuevoEjercicio = () => { const nuevoInicio = Math.floor(Math.random() * (datosFPP.length - 1)); const nuevoFin = nuevoInicio + 1 + Math.floor(Math.random() * (datosFPP.length - nuevoInicio - 1)); setPuntoInicial(nuevoInicio); setPuntoFinal(nuevoFin); setRespuestaUsuario(''); setResultado(null); }; return (

Calculadora de Costo de Oportunidad

Tabla de Posibilidades de Producción:

{datosFPP.map((opcion, index) => ( ))}
Opción Bien A Bien B
{index + 1} {opcion.bienesA} {opcion.bienesB}

Ejercicio:

Si la economía se mueve de la Opción {puntoInicial + 1} a la Opción {puntoFinal + 1}, ¿cuál es el costo de oportunidad de producir una unidad adicional del Bien A?

setRespuestaUsuario(e.target.value)} className="border p-2 rounded w-32" placeholder="Ej: 0.75" /> unidades del Bien B
{resultado && (

{resultado.mensaje}

{!resultado.correcto && (

El costo de oportunidad correcto es: {resultado.costoReal.toFixed(2)} unidades del Bien B

)}
)}

Fórmula:

Costo de Oportunidad = |Cambio en Bien B| / |Cambio en Bien A|

); }; export default CostoOportunidadCalculator;