Lista de Exercícios

Agora, vou começar a fazer meu documento de recuperação .

Exercício 01

Dadas 3 variáveis com valores numéricos, apresentar o resultado da soma das combinações dois a dois destes três números. Por exemplo, variáveis A, B e C, mostrar A + B, A + C, B + C.

A <- 2
B <- 4
C <- 3

A + B
## [1] 6
B + C
## [1] 7
A + C
## [1] 5

Exercício 2

Definir duas variáveis A e B e trocar seus valores. Ex: Entrada: A=6 e B=8 Saída: A=8 e B=6.

A<- 8
B<- 6

Aux <- B 

B<- A 
A<- Aux

cat("A =", A, "\n")
## A = 6
cat("B = ", B)
## B =  8

Exercício 3

Converter uma temperatura de Fahrenheit para Centígrados. C = (F - 32) * ( 5 / 9 ).

F<-98.6
C<- (F-32)*(5/9)

cat("Temperatura em Celsius", C,"?C\n")
## Temperatura em Celsius 37 ?C

Exercício 4

Escrever um algoritmo que defina um número X e calcule:

X <-9
res_a <-X^3-4
res_b <-X %% 3
res_c <-X^(X / 3) + 2
res_d <-sqrt(X^2)

cat("a)", res_a, "\nb)", res_c, "\nd)", res_d,"\n")
## a) 725 
## b) 731 
## d) 9

Exercício 5

Crie um vetor numérico com os números de 1 a 10 e armazene-o em uma variável chamada “numeros”. Em seguida, imprima o vetor.

numeros <- c(1:10)

print(numeros)
##  [1]  1  2  3  4  5  6  7  8  9 10

Exercício 6

Crie um vetor de caracteres com os nomes dos dias da semana e armazene-o em uma variável chamada “dias”. Em seguida, imprima o vetor.

dias <- c("Domingo", "Segunda", "Ter?a", "Quarta", "Quinta", "Sexta", "S?bado")

print(dias)
## [1] "Domingo" "Segunda" "Ter?a"   "Quarta"  "Quinta"  "Sexta"   "S?bado"

Exercício 7

Crie uma matriz 3x3 com os números de 1 a 9 e armazene-a em uma variável chamada “matriz”. Em seguida, imprima a matriz.

matriz <- matrix(1:9, nrow = 3, ncol = 3, byrow = TRUE)

print(matriz)
##      [,1] [,2] [,3]
## [1,]    1    2    3
## [2,]    4    5    6
## [3,]    7    8    9

Exercício 8

Crie um data-frame com as informações de 3 pessoas: nome (caracter), idade (numérico) e cidade natal (caracter). Armazene o data-frame em uma variável chamada “pessoas” e imprimao.

df<-data.frame(nome=c("Ana","Bruno","Guilherme"),idade=c(55,15,25))
df
##        nome idade
## 1       Ana    55
## 2     Bruno    15
## 3 Guilherme    25

Exercício 9

