Projeto de Algoritmos e Estrutura de Dados Programação em RStudio
A. MANIPULANDO VARIÁVEIS E ESTRUTURAS DE DADOS BÁSICAS
Olá!
Neste Projeto, nós iremos criar um arquivo em HTML no RPubs
a <- 10
b <- 20
c <- 30
print(a + b)
## [1] 30
print(a + c)
## [1] 40
print(b + c)
## [1] 50
A <- 6
B <- 8
aux <- A
A <- B
B <- aux
print(A)
## [1] 8
print(B)
## [1] 6
F <- 86
C <- (F - 32) * (5 / 9)
print(C)
## [1] 30
X <- 10
# - (a) X^3 - 4
# 10^3 = 1000; 1000 - 4 = 996
resultado_a <- X^3 - 4
print(resultado_a)
## [1] 996
# - (b) Resto da divisão de X por 3
# O operador %% devolve o resto: 10 = 3*3 + 1, logo o resto é 1
resultado_b <- X %% 3
print(resultado_b)
## [1] 1
# - (c) X / ((X / 3) + 2)
# 10 / (3,333 + 2) = 10 / 5,333 = 1,875
resultado_c <- X / ((X / 3) + 2)
print(resultado_c)
## [1] 1.875
# - (d) Raiz quadrada de X
# sqrt(10) = 3,162278
resultado_d <- sqrt(X)
print(resultado_d)
## [1] 3.162278
numeros <- 1:10
print(numeros)
## [1] 1 2 3 4 5 6 7 8 9 10
dias <- c(
"segunda-feira",
"terça-feira",
"quarta-feira",
"quinta-feira",
"sexta-feira",
"sábado",
"domingo"
)
print(dias)
## [1] "segunda-feira" "terça-feira" "quarta-feira" "quinta-feira"
## [5] "sexta-feira" "sábado" "domingo"
matriz <- matrix(
data = 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
pessoas <- data.frame(
nome = c("Luzileide", "valentina", "Leda"),
idade = c(44, 12, 63),
cidade_natal = c("Rio de Janeiro", "Engenho de Dentro", "Rua Camarista Meier")
)
print(pessoas)
## nome idade cidade_natal
## 1 Luzileide 44 Rio de Janeiro
## 2 valentina 12 Engenho de Dentro
## 3 Leda 63 Rua Camarista Meier
rm(list = ls())
x <- 10
y <- 20
z <- 10
# Menor: 10 < 20 -> TRUE
print(x < y)
## [1] TRUE
# Maior: 10 > 20 -> FALSE
print(x > y)
## [1] FALSE
# Maior ou igual: 10 >= 10 -> TRUE
print(x >= z)
## [1] TRUE
# Menor ou igual: 10 <= 20 -> TRUE
print(x <= y)
## [1] TRUE
# Igual: 10 == 10 -> TRUE
print(x == z)
## [1] TRUE
# Diferente: 10 != 20 -> TRUE
print(x != y)
## [1] TRUE
rm(list = ls())
rua <- "Rua Ribalta"
numero <- "42"
bairro <- "Vila Medeiros_Belford Roxo_RJ"
cep <- "26.112-2315"
endereco <- paste(rua, numero, bairro, sep = ", ")
print(endereco)
## [1] "Rua Ribalta, 42, Vila Medeiros_Belford Roxo_RJ"
B. ALGORITMOS – ESTRUTURAS DE DECISÃO E REPETIÇÃO
vetor <- c(1:10)
soma <- 0
for (i in 1:10) {
soma <- soma + vetor[i]
}
print(soma)
## [1] 55
vetor <- c(1:10)
soma <- 0
for (i in 1:10) {
soma <- soma + vetor[i]
}
media <- soma / length(vetor)
print(media)
## [1] 5.5
x <- 20
y <- 10
if (x > y) {
print("x é maior que y")
} else {
print("y é maior que x")
}
## [1] "x é maior que y"
x <- 10
y <- 20
if (x <= y) {
print("x é menor ou igual a y")
} else {
print("x é maior que y")
}
## [1] "x é menor ou igual a y"
vetor <- c(1:10)
soma_pares <- 0
for (i in 1:10) {
if (vetor[i] %% 2 == 0) {
soma_pares <- soma_pares + vetor[i]
}
}
print(soma_pares)
## [1] 30
numero <- 8
if (numero < 0) {
print("Fatorial não definido para números negativos")
} else {
fat <- 1
if (numero > 1) {
for (i in 2:numero) {
fat <- fat * i
}
}
cat("Fatorial de", numero, "=", fat, "\n")
}
## Fatorial de 8 = 40320
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
matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)
print(matriz)
## [,1] [,2] [,3] [,4]
## [1,] 1 2 3 4
## [2,] 5 6 7 8
## [3,] 9 10 11 12
## [4,] 13 14 15 16
df <- as.data.frame(matriz)
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
soma <- 0
for (i in 1:4) {
soma <- soma + matriz[i, 4]
}
media <- soma / 4
cat("A média da coluna 4 é:", media, "\n")
## A média da coluna 4 é: 10
for (j in 1:4) {
soma <- 0
for (i in 1:4) {
soma <- soma + matriz[i, j]
}
media <- soma / 4
cat("A média da coluna", j, "é:", media, "\n")
}
## A média da coluna 1 é: 7
## A média da coluna 2 é: 8
## A média da coluna 3 é: 9
## A média da coluna 4 é: 10
for (i in 1:4) {
soma <- 0
for (j in 1:4) {
soma <- soma + matriz[i, j]
}
media <- soma / 4
cat("A média da linha", i, "é:", media, "\n")
}
## A média da linha 1 é: 2.5
## A média da linha 2 é: 6.5
## A média da linha 3 é: 10.5
## A média da linha 4 é: 14.5
for (j in 1:4) {
soma <- 0
quantidade <- 0
for (i in 1:4) {
if (matriz[i, j] %% 2 == 0) {
soma <- soma + matriz[i, j]
quantidade <- quantidade + 1
}
}
if (quantidade > 0) {
media <- soma / quantidade
cat("Média dos pares da coluna", j, "é:", media, "\n")
} else {
cat("A coluna", j, "não tem números pares\n")
}
}
## A coluna 1 não tem números pares
## Média dos pares da coluna 2 é: 8
## A coluna 3 não tem números pares
## Média dos pares da coluna 4 é: 10
for (i in 1:4) {
soma <- 0
quantidade <- 0
for (j in 1:4) {
if (matriz[i, j] %% 2 != 0) {
soma <- soma + matriz[i, j]
quantidade <- quantidade + 1
}
}
if (quantidade > 0) {
media <- soma / quantidade
cat("Média dos ímpares da linha", i, "é:", media, "\n")
} else {
cat("A linha", i, "não tem números ímpares\n")
}
}
## Média dos ímpares da linha 1 é: 2
## Média dos ímpares da linha 2 é: 6
## Média dos ímpares da linha 3 é: 10
## Média dos ímpares da linha 4 é: 14
soma <- 0
for (i in 1:4) {
soma <- soma + matriz[i, i]
}
cat("Soma da diagonal principal:", soma, "\n")
## Soma da diagonal principal: 34
# Resposta 20g - Soma da diagonal secundária.
# Como cheguei: posições [i, 5 - i]: 4 + 7 + 10 + 13 = 34.
soma <- 0
for (i in 1:4) {
soma <- soma + matriz[i, 5 - i]
}
cat("Soma da diagonal secundária:", soma, "\n")
## Soma da diagonal secundária: 34
soma <- 0
for (i in 1:4) {
soma <- soma + matriz[i, 5 - i]
}
cat("Soma da diagonal secundária:", soma, "\n")
## Soma da diagonal secundária: 34
21a) Média de uma coluna (coluna 4)
soma <- 0
for (i in 1:4) {
soma <- soma + df[i, 4]
}
media <- soma / 4
cat("A média da coluna 4 é:", media, "\n")
## A média da coluna 4 é: 10
21b) Média de todas as colunas.
for (j in 1:4) {
soma <- 0
for (i in 1:4) {
soma <- soma + df[i, j]
}
media <- soma / 4
cat("A média da coluna", j, "é:", media, "\n")
}
## A média da coluna 1 é: 7
## A média da coluna 2 é: 8
## A média da coluna 3 é: 9
## A média da coluna 4 é: 10
21c) Média de todas as linhas.
for (i in 1:4) {
soma <- 0
for (j in 1:4) {
soma <- soma + df[i, j]
}
media <- soma / 4
cat("A média da linha", i, "é:", media, "\n")
}
## A média da linha 1 é: 2.5
## A média da linha 2 é: 6.5
## A média da linha 3 é: 10.5
## A média da linha 4 é: 14.5
21d) Média dos números pares de todas as colunas.
for (j in 1:4) {
soma <- 0
quantidade <- 0
for (i in 1:4) {
if (df[i, j] %% 2 == 0) {
soma <- soma + df[i, j]
quantidade <- quantidade + 1
}
}
if (quantidade > 0) {
media <- soma / quantidade
cat("Média dos pares da coluna", j, "é:", media, "\n")
} else {
cat("A coluna", j, "não tem números pares\n")
}
}
## A coluna 1 não tem números pares
## Média dos pares da coluna 2 é: 8
## A coluna 3 não tem números pares
## Média dos pares da coluna 4 é: 10
21e) Média dos números ímpares de todas as linhas.
for (i in 1:4) {
soma <- 0
quantidade <- 0
for (j in 1:4) {
if (df[i, j] %% 2 != 0) {
soma <- soma + df[i, j]
quantidade <- quantidade + 1
}
}
if (quantidade > 0) {
media <- soma / quantidade
cat("Média dos ímpares da linha", i, "é:", media, "\n")
} else {
cat("A linha", i, "não tem números ímpares\n")
}
}
## Média dos ímpares da linha 1 é: 2
## Média dos ímpares da linha 2 é: 6
## Média dos ímpares da linha 3 é: 10
## Média dos ímpares da linha 4 é: 14
21f) Soma da diagonal principal.
soma <- 0
for (i in 1:4) {
soma <- soma + df[i, i]
}
cat("Soma da diagonal principal:", soma, "\n")
## Soma da diagonal principal: 34
# 21g) Soma da diagonal secundária
soma <- 0
for (i in 1:4) {
soma <- soma + df[i, 5 - i]
}
cat("Soma da diagonal secundária:", soma, "\n")
## Soma da diagonal secundária: 34
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
vetor <- 1:100
pares <- c()
for (i in 1:100) {
if (vetor[i] %% 2 == 0) {
pares <- c(pares, vetor[i])
}
}
print(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
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
v <- c(10, 5, 8, 2, 20, 15)
resultado <- maior_elemento(v)
cat("O maior elemento é:", resultado, "\n")
## O maior elemento é: 20