Exercícios

Sessão 1: Operadores e operações básicas

1- Em um experimento de valor de cultivo e uso (VCU) na cultura do milho, as parcelas são constituídas de duas linhas de quatro metros, espaçadas 0,60 m, totalizando 6 plantas por linha. As alturas das plantas foram respectivamente (em metros): 1,45; 1,73; 1,98; 2,10; 2,03; 1,65; 2,15; 1,63; 1,53; 1,98; 2,05; 1,52.

a)Crie um vetor altura com os valores acima

b)Calcule a altura média

c)Calcule a variância das alturas

Respostas:

Para visualizar a resposta basta mover o cursor em cima do “Alerta de spoiler!”

b)1.816667

c)0.06540606

2- Na disciplina de Genética foram avaliados altura e peso dos 10 alunos, sendo 5 meninas e 5 meninos. Veja a tabela abaixo com os respectivos valores:

Nome Peso (kg) Altura (m)
Maria José 72 1,65
Mariana 57 1,68
Fernanda 49 1,53
Jéssica 62 1,7
Carolina 57 1,52
Paulo 90 1,82
Marcos 53 1,63
João Paulo 76 1,78
Geraldo 63 1,72
Pedro 92 1,98

a)Calcule o IMC de cada aluno, segundo a fórmula: \(IMC = \frac{peso}{altura^2}\)

b)Calcule o IMC médio da sala

c)Calcule a variância do IMC

d)Calcule o desvio padrão do IMC

Respostas:

a)26.44628 20.19558 20.93212 21.45329 24.67105 27.17063 19.94806 23.98687 21.29529 23.46699

b)22.95662

c)6.665578

d)2.581778

3 - Resolva a equação: \(2x^2 + 8x + 6 = 0\), utilizando a fórmula de Bhaskara. Lembrando que: \(x = \frac{-b\pm\sqrt{\Delta}}{2a}\); \(\Delta=b^2 - 4ac\)

Resposta:

-3 -1

Sessão 2: Classe de objetos

1 - Carregue o conjunto de dados chamado “mtcars” (attach(mtcars)).

a)Verifique a classe do objeto “mtcars”

b)Verifique a classe das colunas “hp” e “cyl”

c)Verifique a classe do nome dos carros. (rownames)

Respostas:

a)“data.frame”"

b)“numeric” “numeric”

c)“character”

2 - Utilizando o mesmo conjunto de dados do exercício anterior, calcule:

a)A média da coluna “hp”.

b)Modifique a classe da coluna “hp” para fator e calcule a média novamente.

c)Compare os resultados obtidos nas letras a e b, e relate as diferenças entre eles.

Respostas:

a)146.6875

b)NA e um warning

3 - Crie um vetor de uma amostra da distribuição Normal com comprimento 3000, média 20 e desvio padrão 5. Antes de criar o vetor, utilize set.seed(123456).

a)Qual o somatório das observações no vetor que são maiores que 30?

b)E o somatório das observações menores que a média? OBS: Calcule a média do conjunto de valores que você acabou de gerar.

c)Excluir a menor observação do vetor.

Respostas:

a)2610.638

b)23976.86

c)apenas o “head”: 24.16867 18.61976 18.22499 20.43744 31.26128 24.17230

c)O valor mínimo: 1.170791

4 - Em algumas áreas experimentais de soja foram identificadas a presença de alguns nematóides.

Área Nematóide Produtividade da área (kg/ha)
A1 Meloidogyne incognita 2700
A2 Meloidogyne incognita 2500
A3 Heterodera glycines 2000
A4 NA 3200
A5 Pratylenchus brachyurus 2900
A6 NA 3500
A7 Meloidogyne javanica 2300
A8 NA 3800

a)Crie um data.frame com as informações da tabela acima

b)Crie uma coluna contendo o munícipio que cada área é localizado (Piracicaba-SP, Rio Verde-GO, Londrina-PR, Barreiras-BA, Uberaba-MG, Rondonopólis-MT, Vilhena-RO, Gurupi-TO)

c)Quais os tipos de nematóides que afetam as áreas avaliadas?

d)Qual nematóide teve maior impacto na produtividade? E o menor impacto?

