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"