Tracks
/
R
R
/
Ejercicios
/
Lasaña
Lasaña

Lasaña

Ejercicio de aprendizaje

Introducción

Variables y asignación

R es un lenguaje de tipado dinámico, así que en general no es necesario especificar el tipo de una variable. El operador de asignación preferido es <-

x <- 42
avogadro <- 6.02e23
mystr <- "Hello, World!"

Usar = en lugar de <- muchas veces funciona, pero no siempre, y se considera de mal estilo. Si trabajas en RStudio, puedes escribirlo con el atajo de teclado Alt-minus.

Los operadores son en su mayoría convencionales, pero fíjate en %/% y %%:

2 + 3   # 5
2 - 3   # -1
2 * 3   # 6
2 / 3   # 0.6666667
8 %/% 3 # 2 (integer division)
8 %% 3  # 2 (remainder)
2 ^ 3   # 8 (exponential)

En R, # inicia un comentario de una sola línea. No hay una sintaxis aparte para los comentarios de varias líneas.

Funciones

Para definir una función:

squareit <- function(x) {
    x * x
}

Las funciones pueden tener cero o más argumentos, separados por comas. Se necesitan paréntesis (()) al usar function(), aunque no haya parámetros.

Se pueden especificar valores predeterminados para los argumentos de una función, aunque deben ir después de cualquier argumento sin valor predeterminado, y se usa = y no <- para asignar el valor predeterminado. Como un ejemplo bastante inútil:

squareit <- function(x = 42) {
    x * x
}

squareit()
#> [1] 1764

Las llaves ({ }) no son estrictamente necesarias para cuerpos de función de una sola línea, pero incluirlas se considera buen estilo.

R devuelve automáticamente el valor final de una función, como en los ejemplos anteriores.

return() se puede usar en cualquier parte del cuerpo de la función para hacer explícito un valor de retorno.

Llamar a una función es igual que en muchos otros lenguajes:

squareit(3)
#> [1] 9

Instrucciones

En este ejercicio vas a escribir algo de código para ayudarte a cocinar una lasaña espectacular con tu libro de cocina favorito.

Tienes cuatro tareas, todas relacionadas con el tiempo que se tarda en cocinar la lasaña.

1. Define el tiempo esperado en el horno en minutos

Define la función expected_minutes_in_oven() que no recibe ningún parámetro y devuelve cuántos minutos debe estar la lasaña en el horno. Según el libro de cocina, el tiempo esperado en el horno es de 60 minutos.

> expected_minutes_in_oven()
[1] 60

2. Calcula el tiempo restante en el horno en minutos

Define la función remaining_time_in_minutes que recibe como parámetro los minutos que la lasaña lleva en el horno y devuelve cuántos minutos le quedan todavía en el horno, según el tiempo esperado en minutos de la tarea anterior.

> remaining_time_in_minutes(50)
[1] 10

3. Calcula el tiempo de preparación en minutos

Define la función prep_time_in_minutes() que recibe como parámetro la cantidad de capas que le agregaste a la lasaña y devuelve cuántos minutos tardaste en prepararla, suponiendo que cada capa te toma 2 minutos de preparación.

> prep_time_in_minutes(2)
[1] 4

4. Calcula el tiempo transcurrido en minutos

Define la función elapsed_time_in_minutes que recibe dos argumentos: el primero es la cantidad de capas que le agregaste a la lasaña, y el segundo es la cantidad de minutos que la lasaña lleva en el horno. La función debe devolver cuántos minutos en total has trabajado cocinando la lasaña, es decir, la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña lleva en el horno en ese momento.

> elapsed_time_in_minutes(3, 20)
[1] 26
Editar en GitHub El enlace se abre en una ventana o una pestaña nuevas
R Exercism

¿Todo listo para empezar Lasaña?

Regístrate en Exercism para aprender y dominar R con 21 conceptos111 ejercicios y mentoría humana real, todo gratis.