title: “Projeto de Algoritmos e Estrutura de Dados” author: “Carlos
Victor da Silva Pinto” date: “28/03/2026” output:
html_document ———————
resolução dos exercícios propostos na disciplina de Programação em RStudio
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 <- 10
C <- 15
A + B
## [1] 15
A + C
## [1] 20
B + C
## [1] 25
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
temp <- A
A <- B
B <- temp
A
## [1] 8
B
## [1] 6
Converter uma temperatura de Fahrenheit para Centígrados. C = (F - 32) * ( 5 / 9 ).
F <- 100
C <- (F - 32) * (5 / 9)
C
## [1] 37.77778
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
X <- 9
# a
X^3 - 4
## [1] 725
# b
X %% 3
## [1] 0
# c
X^(X/3) + 2
## [1] 731
# d
sqrt(X^2)
## [1] 9
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
numeros
## [1] 1 2 3 4 5 6 7 8 9 10
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", "terca", "quarta", "quinta", "sexta", "sabado")
dias
## [1] "domingo" "segunda" "terca" "quarta" "quinta" "sexta" "sabado"
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, byrow = TRUE)
matriz
## [,1] [,2] [,3]
## [1,] 1 2 3
## [2,] 4 5 6
## [3,] 7 8 9
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("Ana", "isa", "Carlos"),
idade = c(20, 25, 30),
cidade = c("RJ", "SP", "MG")
)
pessoas
## nome idade cidade
## 1 Ana 20 RJ
## 2 isa 25 SP
## 3 Carlos 30 MG
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
x > y
## [1] FALSE
x < y
## [1] TRUE
x >= z
## [1] TRUE
y <= z
## [1] FALSE
x == z
## [1] TRUE
x != y
## [1] TRUE
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”.
rua <- "Rua juliao machado"
numero <- "210"
bairro <- "bangu"
endereco <- paste(rua, numero, bairro, sep = ", ")
endereco
## [1] "Rua juliao machado, 210, bangu"
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
soma <- 0
for(i in 1:10){
soma <- soma + vetor[i]
}
soma
## [1] 55
A partir do exercício anterior, faça a média dos valores contidos no vetor.
media <- soma / length(vetor)
media
## [1] 5.5
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"
Repita o exercício “7)” realizando os seguintes ajustes: a) Substitua o sinal de maior (“>”) pelo de menor ou igual (“<=”) e ajuste dos dizeres da resposta.
if(x <= y){
print("x é menor ou igual a y")
} else {
print("x é maior que y")
}
## [1] "x é maior que y"
A partir do exercício “5)”, 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 ou ímpar.
soma_pares <- 0
for(i in vetor){
if(i %% 2 == 0){
soma_pares <- soma_pares + i
}
}
soma_pares
## [1] 30
Faça um algoritmo que calcule e imprima o fatorial de um número inteiro.
n <- 5
fatorial <- 1
for(i in 1:n){
fatorial <- fatorial * i
}
fatorial
## [1] 120
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(1, nrow = 4, ncol = 4)
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
Agora, crie uma matriz com a sequência de 1 a 16.
x <- matrix(1:16, nrow = 4, byrow = TRUE)
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
ransforme 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)”
df <- as.data.frame(x)
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
Utilizando os comandos de repetição e decisão (se for necessário), calcule: a) a média de uma coluna da matriz do exercício “12)”. b) A média de todas as colunas da matriz do exercício “12)”. c) A média de todas as linhas da matriz do exercício “12)”. d) A média dos números pares de todas as colunas da matriz do exercício “12)”. e) A média dos números ímpares de todas as linhas da matriz do exercício “12)”. f) A soma da diagonal principal da matriz. g) A soma da diagonal secundária da matriz (desafio)
# Média coluna 1
mean(x[,1])
## [1] 7
# Média colunas
apply(x, 2, mean)
## [1] 7 8 9 10
# Média linhas
apply(x, 1, mean)
## [1] 2.5 6.5 10.5 14.5
# Média pares por coluna
apply(x, 2, function(col) mean(col[col %% 2 == 0]))
## [1] NaN 8 NaN 10
# Média ímpares por linha
apply(x, 1, function(lin) mean(lin[lin %% 2 != 0]))
## [1] 2 6 10 14
# Soma diagonal principal
sum(diag(x))
## [1] 34
# Soma diagonal secundária
sum(diag(apply(x, 2, rev)))
## [1] 34
Repita o exercício “14)” com os dados do data.frame do exercício “13)
for(i in 1:nrow(df)){
for(j in 1:ncol(df)){
if(df[i,j] <= 10){
print(paste(df[i,j], "<= 10"))
} else {
print(paste(df[i,j], "> 10"))
}
}
}
## [1] "1 <= 10"
## [1] "2 <= 10"
## [1] "3 <= 10"
## [1] "4 <= 10"
## [1] "5 <= 10"
## [1] "6 <= 10"
## [1] "7 <= 10"
## [1] "8 <= 10"
## [1] "9 <= 10"
## [1] "10 <= 10"
## [1] "11 > 10"
## [1] "12 > 10"
## [1] "13 > 10"
## [1] "14 > 10"
## [1] "15 > 10"
## [1] "16 > 10"
rie 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
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
pares <- vetor[vetor %% 2 == 0]
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
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){
max(v)
}
maior_elemento(c(10,5,8,2,20,15))
## [1] 20