3.5 Numérica com dados gerados
Agora, utilizaremos o processo de geração de dados com uma resposta do tipo numérica. Na figura abaixo, são mostradas 4 versões da mesma questão gerada a partir da escolha aleatória dos valores:
Fonte da figura: O autor
E o texto em RMarkdown:
```{r dgp, include = FALSE}
library(exams)
library(magrittr)
library(knitr)
options(scipen = 999) #prevent scientific notation
## RANDOM DATA
a <- 30:80 %>% sample(1) #numerador
b <- 2:9 %>% sample(1) #denominador
## SOLUTION
x = a / b %>% round(2)
```
Question
========
Qual é o resultado da divisão de `r a` por `r b`?
$\frac{`r a`}{`r b`} = ?$
Solution
========
A divisão de `r a` por `r b` é igual a `r x`
$\frac{`r a`}{`r b`} = `r x`$
Meta-information
================
exname: divisao
extype: num
exsolution: `r x`
extol: `r x * 0.10`
A partir de ## RANDOM DATA
, é criado um objeto a
(numerador) que contém um número aleatoriamente escolhido entre 30 e 80. O objeto b
(denominador) contém um número aleatoriamente escolhido entre 2 e 9.
Em ## SOLUTION
, é efetuada a operação de divisão: x = a / b
e o resultado arredondado para a segunda casa decimal round(2)
.
Na marcação Question, após o cabeçalho da questão, temos um trecho de código para escrever a equação: $\frac{`r a`}{`r b`} = ?$
, cujo resultado é \(\frac{30}{5} = ?\). Aqui, usamos o código em Latex para escrever fórmulas matemáticas, que é muito versátil para isso. O código em Latex deve ser colocado entre símbolos ´$´ (cifrão).
Partindo para o fim do código, em exsolution
usamos o código `r x`
para descrever a solução, e em extol
definimos uma tolerância de 10% para o intervalo da resposta.