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? Preste atenção à ordem lógica da execução das tarefas; Lembre-se de que ele deve ter um início e fim; Ele deve ser completo; Deve ter um alto nível de detalhes; Cada tarefa é uma instrução, assim, defina-a bem.

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] 0.75

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) X3 - 4

3 * 3 - 4
## [1] 5

B: O resto da divisão de X / 3

C: XB + 2

D: 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: A: 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

B: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

C: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

D: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

E: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

F: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

G:A soma da diagonal secundária da matriz (desafio).

for(linha in 1:4){
  soma <- 0
    for(coluna in 1:4){
    if(coluna != linha){
      soma <- soma + mat[linha,coluna]
    }
  }
}
  cat("a soma da diagonal principal", coluna, "é", soma, "\n")
## a soma da diagonal principal 4 é 42

Exercício 16

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

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 vetorRESULTADO 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

Exercício 18

Faça um programa em RStudio que crie um data.frame D 5x5 e calcule a média dos valoresarmazenados 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

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: a) 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")
  1. A quantidade de elementos com valor maior que 50;
media_pares <- mean(D[D %% 2 == 0])
  1. A média dos valores ímpares menores que 30 armazenados no data.frame;
maiores_50 <- sum(D > 50)
  1. A soma dos valores das colunas ímpares.
media_impares <- mean(D[D %% 2 != 0 & D < 30])
  1. O maior e o menor valor armazenado.
maior_valor <- max(D)
menor_valor <- min(D)

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
salario_fixo <-3000 
tot_vendas <- 25000
grat_vendas <- tot_vendas * 0.05
irpf <- salario_fixo * 0.075
inss <- salario_fixo + grat_vendas - irpf - inss

cat( " BILHETE DE PAGAMENTO \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                             3557.5 
##  ____________________________________________ 
##   Líquido a Receber               3557.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.

# 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

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