Centro Universitário Celso Lisboa

Professor: Adriano Lauro

Alunos: Arthur - Jocelio

Disciplina: Análise de Dados

Aula de Programação - Celso Lisboa

1 Exercícios Resolvidos As listas 1 e 2 irão apresentar exercícios resolvidos de programação básica, com atenção à utilização dos comandos de repetição (loops) e decisão (if). Esses problemas podem ser resolvidos de formas muito mais simples utilizando os recursos do R, mas como dito, a finalidade é a prática de comandos de repetição e decisão.As listas 3 e 4 conterão os exercícios das listas 1 e 2 resolvidos com os recursos do R, de forma muito mais simples.

1.1 Lista 1 Esta lista de exercíos foi planejada para a prática dos comandos de operações básicas, de loop, e de decisão. Existem outras formas mais simples de realizar os mesmos procedimentos que não serão abordadas nesta lista.

1.1.1 Exercício

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. Atribuindo valores às variáveis:

a <- 2
b <- 3
c <- 4
a
## [1] 2
b
## [1] 3
c
## [1] 4
a + b
## [1] 5
a + c
## [1] 6
b + c
## [1] 7

1.1.2 Exercício

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.

rm(list=ls())

A <- 6
B <- 8
cat("A e B são ", A, " e " , B)
## A e B são  6  e  8
Aux <- 0

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

cat("A e B são ", A, " e " , B)
## A e B são  8  e  6

1.1.3 Exercício

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

temperatura <- 38

graus_celsius <- (temperatura - 32) * (5/9)

cat("A temperatura equivalente é", graus_celsius)
## A temperatura equivalente é 3.333333
cat("A temperatura equivalente é ", (temperatura - 32) * (5/9))
## A temperatura equivalente é  3.333333

1.1.4 Exercício

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

# O valor da variável x é 2:
x <- 2

# a) X3 - 4
x^3 -4
## [1] 4
# cat("a) X3 - 4 = ", x^3 - 4)
cat("a) X3 - 4 = ", x^3 -4)
## a) X3 - 4 =  4
# b) O resto da divisão de X / 3
x %% 3
## [1] 2
#cat("O resto da divisão de X / 3 = ", x % 3)
cat("O resto da divisão de X / 3 = ", x %% 3)
## O resto da divisão de X / 3 =  2
# c) X(x/3) + 2
x^3 -4
## [1] 4
# cat("X3 - 4 = ", x^3 -4)
cat("X3 - 4 = ", x^3 -4)
## X3 - 4 =  4
# d) Raiz quadrada de X2
sqrt(x^2)
## [1] 2
# cat("X3 - 4 = ", sqrt(x^2))
cat("X3 - 4 = ", sqrt(x^2))
## X3 - 4 =  2

1.1.5 Exercício

  1. Elabore um algoritmo que:
  1. Crie um vetor com uma sequência de 10 números.
  2. Faça um loop para calcular a soma dos números do vetor.
  3. Utilize o comando “vetor <- c(1:10)” para criar o vetor.
  4. Utilize o comando “for( i in 1:10) { …comandos}” para realizar a soma.
  5. 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.
# a)    Crie um vetor com uma sequência de 10 números.
# Estes comandos são similares:
# vetor <- 1:10, ou vetor <- c(1:10), ou vetor <- seq(1,10), ou 
# vetor <- c(1,2,3,4,5,6,7,8,9,10)
vetor <- c(1:10)
cat("vetor = ",vetor)
## vetor =  1 2 3 4 5 6 7 8 9 10
# b)    Faça um loop para calcular a soma dos números do vetor. 
# crio uma variável para guardar a soma o coloco o valor zero nela
soma <- 0
cat("soma = ", soma)
## soma =  0
# criando o loop
for(i in 1:10){
  soma <- soma + vetor[i]
}

# apresento o valor da soma
soma
## [1] 55
cat("O valor da soma é: ", soma)
## O valor da soma é:  55

1.1.6 Exercício

  1. A partir do exercício anterior, faça a média dos valores contidos no vetor.
# Média é a soma dividido pela quantidade de observações, ou seja, 10.
# O "i" utilizado no comando "for" guarda a quantidade de observações
# Veja o valor de i:
cat("i = ",i, "\n")
## i =  10
# Logo a média é igual a soma/i
cat("A média é: ", soma/i)
## A média é:  5.5

1.1.7 Exercício

  1. 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”.
  1. A sintaxe do comando de comparação é: if (x > y) {comandos…} else {comandos}
  2. O comando print(“texto ou variável”) imprime a resposta na tela.
# Criando as variáveis x e y
x <- 3
y <- 5
if(x > y){
  print("x é maior que y")
}else{
  print("x é menor que y")
}
## [1] "x é menor que y"

1.1.8 Exercício 8. 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.

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

1.1.9 Exercício

  1. A partir do exercício “5)”, faça a soma somente dos números pares.
  1. 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”.
  2. Utilize o comando de decisão “if” para saber se o número é par ou ímpar.
vetor <- c(1:10)

# crio uma variável para guardar a soma e coloco o valor zero nela
soma_pares <- 0

# criando o loop
for(i in 1:10){
  if(i%%2 == 0){ # somo somente se o resto da divisão de i/2 for zero
    soma_pares <- soma_pares + vetor[i]}
}

# apresento o valor da soma
cat("O valor da soma dos pares é: ", soma_pares)
## O valor da soma dos pares é:  30

1.1.10 Exercício

  1. Faça um algoritmo que calcule e imprima o fatorial de um número inteiro.
# crio uma variável para armazenar o valor do fatorial, e atribuo o valor 1 a ela.
mult <- 1

# Defino o numéro que você quer calcular o fatorial
x <- 5

for(i in 1:5){
  mult <- mult * i
}

cat("O valor do fatorial é: ", mult)
## O valor do fatorial é:  120

1.1.11 Exercício

  1. Crie uma matriz 4x4.
  1. Uma matriz no R comporta somente um tipo de dado (número, texto ou boleano).
  2. O comando para criar a matriz é “x <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE)”
matriz <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE)
matriz
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    1    1    1    1
## [3,]    1    1    1    1
## [4,]    1    1    1    1

1.1.12 Exercício

  1. Agora, crie uma matriz com a sequência de 1 a 16.
matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)
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

