###1. O que vem a ser um algoritmo?

##conjunto de operações, uma sequência de ações, que tem como objetivo solucionar um determinado problema.

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

##primeiro passo é entender o problema que o algoritmo deve resolver. É importante entender os problema para criar um algoritmo correto.

##é preciso definir quais serão os dados de entrada e saída do algoritmo. É importante definir os tipos de dados, como eles serão fornecidos e exibidos.

##Identificar os passos: A próxima etapa é identificar os passos necessários para resolver o problema. É importante criar uma lista clara de passos que o algoritmo deve seguir para atingir o resultado esperado.

##Após identificar os passos, é preciso organizar a sequência dos mesmos em uma ordem lógica e coerente, levando em consideração a eficiência do algoritmo.

##Após criar o algoritmo, é importante testá-lo para garantir que ele resolva o problema de maneira correta e eficiente. Caso necessário, é preciso fazer ajustes no algoritmo para melhorar seu desempenho.

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

##necessário definir o tipo de processamento e os dados de entrata e saída.

###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.

#1ª ação: atravessar com a cabra.
#2ª ação: volta sozinho.
#3ª ação: pegar o lobo.
#4ª ação: atravessar com o lobo.
#5ª ação: deixar o lobo.
#6ª ação: atravessar de volta com a cabra.
#7ª ação: deixar a cabra.
#8ª ação: pegar o repolho.
#9ª ação: atravessar o rio com o repolho.
#10ª ação: deixar o repolho na outra margem com o lobo.
#11ª ação: atravessar o rio sozinho.
#12ª ação: pegar a cabra.
#13ª ação: atravessar o rio com a cabra.

###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 um jesuíta e um canibal 
##voltar um canibal 
##atravessar dois canibais 
##voltar um canibal 
##atravessar um jesuíta e um canibal 
##voltar um canibal 
##atravessar dois canibais 
##voltar um canibal 
##atravessar um jesuíta e um canibal

###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 <- 10
B <- 35
C <- 20

A + B
## [1] 45
B + C
## [1] 55

###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.

cat("Entrada, \n")
## Entrada,
a <- 6
b <- 8

cat("Saída, \n")
## Saída,
b <- 6
a <- 8

print(b)
## [1] 6
print(a)
## [1] 8

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

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

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

###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. Repita o exercício com um vetor armazenando os valores.

x1 <- 3
x2 <- 5
x3 <- 7
x4 <- 4
x5 <- 3
x6 <- 2
x7 <- 1
x8 <- 9
x9 <- 12
x10 <- 15
x11 <- 9

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

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

mult <- 1

x <- 5

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

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

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

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

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

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

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

###15. 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 “13)”.

soma <- 0

for (i in 1:4) {
  soma <-soma + mat[1,2]
  }
soma
## [1] 8
  1. A média de todas as colunas da matriz do exercício “13)”.
for (j in 1:4){
  soma <- 0
for (i in 1:4){
  soma<- soma + mat[i,j]
}
media <-soma/i
print(media)
}
## [1] 7
## [1] 8
## [1] 9
## [1] 10
  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/i
  print(media)
}
## [1] 10
## [1] 13
## [1] 14
## [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 media da coluna ", coluna, " é ", media, "\n")
}else {
  cat("não existe numero par na coluna ", coluna, "\n")
}
}
## não existe numero par na coluna  1 
## a media da coluna  2  é  8 
## não existe numero par na coluna  3 
## a media da coluna  4  é  10
  1. A média dos números ímpares de todas as linhas da matriz do exercício “13)”.
for(linha in 1:4){
     soma <- 0
     contador <- 0
    for(coluna 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 media da linha ", linha, " é ", media, "\n")
}else {
  cat("não existe numero impar na linha ", linha, "\n")
  }
}
## a media da linha  1  é  2 
## a media da linha  2  é  6 
## a media da linha  3  é  10 
## a media 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 media da diagonal principal é ", soma, "\n")
## a media da diagonal principal é  34
  1. A soma da diagonal secundária da matriz (desafio).
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] 34

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

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

df <- as.data.frame(matriz)

###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.

