Exercícios necessários para a confecção do projeto

Exercício 1

O que vem a ser um algoritmo?

R: Um algoritmo é um conjunto finito de diretrizes que descrevem como executar uma tarefa.

Exercício 2

Segundo o livro da referência, quais são as etapas para a construção de um algoritmo?

R: a)Coompreender completamente o problema a ser resolvido, destacandoos pontos mais importantes e os objetos que o compõe.

b)Definir os dados de entrada, ou seja, quais dados foram fornecidos e quais objetos fazem parte desse cenario problema.

c)Definir o processamento, ou seja, quais cálculos serão efetuados e quais restrições para esses calculos. O processamento é responsável pela transformação dos dados de entrada em dados de saída. Além disso, deve-se verificar quais objetos são responsáveis pelas atividades.

d)Definir os dados de saída, ou seja, quais dados serão gerados depois do processamento.

e)Construir o algoritmoutilizando um dos tipos descritos na próxima sação.

f)Testar o algoritmo utilizando simulações.

Exercício 3

Quais são os passos para a construção de um algoritmo?

#Para a construção de um algorítmo é necessário definir o tipo de processamento e os dados de entrata e saída

Exercício 4

Faça um algoritmo, apresentado cada passo, para ao seguinte problema. um homem precisa atravessar um rio com um barco que possui capacidade somente para carregar ele mesmo e mais uma de suas três cargas, que são um lobo, uma cabra e um repolho. O que o homem deve fazer para conseguir atravessar o rio sem perder suas cargas? Escreva os passos necessários mostrando a resposta, ou seja, indicando todas as ações necessárias para efetuar uma travessia segura.

# atravessar o rio com a ovelha
# voltar sozinho
# atravessar com o repolho 
# voltar com a ovelha
# atravessar com o lobo
# voltar sozinho
# atravessar com a ovelha
# fim da travessia

Exercício 5

Faça um algoritmo, apresentado cada passo, para ao seguinte problema: três jesuítas e três canibais precisam atravessar um rio; para tal dispõem de um barco com capacidade para duas pessoas. Por medidas de segurança, não se deve permitir que em alguma margem a quantidade de jesuítas seja inferior a de canibais. Qual a solução para efetuar a travessia com segurança? Elabore os passos de forma a mostrar a resposta, indicando as ações que concretizam a resolução deste problema.

# atravessar o rio com dois canibais
# voltar sozinho
# atravessar com 1 jesuita
# voltar com o 2 canibais
# atravessar com 2 jesuitas
# voltar sozinho
# atravessar com dois canibais
# voltar sozinho
# atravessar com 1 canibal
# fim da travessia

Exercício 6

Criar três variáveis que contenham números e apresentar o resultado da soma das combinações dois a dois destes três números. Por exemplo, se forem lidos A, B e C, mostrar A + B, A + C, B + C.

A <- 1
B <- 2
C <- 3

A+B
## [1] 3
A+C
## [1] 4
B+C
## [1] 5

Exercício 7

Faça um programa em RStudio para criar 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

x <- a
a <- b
b <- x

a - b
## [1] -2
a + b
## [1] 14

Exercício 8

Faça um programa em RStudio para converter uma temperatura de Fahrenheit para Centígrados. C = (F - 32) * ( 5 / 9 ).

Fa <- 50
(Fa - 32) * (5/9)
## [1] 10

Exercício 9

Faça um programa em RStudio que crie uma variável X e calcule: X <- 3 a) X³ - 4

3 ^ 3 - 4
## [1] 23
  1. O resto da divisão de X / 3
3%%3
## [1] 0
  1. XB + 2
3^(3/3) + 2
## [1] 5
  1. Raiz quadrada de X2
sqrt (3*3)
## [1] 3

Exercício 10

Faça um programa em RStudio que crie 11 variáveis com os valores abaixo, calcule a soma e mostre-a no final. Ex. lista de números: 3, 5, 7, 4, 3, 2, 1, 9, 12, 15, 9 | Soma dos números = 70. Agora calcule a média desses números | Média = 70 / 11 = 6,3636.``

x1 <- 2
x2 <- 4
x3 <- 6
x4 <- 8
x5 <- 10
x6 <- 12
x7 <- 14
x8 <- 16
x9 <- 18
x10 <- 20
x11 <- 22

soma <- (x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11)
soma
## [1] 132
x1 <- 2
x2 <- 4
x3 <- 6
x4 <- 8
x5 <- 10
x6 <- 12
x7 <- 14
x8 <- 16
x9 <- 18
x10 <- 20
x11 <- 22

media <- (x1+x2+x3+x4+x5+x6+x7+x8+x9+x10+x11)/11
media
## [1] 12

Exercício 11

Faça um programa em RStudio que calcule o fatorial de um número.

factorial(4)
## [1] 24

Exercício 12

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:4, nrow = 2, ncol = 2, byrow = TRUE)

Exercício 13

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

mat <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)

Exercício 14

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 de formas diferentes (textos e números, por exemplo). 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(mat)

Exercício 15

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 “13)”.
soma <- 0

