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 <- 5
B <- 3
C <- 6

A + B
## [1] 8
A + C
## [1] 11
B + C
## [1] 9

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 <- 6
B <- 8

Aux <- A
A <- B
B <- Aux

print(A)
## [1] 8
print(B)
## [1] 6

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

f_temp <- 98.1

C = (F - 32) * (5 / 9)
c_temp <- (f_temp - 32) * (5 / 9)

round(c_temp,2)
## [1] 36.72

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

a)X³ - 4

X <- 4
resultado_a <-  (4 ^ 3) - 4
print (resultado_a)
## [1] 60

b)O resto da divisão de X / 3

X <- 4
resultado_b <- X %% 3
print(resultado_b)
## [1] 1

c)X(x/3) + 2

X <- 4
resultado_c <- X * (X / 3) + 2
print(resultado_c)
## [1] 7.333333

d)Raiz quadrada de X2

X <- 4

resultado_d <- sqrt(X^2)

print(resultado_d)
## [1] 4

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

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"

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)

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

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("Bernardo", "Suzy", "Thuanne"),
  idade = c(9, 30, 31),
  cidade_natal = c("São Paulo", "Rio de Janeiro", "Curitiba")
)

print(pessoas)
##       nome idade   cidade_natal
## 1 Bernardo     9      São Paulo
## 2     Suzy    30 Rio de Janeiro
## 3  Thuanne    31       Curitiba

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 <- 9
y <- 34
z <- 31

x < y
## [1] TRUE
y > x
## [1] TRUE
x >= z
## [1] FALSE
y <= x
## [1] FALSE
x == z
## [1] FALSE
x != y
## [1] TRUE

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 <- "Vinte e Quatro de Maio"
Número <- "797"
Bairro <- "Engenho Novo"

endereco <- paste(Rua, Número, Bairro)

print(endereco)
## [1] "Vinte e Quatro de Maio 797 Engenho Novo"

B.ALGORITMOS – ESTRUTURAS DE DECISÃO E REPETIÇÃO

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.

c)Utilize o comando “vetor <- c(1:10)” para criar o vetor.

d)Utilize o comando “for( i in 1:10) { …comandos}” para realizar a soma.

e)Referencie os valores do vetor com o comando: “vetor[i]”, onde “i” é o índice referência (número) Ex. vetor: 1,2,3,4,5,6,7,8,9,10 | Soma dos números = 55.

vetor <- 1:10

print(vetor)
##  [1]  1  2  3  4  5  6  7  8  9 10
soma_total <- 0

for (numero in vetor) {
  soma_total <- soma_total + numero
}

print(soma_total)
## [1] 55

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

media_manual <- soma_total / length(vetor)

print(media_manual)
## [1] 5.5

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"

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

a)Substitua o sinal de maior (“>”) pelo de menor ou igual (“<=”) e ajuste dos dizeres da resposta.

x <- 15
y <- 10

if (x <= y) {
  print("x é menor ou igual a y")
} else {
  print("x é maior que y")
}
## [1] "x é maior que y"

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”. Ou seja, o resultado dessa operação será “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 auxiliara para guardar o resultado da soma.

vetor <- c(1:10)

soma_pares <- 0

for (i in 1:10) {
  
  # 15-a) e b) Verificando se o número na posição i é par
  # Se o resto da divisão por 2 for IGUAL a 0, ele é par
  if (vetor[i] %% 2 == 0) {
    
    # Somando apenas se a condição acima for verdadeira
    soma_pares <- soma_pares + vetor[i]
    
  }
}

print(soma_pares)
## [1] 30

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

n <- 5

fatorial <- 1

if (n < 0) {
  print("Não existe fatorial de número negativo.")
} else if (n == 0) {
  print("O fatorial de 0 é 1.")
} else {
  
  # Loop para multiplicar de 1 até o número n
  for (i in 1:n) {
    fatorial <- fatorial * i
  }
  
  # Imprimindo o resultado final
  print(paste("O fatorial de", n, "é", fatorial))
}
## [1] "O fatorial de 5 é 120"

17)Crie uma matriz 4x4.

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

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

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

19)Transforme essa matriz em um data.frame

a)Um data.frame é uma estrutura de dados similar a 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, boleanos.

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

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

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
class(df)
## [1] "data.frame"

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

a)a média de uma coluna da matriz do exercício “18)”.

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

soma_col1 <- 0
for(i in 1:4) {
  soma_col1 <- soma_col1 + x[i, 1] # i é a linha, 1 é a coluna
}
media_col1 <- soma_col1 / 4
print(paste("Média da Coluna 1:", media_col1))
## [1] "Média da Coluna 1: 7"

b)A média de todas as colunas da matriz do exercício “18)”.

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

for(j in 1:4) {
  soma_col <- 0
  for(i in 1:4) {
    soma_col <- soma_col + x[i, j]
  }
  print(paste("Média da Coluna", j, ":", soma_col / 4))
}
## [1] "Média da Coluna 1 : 7"
## [1] "Média da Coluna 2 : 8"
## [1] "Média da Coluna 3 : 9"
## [1] "Média da Coluna 4 : 10"

c)A média de todas as linhas da matriz do exercício “18)”.

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

for(i in 1:4) {
  soma_lin <- 0
  for(j in 1:4) {
    soma_lin <- soma_lin + x[i, j]
  }
  print(paste("Média da Linha", i, ":", soma_lin / 4))
}
## [1] "Média da Linha 1 : 2.5"
## [1] "Média da Linha 2 : 6.5"
## [1] "Média da Linha 3 : 10.5"
## [1] "Média da Linha 4 : 14.5"