Limpe as variáveis que estão no sistema e em seguida crie 3 variáveis, x, y e z e atribua valores numéricos para elas. Em seguida realize comparações entre elas (utilize TODOS os operadores de comparação (<. <. >=, <=, ==, !=).

x<-10
y<-20
z<-10

cat("x < y :", x < y, "\n")
## x < y : TRUE
cat("x > y :", x > y, "\n")
## x > y : FALSE
cat("x >= z:", x >= z, "\n")
## x >= z: TRUE
cat("x <= y:", x <= y, "\n")
## x <= y: TRUE
cat("x == z:", x == z, "\n")
## x == z: TRUE
cat("x != y:", x != y, "\n")
## x != y: TRUE

Exercício 10

Limpe as variáveis que estão no sistema e em seguida crie 3 variáveis, “rua”, “numero” e “bairro” e atribua valores (texto) para elas. Em seguida concatene essas variáveis em uma terceira chamada “endereco”.

rm(list = ls())
rua <- "Av. Rio Branco"
numero <- "156"
bairro <- "Centro"
endereco <- paste(rua, numero, bairro, sep = ", ")

print(endereco)
## [1] "Av. Rio Branco, 156, Centro"

Exercício 11

Elabore um algoritmo que:

  1. Crie um vetor com uma sequência de 10 números.
vetor<-c(1:10)
  1. Faça um loop para calcular a soma dos números do vetor.
seq(from = 1, to = 10, by =2)
## [1] 1 3 5 7 9
seq(from = 5, to = -5, by =-2)
## [1]  5  3  1 -1 -3 -5
seq(from = 1, to = 3, by =0.2)
##  [1] 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0
vetor[1:10]
##  [1]  1  2  3  4  5  6  7  8  9 10

Exercício 12

A partir do exercício anterior, faça a média dos valores contidos no vetor.

vetor <- c(1:10)
soma <- 0
for (i in 1:length(vetor)) {
  soma <- soma + vetor[i]
}
media <- soma / length(vetor)

cat("M?dia dos n?meros =", media, "\n")
## M?dia dos n?meros = 5.5

Exercício 13

Crie duas variáveis, x e y. Compare se x é maior que y. Se for, imprima “x é maior que y”, se não for, imprima “y é maior que x”.

  1. A sintaxe do comando de comparação é: if (x > y) {comandos…} else {comandos}
x <- 15
y <- 10
if (x > y) {
  print("x ? maior que y")
} 
## [1] "x ? maior que y"
  1. O comando print(“texto ou variável”) imprime a resposta na tela.
 {
  print("y ? maior que x")
}
## [1] "y ? maior que x"

Exercício 14

Repita o exercício “13)” realizando os seguintes ajustes:

  1. Substitua o sinal de maior (“>”) pelo de menor ou igual (“<=”) e ajuste dos dizeres da resposta.
x <- 10
y <- 15
if (x <= y) {
  print("x ? menor ou igual a y")
} else {
  print("x ? maior que y")
}
## [1] "x ? menor ou igual a y"

Exercício 15

A partir do exercício “11)”, faça a soma somente dos números pares.

  1. Utilize o comando “%%” para identificar o resto da divisão. Ex: “5%%2”, cinco dividido por dois terá como resto “1”. Ou seja, o resultado dessa operação será “1”.

  2. Utilize o comando de decisão “if” para saber se o número é par (o resto é zero) ou ímpar (o resto é 1).

vetor <- c(1:10)
soma_pares <- 0
for (i in 1:length(vetor)) {
  if (vetor[i] %% 2 == 0) {
    soma_pares <- soma_pares + vetor[i]
  }
}
  1. Crie uma variável auxiliara para guardar o resultado da soma.
cat("Soma dos n?meros pares =", soma_pares, "\n")
## Soma dos n?meros pares = 30

Exercício 16

Faça um algoritmo que calcule e imprima o fatorial de um número inteiro.

num <- 5
fatorial <- 1
if (num < 0) {
  cat("N?o existe fatorial de n?mero negativo.\n")
} else if (num == 0) {
  cat("Fatorial de 0 = 1\n")
} else {
  for (i in 1:num) {
    fatorial <- fatorial * i
  }
  cat("Fatorial de", num, "=", fatorial, "\n")
} 
## Fatorial de 5 = 120

Exercício 17

Crie uma matriz 4x4.

  1. Uma matriz no R comporta somente um tipo de dado (número, texto ou boleano).

  2. O comando para criar a matriz é “x <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE)”

x <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE)

print(x)
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    1    1    1    1
## [3,]    1    1    1    1
## [4,]    1    1    1    1

Exercício 18

Agora, crie uma matriz com a sequência de 1 a 16.

x <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)

print(x)
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## [4,]   13   14   15   16

Exercício 19

Transforme essa matriz em um data.frame

  1. Um data.frame é uma estrutura de dados similar a matriz que pode conter dados diferentes em suas variáveis.

  2. Lembre-se que também chamamos as colunas de variáveis e as linhas de registros.

  3. Uma variável (coluna) não pode conter dados diferentes. Ou todas as linhas dessa variável são números, ou todas são texto, ou ainda, boleanos.

  4. Utilize o comando “df <- as.data.frame(x)”

df <- as.data.frame(x)

