# Cargamos la biblioteca shiny
library(shiny)
## Warning: package 'shiny' was built under R version 4.2.3
# Función que calcula Cp(t)
Cp <- function(t, a, b, c) {
  return(a + b * t - c / t^2)
}

# Definir la interfaz de la aplicación
ui <- fluidPage(
  titlePanel("Cálculo de Entalpía"),

  # Campos de entrada para los valores
  textInput("a", "Valor de a:", ""),
  textInput("b", "Valor de b:", ""),
  textInput("c", "Valor de c:", ""),
  textInput("Ti", "Temperatura inicial:", ""),
  textInput("Tf", "Temperatura final:", ""),

  # Botón para calcular la entalpía
  actionButton("calcular", "Calcular Entalpía"),

  # Etiqueta para mostrar el resultado
  textOutput("resultado")
)

# Definir la lógica de la aplicación
server <- function(input, output) {
  observeEvent(input$calcular, {
    a <- as.numeric(input$a)
    b <- as.numeric(input$b)
    c <- as.numeric(input$c)
    Ti <- as.numeric(input$Ti)
    Tf <- as.numeric(input$Tf)

    n <- 1000  # Puedes ajustar este valor para obtener una aproximación más precisa
    h <- (Tf - Ti) / n

    integral <- 0
    for (i in 1:n) {
      xi <- Ti + (i - 1) * h
      xi1 <- Ti + i * h
      integral <- integral + (Cp(xi, a, b, c) + Cp(xi1, a, b, c)) * h / 2
    }

    output$resultado <- renderText({
      return(paste("La entalpía es igual a:", integral))
    })
  })
}

# Ejecutar la aplicación shiny
shinyApp(ui = ui, server = server)
Shiny applications not supported in static R Markdown documents