1.1.13 Exercício

  1. Transforme essa matriz em um data.frame
  1. Um data.frame é uma estrutura de dados similar a matriz que pode conter dados diferentes em suas variáveis.
  2. Lembre-se que também chamamos as colunas de variáveis e as linhas de registros.
  3. 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.
  4. Utilize o comando “df <- as.data.frame(x)”
df <- as.data.frame(matriz)
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

1.1.14 Exercício

  1. Utilizando os comandos de repetição e decisão (se for necessário), calcule:
  1. a média de uma coluna da matriz do exercício “12)”.
  2. A média de todas as colunas da matriz do exercício “12)”.
  3. A média de todas as linhas da matriz do exercício “12)”.
  4. A média dos números pares de todas as colunas da matriz do exercício “12)”.
  5. A média dos números ímpares de todas as linhas da matriz do exercício “12)”.
  6. A soma da diagonal principal da matriz.
  7. A soma da diagonal secundária da matriz (desafio).
# Introdução:

# A matriz do ex 12
matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE) 

# Para visitarmos todos os valores de uma matriz, precisamos fazer 2 loops, um dentro do outro. Para isso, utilizaremos 2 comandos "for"
# Veja o exemplo para uma matriz 4 x 4
for(linha in 1:4){
  for(coluna in 1:4){
    cat(matriz[linha, coluna], " ")
  }
}
## 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16
# Repare que para a primeira linha, visitamos as 4 colunas, por isso os números estão ordenados
# Esse comando pode ser modificado, iniciando-se pelas colunas e percorrendo todas as linhas, basta mudar as posições dos comandos "for". Veja:
for(coluna in 1:4){
  for(linha in 1:4){
    cat(matriz[linha, coluna], " ")
  }
}
## 1  5  9  13  2  6  10  14  3  7  11  15  4  8  12  16
# a)    a média de uma coluna da matriz do exercício “12)”.
# média da coluna 2
soma_coluna <- 0

for(linha in 1:4){
  for(coluna in 1:4){
    if(coluna == 2){ # serão somados somente os valores da coluna 2
      soma_coluna <- soma_coluna + matriz[linha, coluna]
    }
  }
}

# A média da coluna é a soma da coluna dividido pela quantidade de linhas dessa coluna
media_coluna <- soma_coluna/linha
media_coluna
## [1] 8
# b)    A média de todas as colunas da matriz do exercício “12)”.
# vamos criar um vetor do tamanho da quantidade de colunas, 4
v_soma_colunas <- rep(0,4) # repete 4 vezes o valor 0

for(linha in 1:4){
  for(coluna in 1:4){
    v_soma_colunas[coluna] <- v_soma_colunas[coluna] + matriz[linha, coluna]
  }
}

v_soma_colunas
## [1] 28 32 36 40
media_colunas <- v_soma_colunas/linha
media_colunas
## [1]  7  8  9 10
# c)    A média de todas as linhas da matriz do exercício “12)”.
# Neste caso, é só dividir o vetor anterior pelo quantidade de linhas

v_soma_linhas <- rep(0,4) # repete 4 vezes o valor 0

for(linha in 1:4){
  for(coluna in 1:4){
    v_soma_linhas[linha] <- v_soma_linhas[linha] + matriz[linha, coluna]
  }
}

v_soma_linhas
## [1] 10 26 42 58
media_linhas <- v_soma_linhas/coluna
media_linhas
## [1]  2.5  6.5 10.5 14.5
# d)    A média dos números pares de todas as colunas da matriz do exercício “12)”.
v_soma_npar_colunas <- rep(0,4) # repete 4 vezes o valor 0

for(linha in 1:4){
  for(coluna in 1:4){
    if(matriz[linha, coluna]%%2 == 0){
      v_soma_npar_colunas[coluna] <- v_soma_npar_colunas[coluna] + matriz[linha, coluna]}
  }
}

v_soma_npar_colunas
## [1]  0 32  0 40
media_npar_colunas <- v_soma_npar_colunas/linha
media_npar_colunas
## [1]  0  8  0 10
# e)    A média dos números ímpares de todas as linhas da matriz do exercício “12)”.
v_soma_nimpar_linhas <- rep(0,4) # repete 4 vezes o valor 0
cont <- rep(0,4)

for(linha in 1:4){
  for(coluna in 1:4){
    if(matriz[linha, coluna]%%2 != 0){
      v_soma_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha] + matriz[linha, coluna]
      cont[linha] <- cont[linha] +1}
  }
}

v_soma_nimpar_linhas
## [1]  4 12 20 28
cont
## [1] 2 2 2 2
media_nimpar_linhas <- rep(0,4)

for(linha in 1:dim(matriz)[1]){
  if(cont[linha] != 0){
    media_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha]/cont[linha]}
  else{
    media_nimpar_linhas[linha] <- 0
  }
}

media_nimpar_linhas
## [1]  2  6 10 14
# f)    A soma da diagonal principal da matriz.
soma_diagonal <- 0

for(linha in 1:4){
  for(coluna in 1:4){
    if(linha == coluna){
      soma_diagonal <- soma_diagonal + matriz[linha, coluna]}
  }
}

soma_diagonal
## [1] 34
# g)    A soma da diagonal secundária da matriz (desafio).
# Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1.
soma_diagonal_secundaria <- 0

for(linha in 1:4){
  for(coluna in 1:4){
    if((linha + coluna) == 5){
      soma_diagonal_secundaria <- soma_diagonal_secundaria + matriz[linha, coluna]}
  }
}

soma_diagonal_secundaria
## [1] 34

Este exercício pode ser refeito de forma genérica alterando-se as dimensões da matriz . veja.

# As dimensões de uma matriz podem ser vistas com o comando dim(matriz)
dim(matriz)
## [1] 4 4
# O resultado deste comando é um vetor de 2 posições, onde a primeira posição é a quantidade de linhas da matriz e a segunda posição é a quantidade de colunas da matriz. Por isso, para saber a quantidade de linhas, utilizamos o comando dim(matriz)[1]
dim(matriz)[1]
## [1] 4
# Para quantidade de coluna utilizamos o dim(matiz)[2]
dim(matriz)[2]
## [1] 4
# Para entendermos melhor, vamos mudar as dimensões da matriz para 6x6
matriz <- matrix(data = 1:36, nrow = 6, ncol = 6, byrow = TRUE) 
# a)    a média de uma coluna da matriz do exercício “12)”.
# média da coluna 2
soma_coluna <- 0