print(df)
##   V1 V2 V3 V4
## 1  1  2  3  4
## 2  5  6  7  8
## 3  9 10 11 12
## 4 13 14 15 16

Exercício 20

Utilizando os comandos de repetição e decisão, calcule:

x <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)

soma_col1 <- 0

for (i in 1:nrow(x)) {
  soma_col1 <- soma_col1 + x[i, 1]
}

media_col1 <- soma_col1 / nrow(x)
print(media_col1)
## [1] 7
  1. A média de uma coluna da matriz do exercício “18)”.
cat("a) M?dia da coluna 1:", soma_col1 / nrow(x), "\n")
## a) M?dia da coluna 1: 7
  1. A média de todas as colunas da matriz do exercício “18)”.
cat("b) M?dia de cada coluna:\n")
## b) M?dia de cada coluna:
for (j in 1:ncol(x)) {
  soma_col <- 0
  for (i in 1:nrow(x)) {
    soma_col <- soma_col + x[i, j]
  }
  cat("   Coluna", j, ":", soma_col / nrow(x), "\n")
}
##    Coluna 1 : 7 
##    Coluna 2 : 8 
##    Coluna 3 : 9 
##    Coluna 4 : 10
  1. A média de todas as linhas da matriz do exercício “18)”.
cat("c) M?dia de cada linha:\n")
## c) M?dia de cada linha:
for (i in 1:nrow(x)) {
  soma_linha <- 0
  for (j in 1:ncol(x)) {
    soma_linha <- soma_linha + x[i, j]
  }
  cat("   Linha", i, ":", soma_linha / ncol(x), "\n")
}
##    Linha 1 : 2.5 
##    Linha 2 : 6.5 
##    Linha 3 : 10.5 
##    Linha 4 : 14.5
  1. média dos números pares de todas as colunas da matriz do exercício “18)”.
soma_pares <- 0
qtd_pares <- 0
for (i in 1:nrow(x)) {
  for (j in 1:ncol(x)) {
    if (x[i, j] %% 2 == 0) {
      soma_pares <- soma_pares + x[i, j]
      qtd_pares <- qtd_pares + 1
    }
  }
}
cat("d) M?dia dos n?meros pares de todas as colunas:", soma_pares / qtd_pares, "\n")
## d) M?dia dos n?meros pares de todas as colunas: 9
  1. A média dos números ímpares de todas as linhas da matriz do exercício “18)”.
soma_impares <- 0
qtd_impares <- 0
for (i in 1:nrow(x)) {
  for (j in 1:ncol(x)) {
    if (x[i, j] %% 2 != 0) {
      soma_impares <- soma_impares + x[i, j]
      qtd_impares <- qtd_impares + 1
    }
  }
}
cat("e) M?dia dos n?meros ?mpares de todas as linhas:", soma_impares / qtd_impares, "\n")
## e) M?dia dos n?meros ?mpares de todas as linhas: 8
  1. A soma da diagonal principal da matriz.
soma_diag_principal <- 0
for (i in 1:nrow(x)) {
  soma_diag_principal <- soma_diag_principal + x[i, i]
}
cat("f) Soma da diagonal principal:", soma_diag_principal, "\n")
## f) Soma da diagonal principal: 34
  1. A soma da diagonal secundária da matriz (desafio).
soma_diag_secundaria <- 0
n <- nrow(x)
for (i in 1:n) {
  soma_diag_secundaria <- soma_diag_secundaria + x[i, n - i + 1]
}
cat("g) Soma da diagonal secund?ria:", soma_diag_secundaria, "\n")
## g) Soma da diagonal secund?ria: 34

Exercício 21

Repita o exercício “20)” com os dados do data.frame do exercício “18)”.

