Lista de exercício

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

Exercício 1

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 <- 77

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

cat(F, "graus Fahrenheit equivalem a", C, "graus Centígrados.\n")
## 77 graus Fahrenheit equivalem a 25 graus Centígrados.

Exercício 4

Escrever um algoritmo que defina um número X e calcule: a) X3 - 4 b) O resto da divisão de X / 3 c) X(x/3) + 2 d) Raiz quadrada de X2 d) Raiz quadrada de X2

X <- 6

# a) X^3 - 4
item_a <- X^3 - 4

# b) Resto da divisão de X por 3 (operador %%)
item_b <- X %% 3

# c) X * (X / 3) + 2
item_c <- X * (X / 3) + 2

# d) Raiz quadrada de X^2
item_d <- sqrt(X^2)

# Exibindo os resultados formatados
cat("Para X =", X, "\n")
## Para X = 6
cat("a) X^3 - 4 =", item_a, "\n")
## a) X^3 - 4 = 212
cat("b) Resto de X / 3 =", item_b, "\n")
## b) Resto de X / 3 = 0
cat("c) X * (X / 3) + 2 =", item_c, "\n")
## c) X * (X / 3) + 2 = 14
cat("d) Raiz quadrada de X^2 =", item_d, "\n")
## d) Raiz quadrada de X^2 = 6

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 <- 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("Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado", "Domingo")
print(dias)
## [1] "Segunda" "Terça"   "Quarta"  "Quinta"  "Sexta"   "Sábado"  "Domingo"

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 imprima-o.

pessoas <- data.frame(
  nome = c("Thiago", "Rafael", "Beth"),
  idade = c(22, 25, 20),
  cidade_natal = c("Rio de Janeiro", "Nova Iguaçu", "Niterói")
)
print(pessoas)
##     nome idade   cidade_natal
## 1 Thiago    22 Rio de Janeiro
## 2 Rafael    25    Nova Iguaçu
## 3   Beth    20        Niterói

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: <, >, <=, >=, ==, !=)

rm(list = ls())
x <- 10
y <- 20
z <- 10

print(x < y)
## [1] TRUE
print(x > y)
## [1] FALSE
print(x <= z)
## [1] TRUE
print(y >= x)
## [1] TRUE
print(x == z)
## [1] TRUE
print(x != y)
## [1] 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 <- "Rua LEANDRO FERRAS"
numero <- "110"
bairro <- "Centro"
endereco <- paste(rua, numero, bairro, Cep = ", ")
print(endereco)
## [1] "Rua LEANDRO FERRAS 110 Centro , "

Exercício 11

Elabore um algoritmo que:
a) Crie um vetor com uma sequência de 10 números.
b) Faça um loop para calcular a soma dos números do vetor.
i) Utilize o comando vetor <- c(1:10) para criar o vetor.
ii) Utilize o comando for(i in 1:10) { …comandos} para realizar a soma.
iii) Referencie os valores do vetor com o comando: vetor[i], onde i é o índice referência (número).

vetor <- c(1:10)
soma <- 0
for(i in 1:10) {
  soma <- soma + vetor[i]
}
print(soma)
## [1] 55

Exercício 12

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

media_vetor <- soma / length(vetor)
print(media_vetor)
## [1] 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”. a) A sintaxe do comando de comparação é: if (x > y) {comandos…} else {comandos}.
b) O comando print(“texto ou variável”) imprime a resposta na tela.

x <- 15
y <- 10
if (x > y) {
  print("x é maior que y")
} else {
  print("y é maior que x")
}
## [1] "x é maior que y"

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 os dizeres da resposta.
x <- 15
y <- 10
if (x <= y) {
  print("x é menor ou igual a y")
} else {
  print("x é maior que y (logo, y não é menor ou igual a x)")
}
## [1] "x é maior que y (logo, y não é menor ou igual a x)"

Exercício 15

A partir do exercício “11)”, faça a soma somente dos números pares.
a) Utilize o comando “%%” para identificar o resto da divisão. Ex: “5%%2”, cinco dividido por dois terá como resto “1”.
b) Utilize o comando de decisão “if” para saber se o número é par (o resto é zero) ou ímpar (o resto é 1).
c) Crie uma variável auxiliar para guardar o resultado da soma.