for(i in 1:4){
  soma <- soma + mat[i,2]
  }

media <- soma/i

media
## [1] 8
  1. A média de todas as colunas da matriz do exercício “13)”.
soma <- 0
for(j in 1:4){
  for(i in 1:4){
  media <- soma + mat[j,i]
  }
  print(media)
}
## [1] 4
## [1] 8
## [1] 12
## [1] 16
  1. A média de todas as linhas da matriz do exercício “13)”.
for(i in 1:4){
  soma <- 0
  for(j in 1:4){
  soma <- soma + mat[i,j]
  }
media <- soma/j
print(media)
}
## [1] 2.5
## [1] 6.5
## [1] 10.5
## [1] 14.5
  1. A média dos números pares de todas as colunas da matriz do exercício “13)”.
for(coluna in 1:4){
  soma <- 0
  contador <- 0
  for(linha in 1:4){
    if(mat[linha,coluna]%%2 == 0){
      soma <- soma + mat[linha,coluna]
      contador <- contador + 1
    }
  }
  if(contador != 0){
    media <- soma/contador
  cat("a média da coluna", coluna, "é", media, "\n")
  } else {
    cat("não existe número par na coluna", coluna, "\n")
  }
}
## não existe número par na coluna 1 
## a média da coluna 2 é 8 
## não existe número par na coluna 3 
## a média da coluna 4 é 10
  1. A média dos números ímpares de todas as linhas da matriz do exercício “13)”.
for(coluna in 1:4){
  contador <- 0
  soma <- 0
  for(linha in 1:4){
    if(mat[coluna,linha]%%2 != 0){
      soma <- soma + mat[coluna,linha]
      contador <- contador + 1
    }
  }
  if(contador != 0){
    media <- soma/contador
  cat("a média da linha", linha, "é", media, "\n")
  } else {
    cat("não existe número impar na linha", linha, "\n")
  }
}
## a média da linha 4 é 2 
## a média da linha 4 é 6 
## a média da linha 4 é 10 
## a média da linha 4 é 14
  1. A soma da diagonal principal da matriz.
soma <- 0
for(coluna in 1:4){
  for(linha in 1:4){
    if(linha == coluna){
      soma <- soma + mat[linha,coluna]
    }
  }
}
  cat("a soma da diagonal principal", linha, "é", soma, "\n")
## a soma da diagonal principal 4 é 34
  1. A soma da diagonal secundária da matriz (desafio).
soma_coluna_secundaria <- (mat[linha,coluna])
soma
## [1] 34

Exercício 16

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

  1. média de uma coluna do data.frame do exercício 14
matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)

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){
      soma_coluna <- soma_coluna + df[linha, coluna]
    }
  }
}
media_coluna <- soma_coluna/dim(df)[1]

media_coluna
## [1] 8
  1. A média de todas as colunas do data.frame do exercício “14)”.
v_soma_colunas <- rep(0,dim(df)[1])

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] 28 32 36 40
media_colunas <- v_soma_colunas/linha
media_colunas
## [1]  7  8  9 10
  1. A média de todas as linhas da matriz do exercício “14)”.
v_soma_linhas <- rep(0,4) 

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
  1. A média dos números pares de todas as colunas da matriz do exercício “14)”.
v_soma_npar_colunas <- rep(0,4) 

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
  1. A média dos números ímpares de todas as linhas da matriz do exercício “14)”.
v_soma_nimpar_linhas <- rep(0,4) 
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
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
  1. 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
  1. A soma da diagonal secundária da matriz (desafio).
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

Exercício 17

Faça um programa em RStudio que crie uma matriz VALOR 6x6 e calcule a soma de cada uma das linhas da matriz. Os valores das somas calculadas devem ser armazenados em um vetor RESULTADO de tamanho 6. Ao final do programa o vetor deve ser impresso.

mt <- matrix(data = 1:36, nrow = 6, ncol = 6, byrow = TRUE)
RESULTADO <- rowSums(mt)
print(RESULTADO)
## [1]  21  57  93 129 165 201

Exercício 18

Faça um programa em RStudio que crie um data.frame D 5x5 e calcule a média dos valores armazenados na diagonal principal e a soma dos valores armazenados na diagonal secundária.

df <- as.data.frame(matrix(data = 1:25, nrow = 5, ncol = 5, byrow = TRUE))

dfaa1.1 <- 1

dfaa2.2 <- 7

dfaa3.3 <- 13

dfaa4.4 <- 19

dfaa5.5 <- 25

soma <-  dfaa1.1 + dfaa2.2 + dfaa3.3 + dfaa4.4 + dfaa5.5 
media <- soma/5
media
## [1] 13
dfaa5.5 <- 5
dfaa4.4 <- 9
dfaa3.2 <- 13
dfaa2.1 <- 17
dfaa1.4 <- 21

soma3<- dfaa5.5 + dfaa4.4 + dfaa3.2 + dfaa2.1 + dfaa1.4
soma
## [1] 65

Exercício 19