for(linha in 1:dim(matriz)[1]){
  for(coluna in 1:dim(matriz)[2]){
    if(coluna == 2){ # serão somados somente os valores da coluna 2
      soma_coluna <- soma_coluna + matriz[linha, coluna]
    }
  }
}

# A média da coluna é a soma da coluna dividido pela quantidade de linhas dessa coluna
media_coluna <- soma_coluna/dim(matriz)[1]
media_coluna
## [1] 17
# b)    A média de todas as colunas da matriz do exercício “12)”.
# vamos criar um vetor do tamanho da quantidade de colunas, 4
v_soma_colunas <- rep(0,dim(matriz)[1]) # repete 4 vezes o valor 0

for(linha in 1:dim(matriz)[1]){
  for(coluna in 1:dim(matriz)[2]){
    v_soma_colunas[coluna] <- v_soma_colunas[coluna] + matriz[linha, coluna]
  }
}

v_soma_colunas
## [1]  96 102 108 114 120 126
# c)    A média de todas as linhas da matriz do exercício “12)”.
# Neste caso, é só dividir o vetor anterior pelo quantidade de for(coluna in 1:dim(matriz)[2]){if(cont[coluna] != 0){media_npar_colunas[coluna]<-v_soma_npar_colunas[coluna]/cont[coluna]}else{media_npar_colunas[coluna] <- 0}}

media_npar_colunas
## [1]  0  8  0 10
# d)    A média dos números pares de todas as colunas da matriz do exercício “12)”.
v_soma_npar_colunas <- rep(0,dim(matriz)[2]) # repete 4 vezes o valor 0
cont <- rep(0,dim(matriz)[2]) # contador para quantidade de vezer que surge o número par

for(linha in 1:dim(matriz)[1]){
  for(coluna in 1:dim(matriz)[2]){
    if(matriz[linha, coluna]%%2 == 0){
      v_soma_npar_colunas[coluna] <- v_soma_npar_colunas[coluna] + matriz[linha, coluna]
      cont[coluna] <- cont[coluna] + 1}
  }
}

v_soma_npar_colunas
## [1]   0 102   0 114   0 126
cont
## [1] 0 6 0 6 0 6
for(coluna in 1:dim(matriz)[2]){
  if(cont[coluna] != 0){
    media_npar_colunas[coluna] <- v_soma_npar_colunas[coluna]/cont[coluna]}
  else{
    media_npar_colunas[coluna] <- 0
  }
}

media_npar_colunas
## [1]  0 17  0 19  0 21
# e)    A média dos números ímpares de todas as linhas da matriz do exercício “12)”.
v_soma_nimpar_linhas <- rep(0,dim(matriz)[1]) # repete 4 vezes o valor 0
cont <- rep(0,dim(matriz)[1])

for(linha in 1:dim(matriz)[1]){
  for(coluna in 1:dim(matriz)[2]){
    if(matriz[linha, coluna]%%2 != 0){
      v_soma_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha] + matriz[linha, coluna]
      cont[linha] <- cont[linha] +1}
  }
}

v_soma_nimpar_linhas
## [1]  9 27 45 63 81 99
cont
## [1] 3 3 3 3 3 3
media_nimpar_linhas <- rep(0,dim(matriz)[1])

for(linha in 1:dim(matriz)[1]){
  if(cont[linha] != 0){
    media_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha]/cont[linha]}
  else{
    media_nimpar_linhas[linha] <- 0
  }
}

media_nimpar_linhas
## [1]  3  9 15 21 27 33
# f)    A soma da diagonal principal da matriz.
soma_diagonal <- 0

for(linha in 1:dim(matriz)[1]){
  for(coluna in 1:dim(matriz)[2]){
    if(linha == coluna){
      soma_diagonal <- soma_diagonal + matriz[linha, coluna]}
  }
}

soma_diagonal
## [1] 111
# g)    A soma da diagonal secundária da matriz (desafio).
# Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1.
soma_diagonal_secundaria <- 0

for(linha in 1:dim(matriz)[1]){
  for(coluna in 1:dim(matriz)[2]){
    if((linha + coluna) == 1+dim(matriz)[1]){
      soma_diagonal_secundaria <- soma_diagonal_secundaria + matriz[linha, coluna]}
  }
}

soma_diagonal_secundaria
## [1] 111

1.1.15 Exercício

15. Repita o exercício “14)” com os dados do data.frame do exercício “13)”.

df <- as.data.frame(matriz)

soma_coluna <- 0

for(linha in 1:dim(df)[1]){
  for(coluna in 1:dim(df)[2]){
    if(coluna == 2){ # serão somados somente os valores da coluna 2
      soma_coluna <- soma_coluna + df[linha, coluna]
    }
  }
}

# A média da coluna é a soma da coluna dividido pela quantidade de linhas dessa coluna
media_coluna <- soma_coluna/dim(df)[1]
media_coluna
## [1] 17
# b)    A média de todas as colunas da matriz do exercício “12)”.
# vamos criar um vetor do tamanho da quantidade de colunas, 4
v_soma_colunas <- rep(0,dim(df)[1]) # repete 4 vezes o valor 0

for(linha in 1:dim(df)[1]){
  for(coluna in 1:dim(df)[2]){
    v_soma_colunas[coluna] <- v_soma_colunas[coluna] + df[linha, coluna]
  }
}

v_soma_colunas
## [1]  96 102 108 114 120 126
# c)    A média de todas as linhas da matriz do exercício “12)”.
# Neste caso, é só dividir o vetor anterior pelo quantidade de linhas

media_colunas <- v_soma_colunas/dim(df)[1]
media_colunas
## [1] 16 17 18 19 20 21
## [1] 16 17 18 19 20 21
# d)    A média dos números pares de todas as colunas da matriz do exercício “12)”.
v_soma_npar_colunas <- rep(0,dim(df)[2]) # repete 4 vezes o valor 0

for(linha in 1:dim(df)[1]){
  for(coluna in 1:dim(df)[2]){
    if(df[linha, coluna]%%2 == 0){
      v_soma_npar_colunas[coluna] <- v_soma_npar_colunas[coluna] + df[linha, coluna]}
  }
}

v_soma_npar_colunas
## [1]   0 102   0 114   0 126
media_npar_colunas <- v_soma_npar_colunas/dim(df)[1]
media_npar_colunas
## [1]  0 17  0 19  0 21
# e)    A média dos números ímpares de todas as linhas da matriz do exercício “12)”.
v_soma_nimpar_linhas <- rep(0,dim(df)[2]) # repete 4 vezes o valor 0