vetor <- c(1:10)
soma_pares <- 0
for(i in 1:length(vetor)) {
  if (vetor[i] %% 2 == 0) {
    soma_pares <- soma_pares + vetor[i]
  }
}
print(soma_pares)
## [1] 30

Exercício 16

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

n <- 5
fatorial <- 1
if (n < 0) {
  print("Fatorial não existe para números negativos.")
} else if (n == 0 || n == 1) {
  fatorial <- 1
} else {
  for(i in 1:n) {
    fatorial <- fatorial * i
  }
}
cat("O fatorial de", n, "é", fatorial)
## O fatorial de 5 é 120

Exercício 17

Crie uma matriz 4x4.a) Uma matriz no R comporta somente um tipo de dado (número, texto ou booleano).
b) 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(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.
a) Um data.frame é uma estrutura de dados similar à matriz que pode conter dados diferentes em suas variáveis.
b) Lembre-se que também chamamos as colunas de variáveis e as linhas de registros.
c) 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, booleanos.
d) 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:
a) a média de uma coluna da matriz do exercício “18)”.
b) A média de todas as colunas da matriz do exercício “18)”.
c) A média de todas as linhas da matriz do exercício “18)”.
d) A média dos números pares de todas as colunas da matriz do exercício “18)”.
e) A média dos números ímpares de todas as linhas da matriz do exercício “18)”.
f) A soma da diagonal principal da matriz.
g) A soma da diagonal secundária da matriz (desafio).

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