e)A média de produtividade das áreas afetadas por Meloidogyne incognita é maior que a média das áreas afetadas por todos os outros nematóides?

Respostas:

c)“Heterodera glycines”, “Meloidogyne incognita”, “Meloidogyne javanica”, Pratylenchus brachyurus"

d)Maior impacto: Heterodera glycines
Menor impacto: Pratylenchus brachyurus

e)Sim. A média de produtividade das áreas de M. incognita (2.6 kg/ha) é maior que a média das áreas afetadas por outros (2.4 kg/ha)

Sessão 3: Estruturas condicionais e de repetição

1 - Hora da diversão! Esperamos que vocês tenham gostado das estruturas condicionais. Acabamos não perguntando nos questionários uma questão que será bem importante aqui. Você assiste o BBB? Já parou para pensar que a música tema do programa é basicamente uma aula de condicional (além de ser grudenta, claro)? Logo, a ideia é passar um verso que contenha se e receber o próximo verso. Caso o verso não exista na música ou não seja um dos casos condicionais, solte a mensagem “Esse verso nao existe na música”. Dica: Para facilitar, use todas as frases com letras minúsculas e sem acentos.

2 - Crie um objeto “a” contendo uma sequência de 1 a 5. Usando qualquer estrutura de repetição, some o número 8 a cada um dos elementos de “a”, até que a soma de todos os elementos seja igual ou superior a 10000.

Respostas:

2001 2002 2003 2004 2005

3 - Repita a frase “x tigre(s) triste(s) comeram x pratos de trigo”, em que x seja um número inteiro da sua escolha.

Respostas:

Se a escolha do valor foi um: 1 tigre triste comeu 1 prato de trigo.

Se a escolha do valor foi dois: 1 tigre triste comeu 1 prato de trigo. 2 tigres tristes comeram 2 pratos de trigo.

4 - Hora de descontrair! Você conhece a música Hey Jude? Repita quantas vezes você quiser o verso:

"Na, na, na, na-na-na na

Na-na-na na, hey Jude"

5 - Que tal mais uma música popular? O exercício agora vai ser com essa música que quase todos devem conhecer! Você irá fazer o seguinte:

  • 1 - Defina o número da prole de patos

  • 2 - Imprima o número da prole e a frase “patinhos foram passear”

  • 3 - Adicione as seguintes linhas:

    • Além das montanhas
    • Para brincar
    • A mamãe gritou
    • Repita o número de quacks (Isso difere da música, mas fica mais legal)
  • 4 - Diminua um patinho da prole, caso a prole seja menor do que um

  • 5 - Imprima os versos

    • Mas só numero da prole - 1 patinhos
    • Voltaram de lá
  • 6 - Imprima linha vazia

  • 7 - Retorne no passo 2 se a prole for maior que 1

  • 8 - Se restar um patinho, coloque a última estrofe:

    "1 patinho foi passear

    Além das montanhas

    Para brincar

    A mamãe gritou

    Quack

    Mas nenhum patinho

    Voltou de lá"

  • 9 - Fica a seu critério colocar a última estrofe, mas de um jeito legal hein!

prole = 3
prole_aux = prole

while(prole != 0){
  if(prole > 1){
    # Imprima o primeiro verso usando o numero de patos
     print(paste(prole, " patinhos foram passear", sep = " "))
    
    # Imprima os três versos seguintes
     print("Além das montanhas")
     print("Para brincar")
     print("A mamãe gritou")
     
    # Repita o numero de Quacks
     print(paste(rep("Quack", prole, sep=" ")))
     
    # Reduza a prole em 1
     prole = prole -1
     

    
     if(prole > 1){
       # Penultimo verso da estrofe
       print(paste("Mas só", prole, "patinhos", sep = " "))
       # Ultimo verso
       print("Voltaram de lá")
       print(" ")
     } else {
       # Penultimo verso da estrofe
       print(paste("Mas só", prole, "patinho", sep = " "))
       # Ultimo verso
       print("Voltou de lá")
       print(" ")
     }
  } else {
    # Imprima os três versos seguintes
    print("1 patinho foi passear")
    print("Além das montanhas")
    print("Para brincar")
    print("A mamãe gritou")
    print("Quack")
    print("Mas nenhum patinho")
    print("Voltou de lá")
    print(" ")
    prole = prole - 1
    print("A mamãe patinha")
    print("Foi procurar")
    print("Além das montanhas")
    print("Na beira do mar")
    print("A mamãe gritou")
    print(paste(rep("Quack", prole_aux), sep=" "))
    print(paste("E os", prole_aux, "patinhos", sep=" "))
    print("Voltaram de lá")
  }
    
}