for(linha in 1:dim(df)[1]){
  for(coluna in 1:dim(df)[2]){
    if(matriz[linha, coluna]%%2 != 0){
      v_soma_nimpar_linhas[linha] <- v_soma_nimpar_linhas[linha] + df[linha, coluna]}
  }
}

v_soma_nimpar_linhas
## [1]  9 27 45 63 81 99
media_nimpar_linha <- v_soma_nimpar_linhas[linha]/dim(df)[2]
media_nimpar_linha
## [1] 16.5
# f)    A soma da diagonal principal da matriz.
soma_diagonal <- 0

for(linha in 1:dim(df)[1]){
  for(coluna in 1:dim(df)[2]){
    if(linha == coluna){
      soma_diagonal <- soma_diagonal + df[linha, coluna]}
  }
}

soma_diagonal
## [1] 111
# g)    A soma da diagonal secundária da matriz (desafio).
# Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1.
soma_diagonal_secundaria <- 0

for(linha in 1:dim(df)[1]){for(coluna in 1:dim(df)[2]){if((linha + coluna) == 1+dim(df)[1]){soma_diagonal_secundaria <-soma_diagonal_secundaria + df[linha, coluna]}}} 

soma_diagonal_secundaria
## [1] 111

Lista 1.2 - Lista 2

1.2.1 Exercício

Calcular o salário mensal final de um vendedor. As seguintes informações determinam esse valor: a) salário fixo – R$ 5000,00 b) total de vendas por ele efetuadas – R$ 20.000,00 c) percentual que ele recebe sobre o total de vendas – 5% d) INSS de 11% sobre o salário fixo. e) IR de 27% sobre o total de rendimentos.

#Ex 1 - Rev2
sal_fixo <- 5000
tot_vendas <- 20000
perc_vendas <- 0.05
perc_inss <- 0.11
perc_irpf <- 0.27

comissao <- perc_vendas * tot_vendas
comissao
## [1] 1000
val_inss <- perc_inss * sal_fixo
val_inss
## [1] 550
tot_rend <- sal_fixo + comissao - val_inss
tot_rend
## [1] 5450
val_irpf <- tot_rend * perc_irpf
val_irpf
## [1] 1471.5
sal <- tot_rend - val_irpf
sal
## [1] 3978.5

Imprimindo um Bilhete de pagamento

cat("\n\n Bilhete de Pagamento", "\n")
## 
## 
##  Bilhete de Pagamento
cat("Salario fixo     ", sal_fixo, "\n",
"Comissão         ", comissao, "\n",
"___________________________", "\n",
"Desconto INSS    ", val_inss, "\n",
"Desconto IRPF    ", val_irpf, "\n",
"___________________________", "\n",
"Líquido a receber", sal, "\n")
## Salario fixo      5000 
##  Comissão          1000 
##  ___________________________ 
##  Desconto INSS     550 
##  Desconto IRPF     1471.5 
##  ___________________________ 
##  Líquido a receber 3978.5

1.2.2 Exercício

Repita o Exercício 1) calculando o salário mensal da seguinte lista abaixo.

# Criando os dados
df <- data.frame(
  NOME = paste("VENDEDOR", 1:7),
  Salario_Base = c(1800, 2500, 2500, 3000, 3500, 4000, 5000),
  Vendas = c(20000, 30000, 25000, 15000, 27000, 30000, 32000)
)

# Adicionando coluna da alíquota IRPF
df$Aliq_IRPF <- 0

for(linha in 1:nrow(df)) {
  salario <- df$Salario_Base[linha]
  
  if (salario > 4664.68) {
    df$Aliq_IRPF[linha] <- 0.275
  } else if (salario > 3751.05) {
    df$Aliq_IRPF[linha] <- 0.225
  } else if (salario > 2826.65) {
    df$Aliq_IRPF[linha] <- 0.15
  } else if (salario > 1903.98) {
    df$Aliq_IRPF[linha] <- 0.075
  } else {
    df$Aliq_IRPF[linha] <- 0
  }
}

# Calculando o IRPF
df$IRPF <- df$Aliq_IRPF * df$Salario_Base

# Calculando o INSS (11%)
df$INSS <- df$Salario_Base * 0.11

# Calculando a comissão (5% sobre as vendas)
df$Comissao <- df$Vendas * 0.05

# Calculando o salário líquido
df$Sal_Liquido <- df$Salario_Base + df$Comissao - df$INSS - df$IRPF

# Mostrando resultado final
df
##         NOME Salario_Base Vendas Aliq_IRPF   IRPF INSS Comissao Sal_Liquido
## 1 VENDEDOR 1         1800  20000     0.000    0.0  198     1000      2602.0
## 2 VENDEDOR 2         2500  30000     0.075  187.5  275     1500      3537.5
## 3 VENDEDOR 3         2500  25000     0.075  187.5  275     1250      3287.5
## 4 VENDEDOR 4         3000  15000     0.150  450.0  330      750      2970.0
## 5 VENDEDOR 5         3500  27000     0.150  525.0  385     1350      3940.0
## 6 VENDEDOR 6         4000  30000     0.225  900.0  440     1500      4160.0
## 7 VENDEDOR 7         5000  32000     0.275 1375.0  550     1600      4675.0

1.2.3 Exercício

Elabore um programa para efetuar o cálculo da quantidade de garrafas e de engradados de cerveja consumida por um determinado bloco durante o carnaval, considerando que 5000 foliões bebem cerca de 2 litros durante o desfile do bloco.

Outras informações:

• considerar que um engradado de cerveja tem 24 garrafas de 600 ml. • Cada garrafa custa R$ 8,00, e que o engradado custa R$ 180,00. Qual será o lucro do comerciante considerando que: a) Ele compre as garrafas avulsas e venda cada garrafa a R$ 15,00. b) Ele compre o engradado e venda cada garrafa a R$ 15,00 (ele não pode comprar fração do engradado – arredonde para menos). c) Ele venda o copo de 500 ml a R$ 15,00 – cada copo plástico sai a R$ 0,20.

Faça uma função para o lucro.

Resolvendo a função para o lucro.

# Função para calcular lucro
lucro <- function(receitas, despesas){
  return (receitas - despesas)
}

# Definindo variáveis básicas
folioes <- 5000
consumo_por_foliao_litros <- 2
consumo_total_ml <- folioes * consumo_por_foliao_litros * 1000  # em ml

