Lasagna

Lasagna

Exercício de aprendizagem

Introdução

Variáveis e atribuição

R é uma linguagem de tipagem dinâmica, então em geral não é necessário especificar o tipo de uma variável. O operador de atribuição preferido é <-

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

Usar = em vez de <- muitas vezes funciona, mas nem sempre, e é desaconselhado por ser um estilo ruim. Se você estiver trabalhando no RStudio, dá para digitá-lo com o atalho de teclado Alt-minus.

Os operadores são em sua maioria convencionais, mas repare em %/% e %%:

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)

Em R, # inicia um comentário de uma linha só. Não existe uma sintaxe separada para comentários de várias linhas.

Funções

Para definir uma função:

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

As funções podem ter zero ou mais argumentos, separados por vírgulas. Os parênteses () são necessários com function(), mesmo que não haja parâmetros.

É possível especificar valores padrão para os argumentos de uma função, mas eles precisam vir depois de qualquer argumento sem valor padrão, e usamos = e não <- para atribuir o valor padrão. Como um exemplo meio sem propósito:

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

squareit()
#> [1] 1764

As chaves { } não são estritamente necessárias para corpos de função de uma linha só, mas incluí-las é considerado um bom estilo.

O R retorna automaticamente o valor final de uma função, como nos exemplos acima.

return() pode ser usado em qualquer lugar dentro do corpo da função para deixar um valor de retorno explícito.

Chamar uma função é igual a muitas outras linguagens:

squareit(3)
#> [1] 9

Instruções

Neste exercício, você vai escrever um pouco de código para ajudar a preparar uma lasanha incrível do seu livro de receitas favorito.

Você tem quatro tarefas, todas relacionadas ao tempo gasto no preparo da lasanha.

1. Defina o tempo esperado no forno, em minutos

Defina a função expected_minutes_in_oven(), que não recebe nenhum parâmetro e retorna quantos minutos a lasanha deve ficar no forno. De acordo com o livro de receitas, o tempo esperado no forno é de 60 minutos.

> expected_minutes_in_oven()
[1] 60

2. Calcule o tempo restante no forno, em minutos

Defina a função remaining_time_in_minutes, que recebe como parâmetro os minutos que a lasanha já passou no forno e retorna quantos minutos a lasanha ainda precisa permanecer no forno, com base no tempo esperado no forno da tarefa anterior.

> remaining_time_in_minutes(50)
[1] 10

3. Calcule o tempo de preparo, em minutos

Defina a função prep_time_in_minutes(), que recebe como parâmetro o número de camadas que você adicionou à lasanha e retorna quantos minutos você gastou preparando a lasanha, considerando que cada camada leva 2 minutos para ser preparada.

> prep_time_in_minutes(2)
[1] 4

4. Calcule o tempo decorrido, em minutos

Defina a função elapsed_time_in_minutes, que recebe dois argumentos: o primeiro argumento é o número de camadas que você adicionou à lasanha, e o segundo parâmetro é o número de minutos que a lasanha já passou no forno. A função deve retornar quantos minutos, no total, você trabalhou preparando a lasanha, que é a soma do tempo de preparo, em minutos, com o tempo, em minutos, que a lasanha já passou no forno no momento.

> elapsed_time_in_minutes(3, 20)
[1] 26
Editar via GitHub O link abre em uma nova janela ou aba
R Exercism

Tudo pronto para começar Lasagna?

Crie sua conta no Exercism para aprender e dominar R com 21 conceitos111 exercícios e mentoria humana de verdade, tudo de graça.