Rutas
/
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, por lo 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 <- suele funcionar, aunque no siempre, y se desaconseja por ser un mal estilo. Si trabajas en RStudio, puedes introducirlo 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. Los paréntesis () son necesarios con function(), aunque no haya parámetros.

Se pueden especificar valores por defecto para los argumentos de una función, aunque deben ir después de cualquier argumento sin valor por defecto y hay que usar =, no <-, para asignar el valor por defecto. Como ejemplo un tanto 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 devolverá automáticamente el valor final de una función, como en los ejemplos anteriores.

Se puede usar return() en cualquier punto del cuerpo de la función para hacer explícito un valor devuelto.

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

squareit(3)
#> [1] 9

Instrucciones

En este ejercicio vas a escribir 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 reales que la lasaña ha estado en el horno y devuelve cuántos minutos le quedan aún por estar 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 el número de capas que has añadido a la lasaña y devuelve cuántos minutos has tardado en prepararla, suponiendo que cada capa tarda 2 minutos en prepararse.

> 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 primer argumento es el número de capas que has añadido a la lasaña, y el segundo parámetro es el número de minutos que la lasaña ha estado en el horno. La función debe devolver cuántos minutos en total has dedicado a cocinar la lasaña, que es la suma del tiempo de preparación en minutos y el tiempo en minutos que la lasaña ha pasado 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 pestaña nueva
R Exercism

¿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.