# Garrafas e engradado
ml_por_garrafa <- 600
garrafas_por_engradado <- 24
ml_por_engradado <- ml_por_garrafa * garrafas_por_engradado

custo_garrafa <- 8
custo_engradado <- 180
preco_venda_garrafa <- 15

# -------------------------
# Letra (a): Compra garrafas avulsas e vende por R$15
# -------------------------
garrafas_necessarias <- consumo_total_ml / ml_por_garrafa
receita_a <- garrafas_necessarias * preco_venda_garrafa
despesa_a <- garrafas_necessarias * custo_garrafa
lucro_a <- lucro(receita_a, despesa_a)

paste("Lucro (a) - Garrafas avulsas: R$", round(lucro_a, 2))
## [1] "Lucro (a) - Garrafas avulsas: R$ 116666.67"
# -------------------------
# Letra (b): Compra engradado e vende as garrafas
# -------------------------
engradados_necessarios <- floor(consumo_total_ml / ml_por_engradado)  # inteiro
garrafas_disponiveis_b <- engradados_necessarios * garrafas_por_engradado
receita_b <- garrafas_disponiveis_b * preco_venda_garrafa
despesa_b <- engradados_necessarios * custo_engradado
lucro_b <- lucro(receita_b, despesa_b)

paste("Lucro (b) - Engradado fechado: R$", round(lucro_b, 2))
## [1] "Lucro (b) - Engradado fechado: R$ 124920"
# -------------------------
# Letra (c): Venda do copo de 500 ml
# -------------------------
ml_por_copo <- 500
preco_venda_copo <- 15
custo_copo_plastico <- 0.20

copos_necessarios <- consumo_total_ml / ml_por_copo
receita_c <- copos_necessarios * preco_venda_copo

# Custo da cerveja por copo: proporcional ao preço da garrafa
custo_cerveja_por_copo <- (ml_por_copo / ml_por_garrafa) * custo_garrafa
custo_total_por_copo <- custo_cerveja_por_copo + custo_copo_plastico

despesa_c <- copos_necessarios * custo_total_por_copo
lucro_c <- lucro(receita_c, despesa_c)

paste("Lucro (c) - Venda do copo: R$", round(lucro_c, 2))
## [1] "Lucro (c) - Venda do copo: R$ 162666.67"

1.2.4 Exercício

Elabore um data.frame com as seguintesNome_Aluno Diciplina_1 Diciplina_2 Diciplina_3

Aluno 1 3 10 7 Aluno 2 4 9 8 Aluno 3 5 8 9 Aluno 4 6 7 10 Aluno 5 7 6 7 Aluno 6 8 5 8 Aluno 7 9 4 9 Faça funções para calcular: a) A média de cada aluno (CR) b) A média de cada disciplina. c) A média final da turma. d) O aluno com média mais alta. e) A lista de alunos reprovados, por disciplina.

Respostas a) A média de cada aluno (CR) informações:

# Criando o data.frame
df <- data.frame(
  Nome_Aluno = paste("Aluno", 1:7),
  Diciplina_1 = c(3, 4, 5, 6, 7, 8, 9),
  Diciplina_2 = c(10, 9, 8, 7, 6, 5, 4),
  Diciplina_3 = c(7, 8, 9, 10, 7, 8, 9)
)

# a) Média de cada aluno (CR)
Media_Aluno <- function(n1, n2, n3) {
  return(round((n1 + n2 + n3) / 3, 2))
}

df$Media_Aluno <- mapply(Media_Aluno, df$Diciplina_1, df$Diciplina_2, df$Diciplina_3)

# b) Média de cada disciplina
Media_Disciplina <- function(df, coluna) {
  return(round(mean(df[[coluna]]), 2))
}

media_d1 <- Media_Disciplina(df, "Diciplina_1")
media_d2 <- Media_Disciplina(df, "Diciplina_2")
media_d3 <- Media_Disciplina(df, "Diciplina_3")

# c) Média final da turma (média das médias dos alunos)
Media_Turma <- function(df) {
  return(round(mean(df$Media_Aluno), 2))
}

media_turma <- Media_Turma(df)

# d) Aluno com maior média
Maior_Media <- function(df) {
  idx <- which.max(df$Media_Aluno)
  return(df$Nome_Aluno[idx])
}

aluno_maior_media <- Maior_Media(df)
media_maior_aluno <- max(df$Media_Aluno)

# e) Lista de alunos reprovados por disciplina (nota < 5 em qualquer disciplina)
df$Condicao <- ifelse(
  df$Diciplina_1 < 5 | df$Diciplina_2 < 5 | df$Diciplina_3 < 5,
  "Reprovado", "Aprovado"
)

# Exibindo resultados
df
##   Nome_Aluno Diciplina_1 Diciplina_2 Diciplina_3 Media_Aluno  Condicao
## 1    Aluno 1           3          10           7        6.67 Reprovado
## 2    Aluno 2           4           9           8        7.00 Reprovado
## 3    Aluno 3           5           8           9        7.33  Aprovado
## 4    Aluno 4           6           7          10        7.67  Aprovado
## 5    Aluno 5           7           6           7        6.67  Aprovado
## 6    Aluno 6           8           5           8        7.00  Aprovado
## 7    Aluno 7           9           4           9        7.33 Reprovado

#1.3 Lista 3 ###1.3.1 Exercício

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. Atribuindo valores às variáveis:

# Atribuindo valores às variáveis
a <- 2
b <- 3
c <- 4

# Somando as combinações dois a dois
soma_ab <- a + b
soma_ac <- a + c
soma_bc <- b + c

# Exibindo os resultados
soma_ab  # A + B
## [1] 5
soma_ac  # A + C
## [1] 6
soma_bc  # B + C
## [1] 7

#1.3.2 Exercício ###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.

# Limpando o ambiente
rm(list = ls())

# Atribuindo valores iniciais
A <- 6
B <- 8

# Variável auxiliar
Aux <- A
A <- B
B <- Aux

# Exibindo o resultado
cat("A e B são", A, "e", B)
## A e B são 8 e 6

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

# Limpando o ambiente
rm(list = ls())

# Temperatura em Fahrenheit
temperatura <- 38

# Conversão
graus_celsius <- (temperatura - 32) * (5 / 9)

# Exibindo o resultado
cat("A temperatura equivalente é", graus_celsius)
## A temperatura equivalente é 3.333333

