Lista de Exercícios
Agora, vou começar a fazer meu documento de recuperação .
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
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
Converter uma temperatura de Fahrenheit para Centígrados. C = (F - 32) * ( 5 / 9 ).
F<-98.6
C<- (F-32)*(5/9)
cat("Temperatura em Celsius", C,"?C\n")
## Temperatura em Celsius 37 ?C
Escrever um algoritmo que defina um número X e calcule:
X <-9
res_a <-X^3-4
res_b <-X %% 3
res_c <-X^(X / 3) + 2
res_d <-sqrt(X^2)
cat("a)", res_a, "\nb)", res_c, "\nd)", res_d,"\n")
## a) 725
## b) 731
## d) 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 <- c(1:10)
print(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", "Ter?a", "Quarta", "Quinta", "Sexta", "S?bado")
print(dias)
## [1] "Domingo" "Segunda" "Ter?a" "Quarta" "Quinta" "Sexta" "S?bado"
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
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 imprimao.
df<-data.frame(nome=c("Ana","Bruno","Guilherme"),idade=c(55,15,25))
df
## nome idade
## 1 Ana 55
## 2 Bruno 15
## 3 Guilherme 25
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 (<. <. >=, <=, ==, !=).
x<-10
y<-20
z<-10
cat("x < y :", x < y, "\n")
## x < y : TRUE
cat("x > y :", x > y, "\n")
## x > y : FALSE
cat("x >= z:", x >= z, "\n")
## x >= z: TRUE
cat("x <= y:", x <= y, "\n")
## x <= y: TRUE
cat("x == z:", x == z, "\n")
## x == z: TRUE
cat("x != y:", x != y, "\n")
## x != y: 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”.
rm(list = ls())
rua <- "Av. Rio Branco"
numero <- "156"
bairro <- "Centro"
endereco <- paste(rua, numero, bairro, sep = ", ")
print(endereco)
## [1] "Av. Rio Branco, 156, Centro"
Elabore um algoritmo que:
vetor<-c(1:10)
seq(from = 1, to = 10, by =2)
## [1] 1 3 5 7 9
seq(from = 5, to = -5, by =-2)
## [1] 5 3 1 -1 -3 -5
seq(from = 1, to = 3, by =0.2)
## [1] 1.0 1.2 1.4 1.6 1.8 2.0 2.2 2.4 2.6 2.8 3.0
vetor[1:10]
## [1] 1 2 3 4 5 6 7 8 9 10
A partir do exercício anterior, faça a média dos valores contidos no vetor.
vetor <- c(1:10)
soma <- 0
for (i in 1:length(vetor)) {
soma <- soma + vetor[i]
}
media <- soma / length(vetor)
cat("M?dia dos n?meros =", media, "\n")
## M?dia dos n?meros = 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”.
x <- 15
y <- 10
if (x > y) {
print("x ? maior que y")
}
## [1] "x ? maior que y"
{
print("y ? maior que x")
}
## [1] "y ? maior que x"
Repita o exercício “13)” realizando os seguintes ajustes:
x <- 10
y <- 15
if (x <= y) {
print("x ? menor ou igual a y")
} else {
print("x ? maior que y")
}
## [1] "x ? menor ou igual a y"
A partir do exercício “11)”, faça a soma somente dos números pares.
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”.
Utilize o comando de decisão “if” para saber se o número é par (o resto é zero) ou ímpar (o resto é 1).
vetor <- c(1:10)
soma_pares <- 0
for (i in 1:length(vetor)) {
if (vetor[i] %% 2 == 0) {
soma_pares <- soma_pares + vetor[i]
}
}
cat("Soma dos n?meros pares =", soma_pares, "\n")
## Soma dos n?meros pares = 30
Faça um algoritmo que calcule e imprima o fatorial de um número inteiro.
num <- 5
fatorial <- 1
if (num < 0) {
cat("N?o existe fatorial de n?mero negativo.\n")
} else if (num == 0) {
cat("Fatorial de 0 = 1\n")
} else {
for (i in 1:num) {
fatorial <- fatorial * i
}
cat("Fatorial de", num, "=", fatorial, "\n")
}
## Fatorial de 5 = 120
Crie uma matriz 4x4.
Uma matriz no R comporta somente um tipo de dado (número, texto ou boleano).
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
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
Transforme essa matriz em um data.frame
Um data.frame é uma estrutura de dados similar a matriz que pode conter dados diferentes em suas variáveis.
Lembre-se que também chamamos as colunas de variáveis e as linhas de registros.
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.
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
Utilizando os comandos de repetição e decisão, calcule:
x <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)
soma_col1 <- 0
for (i in 1:nrow(x)) {
soma_col1 <- soma_col1 + x[i, 1]
}
media_col1 <- soma_col1 / nrow(x)
print(media_col1)
## [1] 7
cat("a) M?dia da coluna 1:", soma_col1 / nrow(x), "\n")
## a) M?dia da coluna 1: 7
cat("b) M?dia de cada coluna:\n")
## b) M?dia de cada coluna:
for (j in 1:ncol(x)) {
soma_col <- 0
for (i in 1:nrow(x)) {
soma_col <- soma_col + x[i, j]
}
cat(" Coluna", j, ":", soma_col / nrow(x), "\n")
}
## Coluna 1 : 7
## Coluna 2 : 8
## Coluna 3 : 9
## Coluna 4 : 10
cat("c) M?dia de cada linha:\n")
## c) M?dia de cada linha:
for (i in 1:nrow(x)) {
soma_linha <- 0
for (j in 1:ncol(x)) {
soma_linha <- soma_linha + x[i, j]
}
cat(" Linha", i, ":", soma_linha / ncol(x), "\n")
}
## Linha 1 : 2.5
## Linha 2 : 6.5
## Linha 3 : 10.5
## Linha 4 : 14.5
soma_pares <- 0
qtd_pares <- 0
for (i in 1:nrow(x)) {
for (j in 1:ncol(x)) {
if (x[i, j] %% 2 == 0) {
soma_pares <- soma_pares + x[i, j]
qtd_pares <- qtd_pares + 1
}
}
}
cat("d) M?dia dos n?meros pares de todas as colunas:", soma_pares / qtd_pares, "\n")
## d) M?dia dos n?meros pares de todas as colunas: 9
soma_impares <- 0
qtd_impares <- 0
for (i in 1:nrow(x)) {
for (j in 1:ncol(x)) {
if (x[i, j] %% 2 != 0) {
soma_impares <- soma_impares + x[i, j]
qtd_impares <- qtd_impares + 1
}
}
}
cat("e) M?dia dos n?meros ?mpares de todas as linhas:", soma_impares / qtd_impares, "\n")
## e) M?dia dos n?meros ?mpares de todas as linhas: 8
soma_diag_principal <- 0
for (i in 1:nrow(x)) {
soma_diag_principal <- soma_diag_principal + x[i, i]
}
cat("f) Soma da diagonal principal:", soma_diag_principal, "\n")
## f) Soma da diagonal principal: 34
soma_diag_secundaria <- 0
n <- nrow(x)
for (i in 1:n) {
soma_diag_secundaria <- soma_diag_secundaria + x[i, n - i + 1]
}
cat("g) Soma da diagonal secund?ria:", soma_diag_secundaria, "\n")
## g) Soma da diagonal secund?ria: 34
Repita o exercício “20)” com os dados do data.frame do exercício “18)”.
df <- as.data.frame(matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE))
soma_col1 <- 0
for (i in 1:nrow(df)) {
soma_col1 <- soma_col1 + df[i, 1]
}
cat("a) M?dia da coluna 1 (df):", soma_col1 / nrow(df), "\n")
## a) M?dia da coluna 1 (df): 7
cat("b) M?dia de cada coluna (df):\n")
## b) M?dia de cada coluna (df):
for (j in 1:ncol(df)) {
soma_col <- 0
for (i in 1:nrow(df)) {
soma_col <- soma_col + df[i, j]
}
cat(" Coluna", j, ":", soma_col / nrow(df), "\n")
}
## Coluna 1 : 7
## Coluna 2 : 8
## Coluna 3 : 9
## Coluna 4 : 10
cat("c) M?dia de cada linha (df):\n")
## c) M?dia de cada linha (df):
for (i in 1:nrow(df)) {
soma_linha <- 0
for (j in 1:ncol(df)) {
soma_linha <- soma_linha + df[i, j]
}
cat(" Linha", i, ":", soma_linha / ncol(df), "\n")
}
## Linha 1 : 2.5
## Linha 2 : 6.5
## Linha 3 : 10.5
## Linha 4 : 14.5
soma_pares <- 0
qtd_pares <- 0
for (i in 1:nrow(df)) {
for (j in 1:ncol(df)) {
if (df[i, j] %% 2 == 0) {
soma_pares <- soma_pares + df[i, j]
qtd_pares <- qtd_pares + 1
}
}
}
cat("d) M?dia dos n?meros pares (df):", soma_pares / qtd_pares, "\n")
## d) M?dia dos n?meros pares (df): 9
soma_impares <- 0
qtd_impares <- 0
for (i in 1:nrow(df)) {
for (j in 1:ncol(df)) {
if (df[i, j] %% 2 != 0) {
soma_impares <- soma_impares + df[i, j]
qtd_impares <- qtd_impares + 1
}
}
}
cat("e) M?dia dos n?meros ?mpares (df):", soma_impares / qtd_impares, "\n")
## e) M?dia dos n?meros ?mpares (df): 8
soma_diag_principal <- 0
for (i in 1:nrow(df)) {
soma_diag_principal <- soma_diag_principal + df[i, i]
}
cat("f) Soma da diagonal principal (df):", soma_diag_principal, "\n")
## f) Soma da diagonal principal (df): 34
soma_diag_secundaria <- 0
n <- nrow(df)
for (i in 1:n) {
soma_diag_secundaria <- soma_diag_secundaria + df[i, n - i + 1]
}
cat("g) Soma da diagonal secund?ria (df):", soma_diag_secundaria, "\n")
## g) Soma da diagonal secund?ria (df): 34
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
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_100 <- c(1:100)
vetor_pares <- c()
for (i in 1:length(vetor_100)) {
if (vetor_100[i] %% 2 == 0) {
vetor_pares <- c(vetor_pares, vetor_100[i])
}
}
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
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) {
maior <- vetor[1]
for (i in 2:length(vetor)) {
if (vetor[i] > maior) {
maior <- vetor[i]
}
}
return(maior)
}
Teste da função.
teste_vetor <- c(10, 5, 8, 2, 20, 15)
resultado <- maior_elemento(teste_vetor)
cat("O maior elemento do vetor ?:", resultado, "\n")
## O maior elemento do vetor ?: 20