# a) Média de uma coluna (ex: coluna 1)
soma_col1 <- 0
for(i in 1:nrow(x)) {
  soma_col1 <- soma_col1 + x[i, 1]
}
media_col1 <- soma_col1 / nrow(x)
cat("a) Média da coluna 1:", media_col1, "\n")
## a) Média da coluna 1: 7
# b) Média de todas as colunas
medias_colunas <- c()
for(j in 1:ncol(x)) {
  soma_col <- 0
  for(i in 1:nrow(x)) {
    soma_col <- soma_col + x[i, j]
  }
  medias_colunas[j] <- soma_col / nrow(x)
}
cat("b) Média de todas as colunas:", medias_colunas, "\n")
## b) Média de todas as colunas: 7 8 9 10
# c) Média de todas as linhas
medias_linhas <- c()
for(i in 1:nrow(x)) {
  soma_linha <- 0
  for(j in 1:ncol(x)) {
    soma_linha <- soma_linha + x[i, j]
  }
  medias_linhas[i] <- soma_linha / ncol(x)
}
cat("c) Média de todas as linhas:", medias_linhas, "\n")
## c) Média de todas as linhas: 2.5 6.5 10.5 14.5
# d) Média dos números pares de todas as colunas
soma_pares_mat <- 0
qtd_pares_mat <- 0
for(i in 1:nrow(x)) {
  for(j in 1:ncol(x)) {
    if(x[i, j] %% 2 == 0) {
      soma_pares_mat <- soma_pares_mat + x[i, j]
      qtd_pares_mat <- qtd_pares_mat + 1
    }
  }
}
media_pares_mat <- soma_pares_mat / qtd_pares_mat
cat("d) Média dos números pares da matriz:", media_pares_mat, "\n")
## d) Média dos números pares da matriz: 9
# e) Média dos números ímpares de todas as linhas
soma_impares_mat <- 0
qtd_impares_mat <- 0
for(i in 1:nrow(x)) {
  for(j in 1:ncol(x)) {
    if(x[i, j] %% 2 != 0) {
      soma_impares_mat <- soma_impares_mat + x[i, j]
      qtd_impares_mat <- qtd_impares_mat + 1
    }
  }
}
media_impares_mat <- soma_impares_mat / qtd_impares_mat
cat("e) Média dos números ímpares da matriz:", media_impares_mat, "\n")
## e) Média dos números ímpares da matriz: 8
# f) Soma da diagonal principal da matriz
soma_dp <- 0
for(i in 1:nrow(x)) {
  soma_dp <- soma_dp + x[i, i]
}
cat("f) Soma da diagonal principal:", soma_dp, "\n")
## f) Soma da diagonal principal: 34
# g) Soma da diagonal secundária da matriz (desafio)
soma_ds <- 0
n_linhas <- nrow(x)
for(i in 1:n_linhas) {
  soma_ds <- soma_ds + x[i, n_linhas - i + 1]
}
cat("g) Soma da diagonal secundária:", soma_ds, "\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)”.

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

# a) Média da coluna 1 do data.frame
soma_df_col1 <- 0
for(i in 1:nrow(df)) {
  soma_df_col1 <- soma_df_col1 + df[i, 1]
}
media_df_col1 <- soma_df_col1 / nrow(df)
cat("a) Média da coluna 1 (data.frame):", media_df_col1, "\n")
## a) Média da coluna 1 (data.frame): 7
# b) Média de todas as colunas do data.frame
medias_df_colunas <- c()
for(j in 1:ncol(df)) {
  soma_col_df <- 0
  for(i in 1:nrow(df)) {
    soma_col_df <- soma_col_df + df[i, j]
  }
  medias_df_colunas[j] <- soma_col_df / nrow(df)
}
cat("b) Média de todas as colunas (data.frame):", medias_df_colunas, "\n")
## b) Média de todas as colunas (data.frame): 7 8 9 10
# c) Média de todas as linhas do data.frame
medias_df_linhas <- c()
for(i in 1:nrow(df)) {
  soma_linha_df <- 0
  for(j in 1:ncol(df)) {
    soma_linha_df <- soma_linha_df + df[i, j]
  }
  medias_df_linhas[i] <- soma_linha_df / ncol(df)
}
cat("c) Média de todas as linhas (data.frame):", medias_df_linhas, "\n")
## c) Média de todas as linhas (data.frame): 2.5 6.5 10.5 14.5
# d) Média dos números pares no data.frame
soma_pares_df <- 0
qtd_pares_df <- 0
for(i in 1:nrow(df)) {
  for(j in 1:ncol(df)) {
    if(df[i, j] %% 2 == 0) {
      soma_pares_df <- soma_pares_df + df[i, j]
      qtd_pares_df <- qtd_pares_df + 1
    }
  }
}
media_pares_df <- soma_pares_df / qtd_pares_df
cat("d) Média dos números pares (data.frame):", media_pares_df, "\n")
## d) Média dos números pares (data.frame): 9
# e) Média dos números ímpares no data.frame
soma_impares_df <- 0
qtd_impares_df <- 0
for(i in 1:nrow(df)) {
  for(j in 1:ncol(df)) {
    if(df[i, j] %% 2 != 0) {
      soma_impares_df <- soma_impares_df + df[i, j]
      qtd_impares_df <- qtd_impares_df + 1
    }
  }
}
media_impares_df <- soma_impares_df / qtd_impares_df
cat("e) Média dos números ímpares (data.frame):", media_impares_df, "\n")
## e) Média dos números ímpares (data.frame): 8
# f) Soma da diagonal principal do data.frame
soma_dp_df <- 0
for(i in 1:nrow(df)) {
  soma_dp_df <- soma_dp_df + df[i, i]
}
cat("f) Soma da diagonal principal (data.frame):", soma_dp_df, "\n")
## f) Soma da diagonal principal (data.frame): 34
# g) Soma da diagonal secundária do data.frame
soma_ds_df <- 0
n_linhas_df <- nrow(df)
for(i in 1:n_linhas_df) {
  soma_ds_df <- soma_ds_df + df[i, n_linhas_df - i + 1]
}
cat("g) Soma da diagonal secundária (data.frame):", soma_ds_df, "\n")
## g) Soma da diagonal secundária (data.frame): 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_1_100 <- 1:100
vetor_pares <- vetor_1_100[vetor_1_100 %% 2 == 0]
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(v) {
  maior <- v[1]
  for(i in 2:length(v)) {
    if(v[i] > maior) {
      maior <- v[i]
    }
  }
  return(maior)
}

# Testando a função
vetor_teste <- c(10, 5, 8, 2, 20, 15)
resultado_maior <- maior_elemento(vetor_teste)
cat("O maior elemento é:", resultado_maior)
## O maior elemento é: 20