1.3.4 Exercício

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

# Limpando o ambiente
rm(list = ls())

# Definindo a variável
x <- 2

# a) x³ - 4
resultado_a <- x^3 - 4
cat("a) x^3 - 4 =", resultado_a, "\n")
## a) x^3 - 4 = 4
# b) Resto da divisão de x por 3
resultado_b <- x %% 3
cat("b) Resto de x %% 3 =", resultado_b, "\n")
## b) Resto de x %% 3 = 2
# c) x(x/3) + 2
resultado_c <- x * (x / 3) + 2
cat("c) x * (x / 3) + 2 =", resultado_c, "\n")
## c) x * (x / 3) + 2 = 3.333333
# d) Raiz quadrada de x²
resultado_d <- sqrt(x^2)
cat("d) Raiz quadrada de x^2 =", resultado_d)
## d) Raiz quadrada de x^2 = 2

1.3.5 Exercício

Elabore um algoritmo que:

Crie um vetor com uma sequência de 10 números. Faça um loop para calcular a soma dos números do vetor. Utilize o comando “vetor <- c(1:10)” para criar o vetor. Utilize o comando “for( i in 1:10) { …comandos}” para realizar a soma. 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.

# Limpando o ambiente
rm(list = ls())

# a) Criando o vetor com sequência de 10 números
vetor <- c(1:10)

# b) Inicializando a variável de soma
soma <- 0

# c) Loop para somar os números do vetor
for(i in 1:10){
  soma <- soma + vetor[i]
}

# d) Exibindo o resultado
cat("A soma dos números do vetor é:", soma)
## A soma dos números do vetor é: 55

1.3.6 Exercício

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

# Limpando o ambiente
rm(list = ls())

# Criando o vetor com os 10 números
vetor <- c(1:10)

# Calculando a média
media <- mean(vetor)

# Exibindo a média
cat("A média dos valores do vetor é:", media)
## A média dos valores do vetor é: 5.5

1.3.7 Exercício

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 sintaxe do comando de comparação é: if (x > y) {comandos…} else {comandos} O comando print(“texto ou variável”) imprime a resposta na tela.

x <- 3
y <- 5
if(x > y){
  print("x é maior que y")
}else{
  print("y é maior que x")
}
## [1] "y é maior que x"
# Não há alteração na solução da lista 1
# Criando as variáveis x e y
x <- 3
y <- 5
if(x > y){
  print("x é maior que y")
}else{
  print("x é menor que y")
}
## [1] "x é menor que y"

#1.3.8 Exercício ###Repita o exercício “7)” realizando os seguintes ajustes: Substitua o sinal de maior (“>”) pelo de menor ou igual (“<=”) e ajuste dos dizeres da resposta.

x <- 3
y <- 5

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

#1.3.9 Exercício ###A partir do exercício “5)”, faça a soma somente dos números pares.

vetor <- c(1:10)                   # Cria o vetor de 1 a 10

pares <- vetor[vetor %% 2 == 0]   # Seleciona só os números pares (divisíveis por 2)

soma_pares <- sum(pares)           # Soma dos números pares

print(soma_pares)                  # Imprime o resultado
## [1] 30

1.3.10 Exercício

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

# Definindo o número
numero <- 5

# Calculando o fatorial
resultado <- factorial(numero)

# Imprimindo o resultado
cat("O fatorial de", numero, "é", resultado)
## O fatorial de 5 é 120

1.3.11 Exercício

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)”

matriz <- matrix(
  data = 1,        # valor usado para preencher a matriz
  nrow = 4,        # número de linhas
  ncol = 4,        # número de colunas
  byrow = TRUE     # preenche linha por linha (aqui não muda muito, pois o valor é sempre 1)
)

print(matriz)
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    1    1
## [2,]    1    1    1    1
## [3,]    1    1    1    1
## [4,]    1    1    1    1

1.3.12 Exercício

Agora, crie uma matriz com a sequência de 1 a 16.

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

1.3.13 Exercício

Transforme essa matriz em um data.frame

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

1.3.14 Exercício

Utilizando os comandos de repetição e decisão (se for necessário), calcule:

  1. A média de uma coluna da matriz do exercício “12)”.
  2. A média de todas as colunas da matriz do exercício “12)”.
  3. A média de todas as linhas da matriz do exercício “12)”.
  4. A média dos números pares de todas as colunas da matriz do exercício “12)”.
  5. A média dos números ímpares de todas as linhas da matriz do exercício “12)”.
  6. A soma da diagonal principal da matriz.
  7. A soma da diagonal secundária da matriz (desafio).
## matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)
print("Matriz:")
## [1] "Matriz:"
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
## a) Média de uma coluna específica (ex: coluna 2)
media_coluna2 <- mean(matriz[,2])
cat("a) Média da coluna 2:", media_coluna2, "\n")
## a) Média da coluna 2: 8
## b) Média de todas as colunas
media_colunas <- apply(matriz, 2, mean)
cat("b) Média de todas as colunas:\n")
## b) Média de todas as colunas:
print(media_colunas)
## [1]  7  8  9 10
## c) Média de todas as linhas
media_linhas <- apply(matriz, 1, mean)
cat("c) Média de todas as linhas:\n")
## c) Média de todas as linhas:
print(media_linhas)
## [1]  2.5  6.5 10.5 14.5
## d) Média dos números pares de cada coluna
media_pares_coluna <- rep(0, ncol(matriz))
for(coluna in 1:ncol(matriz)){
  pares <- matriz[,coluna][matriz[,coluna] %% 2 == 0]
  media_pares_coluna[coluna] <- ifelse(length(pares) > 0, mean(pares), NA)
}
cat("d) Média dos números pares por coluna:\n")
## d) Média dos números pares por coluna:
print(media_pares_coluna)
## [1] NA  8 NA 10
## e) Média dos números ímpares de cada linha
media_impares_linha <- rep(0, nrow(matriz))
for(linha in 1:nrow(matriz)){
  impares <- matriz[linha,][matriz[linha,] %% 2 != 0]
  media_impares_linha[linha] <- ifelse(length(impares) > 0, mean(impares), NA)
}
cat("e) Média dos números ímpares por linha:\n")
## e) Média dos números ímpares por linha:
print(media_impares_linha)
## [1]  2  6 10 14
## f) Soma da diagonal principal
soma_diag_principal <- sum(diag(matriz))
cat("f) Soma da diagonal principal:", soma_diag_principal, "\n")
## f) Soma da diagonal principal: 34
## g) Soma da diagonal secundária
soma_diag_secundaria <- sum(matriz[cbind(1:nrow(matriz), ncol(matriz):1)])
cat("g) Soma da diagonal secundária:", soma_diag_secundaria, "\n")
## g) Soma da diagonal secundária: 34