6 - Utilize a expressão abaixo para gerar médias de produtividade, considerando 50 genótipos de soja, de forma aleatória:

set.seed(123456)
produtividade = rnorm(50, mean = 3500.00, sd = 800)

Suponhamos que a média nacional de produtividade de soja seja de 3500.00 kg/ha. Utilizando estruturas condicionais, verifique se os genótipos apresentam valores acima ou abaixo da produtividade média nacional, retornando as frases “acima da média” ou “abaixo da média”, respectivamente.

Respostas:

[1] “acima da média” “abaixo da média” “abaixo da média” “acima da média” “acima da média” “acima da média” [7] “acima da média” “acima da média” “acima da média” “abaixo da média” “abaixo da média” “abaixo da média” [13] “abaixo da média” “acima da média” “acima da média” “acima da média” “abaixo da média” “acima da média” [19] “acima da média” “acima da média” “abaixo da média” “acima da média” “acima da média” “acima da média” [25] “acima da média” “abaixo da média” “acima da média” “acima da média” “acima da média” “abaixo da média” [31] “abaixo da média” “acima da média” “abaixo da média” “abaixo da média” “abaixo da média” “abaixo da média” [37] “acima da média” “acima da média” “acima da média” “abaixo da média” “abaixo da média” “acima da média” [43] “acima da média” “abaixo da média” “acima da média” “abaixo da média” “abaixo da média” “abaixo da média” [49] “acima da média” “abaixo da média”

Sessão 4: Funções

Utilize o conjunto de dados disponível abaixo para gerar médias de produtividade, considerando 25 genótipos de soja avaliados em 15 ambientes, de forma aleatória:

set.seed(123456)
dados = data.frame(Genotypes = rep(seq(1,25,1), 15), Environments = rep(x = seq(1:15), each = 25), yield = rnorm(375, 3000:3500, 800))

Elabore uma função para calcular as médias e o coeficiente de variação (\(CV = \frac{\mu}{\sigma}*100\)) em cada ambiente, e também avaliar a precisão experimental (até 20% = alta; entre 20 e 30% = média; acima de 30% = baixa). A função deve retornar os resultados contendo a identificação de cada ambiente, as médias, os CV’s e as precisões.

Pode ser que a essa altura do curso você ja tenha que ter trabalhado com diversas frustrações: o código não roda, precisou de várias tentativas até dar certo. Talvez você se sinta caindo naquele gráfico de andamento do aprendizado que mostramos na apresentação teórica. Por isso, colocamos aqui alguns vídeos motivacionais. São três palestras TED excelentes (como costuma ser os TEDs).

Esses dois tem legenda em portugues. É só ajustar as configurações:

  • Teach girls bravery, not perfection | Reshma Saujani Especial para mulheres. Fala como aprender a programar nos educa a lidarmos melhor com nossas frustrações e nos desvia da cultura imposta de perfeição.

  • Mitch Resnick: Let’s teach kids to code O palestrante é um dos desenvolvedores do programa Scratch, que consiste num jogo que ensina lógica de programação. O palestrante destaca a importância de aprender alguma linguagem de programação dos dias de hoje.

Esse só em inglês:

Extra: Família dos apply

1 - Utilize a função abaixo para gerar médias de produtividade, considerando 25 genótipos de soja avaliados em 15 ambientes, de forma aleatória:

set.seed(123456)
dados = data.frame(Genotypes = rep(seq(1,25,1), 15), Environments = rep(x = seq(1:15), each = 25), yield = rnorm(375, 3000:3500, 800))

Utilizando funções da família “apply”, obtenha as médias gerais de cada genótipo e também de cada ambiente.