# Criando uma matriz VALOR 6x6 com números aleatórios entre 1 e 10

VALOR <- matrix(data = 1:36, nrow = 6, ncol = 6, byrow = TRUE)

# Calculando a soma de cada uma das linhas e armazenando em um vetor RESULTADO

RESULTADO <- rowSums(VALOR)

# Imprimindo o vetor RESULTADO

print(RESULTADO)
## [1]  21  57  93 129 165 201

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

# MÉDIA DOS VALORES ARMAZENADOS NA DIAGONAL PRINCIPAL

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

# VALORES ARMAZENADOS NA DIAGONAL SECUNDÁRIA

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

###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;

  2. A quantidade de elementos com valor maior que 50;

  3. A média dos valores ímpares menores que 30 armazenados no data.frame;

  4. A soma dos valores das colunas ímpares.

  5. O maior e o menor valor armazenado.

  1. 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 <- 3000

grat <- salario_base * 0.05

imposto <- salario_base * 0.1

salario <- salario_base + grat - imposto
  1. Faça um programa em RStudio para calcular o salário mensal final de um vendedor. As seguintes informações determinam esse valor:
  1. salário fixo: R$ 3.000,00
  2. total de vendas por ele efetuadas: R$ 25.000,00
  3. percentual que ele recebe sobre o total de vendas (5%)
  4. IRPF de 7,5% sobre o salário fixo
  5. INSS de 11% sobre o salário fixo mais a comissão de vendas
salario_fixo <- 3000
tot_vendas <- 25000
grat_vendas <- tot_vendas* 0.05
irpf <- salario_fixo * 0.075
inss <- (salario_fixo + grat_vendas)* 0.11

salario <- salario_fixo + grat_vendas - irpf - inss
salario
## [1] 3557.5
cat(" BILHETE DE PAGAMENTO \n",
  "---------------------------------------", "\n",
  "Salario base           ", salario_fixo, "\n",
  "Gratificação de Vendas ", grat_vendas, "\n",
  "Imposto de Renda       ", irpf, "\n",
  "INSS                   ", inss, "\n",
  "---------------------------------------", "\n",
  "Líquido a receber      ", salario
)
##  BILHETE DE PAGAMENTO 
##  --------------------------------------- 
##  Salario base            3000 
##  Gratificação de Vendas  1250 
##  Imposto de Renda        225 
##  INSS                    467.5 
##  --------------------------------------- 
##  Líquido a receber       3557.5
  1. Faça um programa em RStudio para efetuar a estimativa da quantidade de litros de cerveja consumida 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 o consumo em litros do bloco e o lucro auferido.
# Definindo variáveis

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


# Calcular o consumo total em litros

litros_total <- n_pessoas * media_consumo * ml_por_latao / ml_por_litro * dias_carnaval


# Calcular a quantidade de caixas de cerveja consumidas em um dia

caixas_por_dia <- (n_pessoas * media_consumo) / latoes_por_caixa


# Calcular a quantidade de caixas de cerveja consumidas em cinco dias

caixas_cinco_dias <- caixas_por_dia * dias_carnaval


# Calcular o lucro auferido

lucro_por_caixa <- preco_venda_caixa - preco_custo_caixa

lucro_total <- lucro_por_caixa * caixas_cinco_dias


# Imprimir resultados

cat("Quantidade de caixas de cerveja consumidas por dia:", round(caixas_por_dia, 2), "\n")
## Quantidade de caixas de cerveja consumidas por dia: 250
cat("Quantidade de caixas de cerveja consumidas em cinco dias:", round(caixas_cinco_dias, 2), "\n")
## Quantidade de caixas de cerveja consumidas em cinco dias: 1250
cat("Consumo total de cerveja em litros:", round(litros_total, 2), "\n")
## Consumo total de cerveja em litros: 7095
cat("Lucro auferido em cinco dias:", round(lucro_total, 2))
## Lucro auferido em cinco dias: 52500
  1. 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,2,2,3,5,2,1,3,2,1,1,1,1,1,1,1,1,1,1,1), 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.5
cat("A média de gols do Flu foi ", media_flu, "\n")
## A média de gols do Flu foi  1