1.4 Lista 4

1.4.1 Exercício

Calcular o salário mensal final de um vendedor. As seguintes informações determinam esse valor: a) salário fixo – R$ 5000,00 b) total de vendas por ele efetuadas – R$ 20.000,00 c) percentual que ele recebe sobre o total de vendas – 5% d) INSS de 11% sobre o salário fixo. e) IR de 27% sobre o total de rendimentos.

Não há alteração na solução da lista 2

### Cálculo do salário final

### Informações básicas
sal_fixo     <- 5000          # Salário fixo
tot_vendas   <- 20000         # Total de vendas
perc_vendas  <- 0.05          # Comissão sobre vendas (5%)
perc_inss    <- 0.11          # INSS (11%)
perc_irpf    <- 0.27          # IRPF (27%)

### Cálculo da comissão
comissao     <- perc_vendas * tot_vendas

### Cálculo do desconto do INSS
val_inss     <- perc_inss * sal_fixo

### Total de rendimentos antes do IR
tot_rend     <- sal_fixo + comissao - val_inss

### Cálculo do IRPF
val_irpf     <- tot_rend * perc_irpf

### Salário líquido final
sal          <- tot_rend - val_irpf

### Impressão do bilhete de pagamento
cat("\n\n--- Bilhete de Pagamento ---\n")
## 
## 
## --- Bilhete de Pagamento ---
cat("Salário fixo     : R$", sal_fixo, "\n")
## Salário fixo     : R$ 5000
cat("Comissão         : R$", comissao, "\n")
## Comissão         : R$ 1000
cat("-------------------------------\n")
## -------------------------------
cat("Desconto INSS    : R$", val_inss, "\n")
## Desconto INSS    : R$ 550
cat("Desconto IRPF    : R$", val_irpf, "\n")
## Desconto IRPF    : R$ 1471.5
cat("-------------------------------\n")
## -------------------------------
cat("Líquido a receber: R$", sal, "\n")
## Líquido a receber: R$ 3978.5

1.4.2 Exercício

Repita o Exercício 1) calculando o salário mensal da seguinte lista abaixo

### Limpar ambiente
rm(list=ls())

### Criar o data.frame com os dados iniciais
df <- data.frame(
  NOME = c("VENDEDOR 1", "VENDEDOR 2", "VENDEDOR 3", "VENDEDOR 4", 
           "VENDEDOR 5", "VENDEDOR 6", "VENDEDOR 7"),
  Salario_Base = c(1800, 2500, 2500, 3000, 3500, 4000, 5000),
  Vendas = c(20000, 30000, 25000, 15000, 27000, 30000, 32000)
)

### Adicionar coluna da alíquota de IRPF (Aliq_IRPF) com base no salário
df$Aliq_IRPF <- 0

### Preencher com base nas faixas salariais
df$Aliq_IRPF[df$Salario_Base > 4664.68] <- 0.275
df$Aliq_IRPF[df$Salario_Base <= 4664.68 & df$Salario_Base > 3751.05] <- 0.225
df$Aliq_IRPF[df$Salario_Base <= 3751.05 & df$Salario_Base > 2826.65] <- 0.15
df$Aliq_IRPF[df$Salario_Base <= 2826.65 & df$Salario_Base > 1903.98] <- 0.075
df$Aliq_IRPF[df$Salario_Base <= 1903.98] <- 0.0

### Calcular IRPF
df$IRPF <- df$Aliq_IRPF * df$Salario_Base

### Calcular INSS (11%)
perc_inss <- 0.11
df$INSS <- df$Salario_Base * perc_inss

### Calcular Comissão (5% sobre as vendas)
perc_comissao <- 0.05
df$Comissao <- df$Vendas * perc_comissao

### Calcular salário líquido
df$Sal_Liquido <- df$Salario_Base + df$Comissao - df$INSS - df$IRPF

### Exibir o resultado final
print(df)
##         NOME Salario_Base Vendas Aliq_IRPF   IRPF INSS Comissao Sal_Liquido
## 1 VENDEDOR 1         1800  20000     0.000    0.0  198     1000      2602.0
## 2 VENDEDOR 2         2500  30000     0.075  187.5  275     1500      3537.5
## 3 VENDEDOR 3         2500  25000     0.075  187.5  275     1250      3287.5
## 4 VENDEDOR 4         3000  15000     0.150  450.0  330      750      2970.0
## 5 VENDEDOR 5         3500  27000     0.150  525.0  385     1350      3940.0
## 6 VENDEDOR 6         4000  30000     0.225  900.0  440     1500      4160.0
## 7 VENDEDOR 7         5000  32000     0.275 1375.0  550     1600      4675.0

1.4.3 Exercício

Elabore um programa para efetuar o cálculo da quantidade de garrafas e de engradados de cerveja consumida por um determinado bloco durante o carnaval, considerando que 5000 foliões bebem cerca de 2 litros durante o desfile do bloco.

Outras informações: • considerar que um engradado de cerveja tem 24 garrafas de 600 ml. • Cada garrafa custa R$ 8,00, e que o engradado custa R$ 180,00. Qual será o lucro do comerciante considerando que: a) Ele compre as garrafas avulsas e venda cada garrafa a R$ 15,00. b) Ele compre o engradado e venda cada garrafa a R$ 15,00 (ele não pode comprar fração do engradado – arredonde para menos). c) Ele venda o copo de 500 ml a R$ 15,00 – cada copo plástico sai a R$ 0,20.

Faça uma função para o lucro.

Resolvendo a função para o lucro.

Não há alteração na solução da lista 2

## Função para calcular lucro
lucro <- function(receitas, despesas) {
  return (receitas - despesas)
}
## Definindo as variáveis
custo_garrafa_avulsa <- 8
custo_garrafa_avulsa
## [1] 8
valor_garrafa_vendida <- 15
valor_garrafa_vendida
## [1] 15
garrafas_engradado <- 24