df <- as.data.frame(matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE))
soma_col1 <- 0
for (i in 1:nrow(df)) {
  soma_col1 <- soma_col1 + df[i, 1]
}
cat("a) M?dia da coluna 1 (df):", soma_col1 / nrow(df), "\n")
## a) M?dia da coluna 1 (df): 7
cat("b) M?dia de cada coluna (df):\n")
## b) M?dia de cada coluna (df):
for (j in 1:ncol(df)) {
  soma_col <- 0
  for (i in 1:nrow(df)) {
    soma_col <- soma_col + df[i, j]
  }
  cat("   Coluna", j, ":", soma_col / nrow(df), "\n")
}
##    Coluna 1 : 7 
##    Coluna 2 : 8 
##    Coluna 3 : 9 
##    Coluna 4 : 10
cat("c) M?dia de cada linha (df):\n")
## c) M?dia de cada linha (df):
for (i in 1:nrow(df)) {
  soma_linha <- 0
  for (j in 1:ncol(df)) {
    soma_linha <- soma_linha + df[i, j]
  }
  cat("   Linha", i, ":", soma_linha / ncol(df), "\n")
}
##    Linha 1 : 2.5 
##    Linha 2 : 6.5 
##    Linha 3 : 10.5 
##    Linha 4 : 14.5
soma_pares <- 0
qtd_pares <- 0
for (i in 1:nrow(df)) {
  for (j in 1:ncol(df)) {
    if (df[i, j] %% 2 == 0) {
      soma_pares <- soma_pares + df[i, j]
      qtd_pares <- qtd_pares + 1
    }
  }
}
cat("d) M?dia dos n?meros pares (df):", soma_pares / qtd_pares, "\n")
## d) M?dia dos n?meros pares (df): 9
soma_impares <- 0
qtd_impares <- 0
for (i in 1:nrow(df)) {
  for (j in 1:ncol(df)) {
    if (df[i, j] %% 2 != 0) {
      soma_impares <- soma_impares + df[i, j]
      qtd_impares <- qtd_impares + 1
    }
  }
}
cat("e) M?dia dos n?meros ?mpares (df):", soma_impares / qtd_impares, "\n")
## e) M?dia dos n?meros ?mpares (df): 8
soma_diag_principal <- 0
for (i in 1:nrow(df)) {
  soma_diag_principal <- soma_diag_principal + df[i, i]
}
cat("f) Soma da diagonal principal (df):", soma_diag_principal, "\n")
## f) Soma da diagonal principal (df): 34
soma_diag_secundaria <- 0
n <- nrow(df)
for (i in 1:n) {
  soma_diag_secundaria <- soma_diag_secundaria + df[i, n - i + 1]
}
cat("g) Soma da diagonal secund?ria (df):", soma_diag_secundaria, "\n")
## g) Soma da diagonal secund?ria (df): 34

Exercício 22

Crie um loop for que imprime os números de 1 a 10.

for (i in 1:10) {
  print(i)
}
## [1] 1
## [1] 2
## [1] 3
## [1] 4
## [1] 5
## [1] 6
## [1] 7
## [1] 8
## [1] 9
## [1] 10

Exercício 23

Crie um vetor numérico com os números de 1 a 100. Em seguida, crie um novo vetor que contenha apenas os números pares do vetor original.

vetor_100 <- c(1:100)
vetor_pares <- c()

for (i in 1:length(vetor_100)) {
  if (vetor_100[i] %% 2 == 0) {
    vetor_pares <- c(vetor_pares, vetor_100[i])
  }
}
print(vetor_pares)
##  [1]   2   4   6   8  10  12  14  16  18  20  22  24  26  28  30  32  34  36  38
## [20]  40  42  44  46  48  50  52  54  56  58  60  62  64  66  68  70  72  74  76
## [39]  78  80  82  84  86  88  90  92  94  96  98 100

Exercício 24

Crie uma função chamada “maior_elemento” que recebe um vetor numérico como argumento e retorna o maior elemento do vetor. Em seguida, teste a função com o vetor c(10, 5, 8, 2, 20, 15).

maior_elemento <- function(vetor) {
  maior <- vetor[1]
  for (i in 2:length(vetor)) {
    if (vetor[i] > maior) {
      maior <- vetor[i]
    }
  }
  return(maior)
}

Teste da função.

teste_vetor <- c(10, 5, 8, 2, 20, 15)
resultado <- maior_elemento(teste_vetor)
cat("O maior elemento do vetor ?:", resultado, "\n")
## O maior elemento do vetor ?: 20