d)A média dos números pares de todas as colunas da matriz do exercício “18)”.

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

soma_pares <- 0
cont_pares <- 0
for(j in 1:4) {
  for(i in 1:4) {
    if(x[i, j] %% 2 == 0) {
      soma_pares <- soma_pares + x[i, j]
      cont_pares <- cont_pares + 1
    }
  }
}
media_pares <- soma_pares / cont_pares
print(paste("Média dos pares da matriz:", media_pares))
## [1] "Média dos pares da matriz: 9"

e)A média dos números ímpares de todas as linhas da matriz do exercício “18)”.

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

soma_impares <- 0
cont_impares <- 0
for(i in 1:4) {
  for(j in 1:4) {
    if(x[i, j] %% 2 != 0) {
      soma_impares <- soma_impares + x[i, j]
      cont_impares <- cont_impares + 1
    }
  }
}
media_impares <- soma_impares / cont_impares
print(paste("Média dos ímpares da matriz:", media_impares))
## [1] "Média dos ímpares da matriz: 8"

f)A soma da diagonal principal da matriz.

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

soma_diag_princ <- 0
for(i in 1:4) {
  soma_diag_princ <- soma_diag_princ + x[i, i]
}
print(paste("Soma da Diagonal Principal:", soma_diag_princ))
## [1] "Soma da Diagonal Principal: 34"

g)A soma da diagonal secundária da matriz (desafio).

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

soma_diag_sec <- 0
n <- 4
for(i in 1:n) {
  soma_diag_sec <- soma_diag_sec + x[i, n - i + 1]
}
print(paste("Soma da Diagonal Secundária:", soma_diag_sec))
## [1] "Soma da Diagonal Secundária: 34"

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

# Criando a matriz 4x4 com números de 1 a 16, preenchendo por linha
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
# d) Convertendo a matriz 'x' em um data.frame chamado 'df'
df <- as.data.frame(x)

# Visualizando a estrutura (confirmando os itens a, b e c)
str(df)
## 'data.frame':    4 obs. of  4 variables:
##  $ V1: int  1 5 9 13
##  $ V2: int  2 6 10 14
##  $ V3: int  3 7 11 15
##  $ V4: int  4 8 12 16
# a) e b) Média de TODAS as colunas (fazendo a média de cada uma)
for (j in 1:4) {
  soma_col <- 0
  for (i in 1:4) {
    soma_col <- soma_col + x[i, j]
  }
  print(paste("Média da Coluna", j, ":", soma_col / 4))
}
## [1] "Média da Coluna 1 : 7"
## [1] "Média da Coluna 2 : 8"
## [1] "Média da Coluna 3 : 9"
## [1] "Média da Coluna 4 : 10"
# c) Média de TODAS as linhas
for (i in 1:4) {
  soma_lin <- 0
  for (j in 1:4) {
    soma_lin <- soma_lin + x[i, j]
  }
  print(paste("Média da Linha", i, ":", soma_lin / 4))
}
## [1] "Média da Linha 1 : 2.5"
## [1] "Média da Linha 2 : 6.5"
## [1] "Média da Linha 3 : 10.5"
## [1] "Média da Linha 4 : 14.5"
# d) Média dos PARES de todas as colunas
soma_p <- 0
cont_p <- 0
for (item in x) {
  if (item %% 2 == 0) {
    soma_p <- soma_p + item
    cont_p <- cont_p + 1
  }
}
media_p <- soma_p / cont_p
print(paste("Média dos números pares:", media_p))
## [1] "Média dos números pares: 9"
# e) Média dos ÍMPARES de todas as linhas
soma_i <- 0
cont_i <- 0
for (item in x) {
  if (item %% 2 != 0) {
    soma_i <- soma_i + item
    cont_i <- cont_i + 1
  }
}
media_i <- soma_i / cont_i
print(paste("Média dos números ímpares:", media_i))
## [1] "Média dos números ímpares: 8"
# f) Soma da diagonal principal (onde linha == coluna)
soma_diag_prin <- 0
for (i in 1:4) {
  soma_diag_prin <- soma_diag_prin + x[i, i]
}
print(paste("Soma Diagonal Principal:", soma_diag_prin))
## [1] "Soma Diagonal Principal: 34"
# g) DESAFIO: Soma da diagonal secundária
soma_diag_sec <- 0
for (i in 1:4) {
  # Lógica: na linha 1 pega a coluna 4, na linha 2 a 3, etc.
  # A soma dos índices i + j em uma diagonal secundária é sempre n + 1
  soma_diag_sec <- soma_diag_sec + x[i, 5 - i]
}
print(paste("Soma Diagonal Secundária:", soma_diag_sec))
## [1] "Soma Diagonal Secundária: 34"

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

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_original <- 1:100

vetor_pares <- vetor_original[vetor_original %% 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

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) {
  
  # Iniciamos assumindo que o primeiro elemento é o maior
  maior <- vetor[1]
  
  # Criamos um loop para percorrer os demais elementos do vetor
  for (numero in vetor) {
    # Se o número atual for MAIOR que o nosso "campeão" atual:
    if (numero > maior) {
      # O novo "campeão" passa a ser esse número
      maior <- numero
    }
  }
  
  # A função retorna o resultado final encontrado
  return(maior)
}

# --- Testando a função ---
meu_vetor <- c(10, 5, 8, 2, 20, 15)
resultado <- maior_elemento(meu_vetor)

# Imprimindo o resultado
print(paste("O maior elemento do vetor é:", resultado))
## [1] "O maior elemento do vetor é: 20"