vol_engradado <- 24 * 600
vol_engradado
## [1] 14400
### Foliões - 5000 cada um 2L;
total_consumido_ml <- 5000 * 2000
total_consumido_ml
## [1] 1e+07
## Letra A - Lucro vendendo garrafas avulsas
garrafas_vendidas <- total_consumido_ml / 600
receita_venda_garrafa <- garrafas_vendidas * 15
despesa_garrafa <- garrafas_vendidas * 8
lucro_a <- lucro(receita_venda_garrafa, despesa_garrafa)
print(paste("Se comprar as garrafas avulsas e vender cada garrafa a R$ 15,00, o lucro será de:", lucro_a))
## [1] "Se comprar as garrafas avulsas e vender cada garrafa a R$ 15,00, o lucro será de: 116666.666666667"

b. Ele compre o engradado e venda cada garrafa a R$ 15,00 (ele não pode comprar fração do engradado – arredonde para menos).

receita_por_engradado <- garrafas_engradado * 15
receita_por_engradado
## [1] 360
engradados_vendidos <-total_consumido_ml / vol_engradado 
engradados_vendidos
## [1] 694.4444
### Arredondando para baixo
engradados_vendidos <- round(engradados_vendidos,0)
engradados_vendidos
## [1] 694
receita_total_engradados <- engradados_vendidos * receita_por_engradado
receita_total_engradados
## [1] 249840
despesa_por_engradado <- 180
despesa_por_engradado
## [1] 180
despesa_total_engradado <- engradados_vendidos * despesa_por_engradado
despesa_total_engradado
## [1] 124920
lucro_b <- lucro(receita_total_engradados, despesa_total_engradado)

print(paste("Ao comprar o engradado e vender cada garrafa a R$ 15,00, o lucro será de:", lucro_b))
## [1] "Ao comprar o engradado e vender cada garrafa a R$ 15,00, o lucro será de: 124920"

c. Ele venda o copo de 500 ml a R$ 15,00 – cada copo plástico sai a R$ 0,20.

## Valor do copo vendido
valor_copo_vendido <- 15
valor_copo_vendido
## [1] 15
total_copos_vendidos <- total_consumido_ml / 500 # cada copo tem 500ml
total_copos_vendidos
## [1] 20000
receita_copos_vendidos <- total_copos_vendidos * valor_copo_vendido
receita_copos_vendidos
## [1] 3e+05
## Valor da cerveja do copo considerando a garrafa R$ 8,00
custo_cerveja_do_copo <- 500 * 8 /600
custo_cerveja_do_copo
## [1] 6.666667
custo_copo_plastico <- 0.2
custo_copo_plastico
## [1] 0.2
custo_copo_vendido <- custo_cerveja_do_copo + custo_copo_plastico
custo_copo_vendido
## [1] 6.866667
lucro_c <- lucro(receita_copos_vendidos, custo_copo_vendido)
lucro_c
## [1] 299993.1
paste("Ao vender o copo de 500 ml a R$ 15,00, o lucro será de:", lucro_c)
## [1] "Ao vender o copo de 500 ml a R$ 15,00, o lucro será de: 299993.133333333"

1.4.4 Exercício

Elabore um data.frame com as seguintes informações: Nome_Aluno Diciplina_1 Diciplina_2 Diciplina_3 Aluno 1 3 10 7 Aluno 2 4 9 8 Aluno 3 5 8 9 Aluno 4 6 7 10 Aluno 5 7 6 7 Aluno 6 8 5 8 Aluno 7 9 4 9 Faça funções para calcular: a) A média de cada aluno (CR) b) A média de cada disciplina. c) A média final da turma. d) O aluno com média mais alta. e) A lista de alunos reprovados, por disciplina.

df <- data.frame(
  Nome_Aluno = c("Aluno 1", "Aluno 2", "Aluno 3", "Aluno 4", "Aluno 5", "Aluno 6", "Aluno 7"),
  Diciplina_1 = c(3, 4, 5, 6, 7, 8, 9),
  Diciplina_2 = c(10, 9, 8, 7, 6, 5, 4),
  Diciplina_3 = c(7, 8, 9, 10, 7, 8, 9)
)
### a) Calculando a média de cada aluno (CR)
df$media_aluno <- (df$Diciplina_1 + df$Diciplina_2 + df$Diciplina_3) / 3
### b) Calculando a média de cada disciplina
media_disciplinas <- colMeans(df[, 2:4])
### c) Calculando a média final da turma
media_turma <- mean(df$media_aluno)
### d) Encontrando o aluno com a maior média
maior_media <- max(df$media_aluno)
aluno_maior_med <- df[df$media_aluno == maior_media, ]
### e) Criando a lista de alunos reprovados por disciplina
df$reprovado1 <- ifelse(df$Diciplina_1 < 6, "Reprovado", "Aprovado")
df$reprovado2 <- ifelse(df$Diciplina_2 < 6, "Reprovado", "Aprovado")
df$reprovado3 <- ifelse(df$Diciplina_3 < 6, "Reprovado", "Aprovado")
### Exibindo os resultados
print(df)
##   Nome_Aluno Diciplina_1 Diciplina_2 Diciplina_3 media_aluno reprovado1
## 1    Aluno 1           3          10           7    6.666667  Reprovado
## 2    Aluno 2           4           9           8    7.000000  Reprovado
## 3    Aluno 3           5           8           9    7.333333  Reprovado
## 4    Aluno 4           6           7          10    7.666667   Aprovado
## 5    Aluno 5           7           6           7    6.666667   Aprovado
## 6    Aluno 6           8           5           8    7.000000   Aprovado
## 7    Aluno 7           9           4           9    7.333333   Aprovado
##   reprovado2 reprovado3
## 1   Aprovado   Aprovado
## 2   Aprovado   Aprovado
## 3   Aprovado   Aprovado
## 4   Aprovado   Aprovado
## 5   Aprovado   Aprovado
## 6  Reprovado   Aprovado
## 7  Reprovado   Aprovado
print(paste("Média da turma:", round(media_turma, 2)))
## [1] "Média da turma: 7.1"
print("Média das disciplinas:")
## [1] "Média das disciplinas:"
print(media_disciplinas)
## Diciplina_1 Diciplina_2 Diciplina_3 
##    6.000000    7.000000    8.285714
print("Aluno com a maior média:")
## [1] "Aluno com a maior média:"
print(aluno_maior_med)
##   Nome_Aluno Diciplina_1 Diciplina_2 Diciplina_3 media_aluno
## 4    Aluno 4           6           7          10    7.666667