# remotes::install_github("curso-r/CursoRTarefas") library(CursoRTarefas) CursoRTarefas::adicionar_chunk_setup()
CursoRTarefas::adicionar_codigo_pre_tutorial(curso = "Introdução à programação com R", url = "https://loja.curso-r.com/introduc-o-a-programac-o-com-r.html")
Quando programamos o despertador do nosso celular para acordar de manhã, estamos, internamente, programando um laço (for) para que uma mesma tarefa (despertar) seja executada várias vezes.
Vamos imaginar que todos os dias o nosso celular verifica se ele precisa despertar às 8 horas da manhã. Se quisermos acordar todos os dias nesse horário, isso poderia ser representado, no R, pelo código abaixo.
dias_da_semana <- c("seg", "ter", "qua", "qui", "sex", "sab", "dom") for (dia in dias_da_semana) { mensagem <- paste0("8 horas da manhã de ", dia, "! Hora de acordar!") print(mensagem) }
1) Complete o código abaixo para fazer o nosso despertador iterar (caminhar) no dia do mês e não mais no dia da semana. Pode considerar que todo mês tem 30 dias.
dias_do_mes <- ____ for (dia in ____) { mensagem <- paste0("8 horas da manhã do dia ", ___) print(mensagem) }
dias_do_mes <- ___ for (dia in dias_do_mes) { mensagem <- paste0("8 horas da manhã do dia ", dia) print(mensagem) }
dias_do_mes <- 1:30 for (dia in dias_do_mes) { mensagem <- paste0("8 horas da manhã do dia ", dia) print(mensagem) }
grade_this({ if (identical(.result, .solution)) { pass("Correto!") } fail() })
2) Queremos escrever um código que apresente uma mensagem diferente conforme o dia da semana. Por exemplo, se for segunda-feira aé quinta-feira, esperamos que o código escreva a mensagem "Bom trabalho!"; se for sexta-feira, escreva "falta pouco para o final de semana!", e se for sábado ou domingo que escreva "Bom descanso!".
Antes de escrever o código que faz esse controle de fluxo, vamos escrever um gerador de dias da semana (para testar se a mensagem está saindo como esperado):
# criar um vetor com os dias da semana dias_da_semana <- c("segunda", "terça", "quarta", "quinta", "sexta", "sabado", "domingo") # usando esse vetor, vamos sortear um dia da semana usando a função sample(), # e salvar o resultado no vetor 'dia_da_semana': dia_da_semana <- sample(dias_da_semana, 1) # Vamos ver qual dia da semana foi sorteado? # experimente executar esse código algumas vezes para ver como teremos # resultados diferentes para os dias da semana: dia_da_semana
Agora que conseguimos gerar o dia da semana para testar, podemos construir a estrutura de repetição com if
, else if
e else
. Complete os espaços abaixo para que o código tenha o resultado esperado:
# Gerando um dia da semana para testar dias_da_semana <- c("segunda", "terça", "quarta", "quinta", "sexta", "sabado", "domingo") dia_da_semana <- sample(dias_da_semana, 1) dia_da_semana # Estrutura de repetição if (_________) { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom descanso!") print(mensagem) } else if (________) { mensagem <- paste0("Hoje é ", dia_da_semana, ", falta pouco para o final de semana!") print(mensagem) } else { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom trabalho!") print(mensagem) }
dias_da_semana <- c("segunda", "terça", "quarta", "quinta", "sexta", "sabado", "domingo") dia_da_semana <- sample(dias_da_semana, 1) dia_da_semana # Estrutura de repetição if (_________________) { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom descanso!") print(mensagem) } else if (dia_da_semana == "sexta") { mensagem <- paste0("Hoje é ", dia_da_semana, ", falta pouco para o final de semana!") print(mensagem) } else { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom trabalho!") print(mensagem) }
# Gerando um dia da semana para testar dias_da_semana <- c("segunda", "terça", "quarta", "quinta", "sexta", "sabado", "domingo") dia_da_semana <- sample(dias_da_semana, 1) dia_da_semana # Estrutura de repetição if (dia_da_semana %in% c("sabado", "domingo")) { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom descanso!") print(mensagem) } else if (dia_da_semana == "sexta") { mensagem <- paste0("Hoje é ", dia_da_semana, ", falta pouco para o final de semana!") print(mensagem) } else { mensagem <- paste0("Hoje é ", dia_da_semana, "! Bom trabalho!") print(mensagem) }
grade_this({ if (identical(.result, .solution)) { pass("Correto!") } fail() })
3) Complete o código abaixo para fazer o nosso despertador não "tocar" no fim de semana.
dias_da_semana <- c("seg", "ter", "qua", "qui", "sex", "sab", "dom") for (dia in dias_da_semana) { if (__________) { mensagem <- paste0("8 horas da manhã de ", dia, "! Hora de acordar!") print(mensagem) } }
dias_da_semana <- c("seg", "ter", "qua", "qui", "sex", "sab", "dom") for (dia in dias_da_semana) { if (!___ %in% c(___, ___)) { mensagem <- paste0("8 horas da manhã de ", dia, "! Hora de acordar!") print(mensagem) } }
dias_da_semana <- c("seg", "ter", "qua", "qui", "sex", "sab", "dom") for (dia in dias_da_semana) { if (!dia %in% c(___, ___)) { mensagem <- paste0("8 horas da manhã de ", dia, "! Hora de acordar!") print(mensagem) } }
dias_da_semana <- c("seg", "ter", "qua", "qui", "sex", "sab", "dom") for (dia in dias_da_semana) { if (!dia %in% c("sab", "dom")) { mensagem <- paste0("8 horas da manhã de ", dia, "! Hora de acordar!") print(mensagem) } }
grade_this({ if (identical(.result, .solution)) { pass("Correto!") } fail() })
Se você completou a tarefa e quer submeter, clique no botão abaixo ('Generate') para gerar o seu código hash e envie usando o formulário a seguir:
learnrhash::encoder_logic()
learnrhash::encoder_ui(ui_before = " ", ui_after = " ")
CursoRTarefas::adicionar_codigo_pos_tutorial(url_form = params$url_form)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.