Faça um programa em RStudio que crie um data.frame D 4x4, que contenha números entre 0 e 100, e calcule e imprima:

  1. A média dos valores pares armazenados no data.frame
set.seed(123)

D <- data.frame(matrix(sample(0:100, 16, replace = TRUE), nrow = 4))

colnames(D) <- c("A", "B", "C", "D")
media
## [1] 13
  1. A quantidade de elementos com valor maior que 50;
media_pares <- mean(D[D%%2 == 0])
media_pares
## [1] 63.09091
  1. A média dos valores ímpares menores que 30 armazenados no data.frame;
maiores_50 <- sum(D > 50)
maiores_50
## [1] 8
  1. A soma dos valores das colunas ímpares.
media_impares <- mean(D[D%%2!=0&D<30])
media_impares
## [1] 13
  1. O maior e o menor valor armazenado.
maior_valor <- max(D)
maior_valor
## [1] 100
menor_valor <- min(D)
menor_valor
## [1] 13

Exercício 20

Faça um programa em RStudio que com base no salário de um funcionário (criado por vocês), calcule e mostre o seu salário a receber, sabendo-se que esse funcionário tem gratificação de 5% sobre seu salário base e paga 10% de imposto sobre o salário base.

# salario base é o salario sobre o qual iremos calcular os valores de gratificação e impostos
salario_base <- 3000

# gratificação é 5% do valor do salario base
grat <- salario_base * 0.05

imposto <- salario_base * 0.1

# imposto 10% do salario base
salario <- salario_base + grat * imposto

salario
## [1] 48000

Exercício 21

Faça um programa em RStudio para calcular o salário mensal final de um vendedor. As seguintes informações determinam esse valor:

salario_base <- 3000
vendas <- 25000
percentual_vendas <- 0.05 * vendas
irpf <- salario_base * 0.075
inss <- (salario_base + percentual_vendas) * 0.11

salario <- salario_base + percentual_vendas - irpf - inss
salario
## [1] 3557.5
cat("BILHETE DE PAGAMENTO \n,      ",
  "_________________________________________________",  "\n",
  "Salario base                    ", salario_base, "\n",
  "Gratificação de vendas          ", percentual_vendas, "\n",
  "Imposto de Renda                ", irpf, "\n", 
  "INSS                            ", inss, "\n",
  "________________________________"
)
## BILHETE DE PAGAMENTO 
## ,       _________________________________________________ 
##  Salario base                     3000 
##  Gratificação de vendas           1250 
##  Imposto de Renda                 225 
##  INSS                             467.5 
##  ________________________________

Exercício 22

Faça um programa em RStudio para efetuar a estimativa da quantidade de litros de cervejaconsumida por um determinado bloco durante o carnaval. Outras informações: • o bloco tem 1000 pessoas; • cada pessoa consome em média 3 latões; • considerar que uma caixa de cerveja tem 12 latões; • sabe-se que cada latão tem 473 ml e que 1 litro tem 1000 ml; • considerar que o carnaval são quatro dias; Qual a quantidade de caixas de cerveja consumidas durante um dia? E durante os cinco dias? Supondo que cada caixa custa R$ 42,00 e é vendida a R$ 84,00 (R$ 7,00 cada lata), informar o consumo em litros do bloco e o lucro auferido.

n_pessoas <- 1000
media_consumo <- 3
latoes_por_caixa <- 12
ml_por_latao <- 473
ml_por_litro <- 1000
dias_carnaval <- 5
preco_custo_caixa <- 42
preco_venda_caixa <- 84
litros_total <- n_pessoas * media_consumo * ml_por_latao / ml_por_litro * dias_carnaval
litros_total
## [1] 7095
caixas_por_dia <- (n_pessoas * media_consumo) / latoes_por_caixa
caixas_por_dia
## [1] 250
caixas_cinco_dias <- caixas_por_dia * dias_carnaval
caixas_cinco_dias
## [1] 1250
lucro_por_caixa <- preco_venda_caixa - preco_custo_caixa
lucro_por_caixa
## [1] 42
lucro_total <- lucro_por_caixa * caixas_cinco_dias
lucro_total
## [1] 52500

Exercício 23

Dois times de futebol fizeram uma disputa entre eles e jogaram 10 partidas. Os resultados de cada jogo foram armazenados em uma matriz JOGO 10x2, onde cada linha representa um jogo e cada coluna um time. Faça um programa em RStudio que calcule a média de gols realizados por cada time.

jogo <- matrix(data = c(4,3,2,1,1,1,5,4,3,2,1,2,1,2,1,2,1,2,1,2), ncol = 2)

soma_fla <- 0
soma_flu <- 0
for(i in 1:10){
  soma_flu <- soma_flu + jogo[i,2]
  soma_fla <- soma_fla + jogo[i,1]
}
media_fla <- soma_fla/10
media_flu <- soma_flu/10

cat("A média de gols do Fla foi", media_fla, "\n")
## A média de gols do Fla foi 2.6
cat("A média de gols do Flu foi", media_flu, "\n")
## A média de gols do Flu foi 1.5