###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
x %% 3
## [1] 2
cat("o resto da divisão de x / 3 =", x %% 3)
## o resto da divisão de x / 3 = 2
x^3 -4
## [1] 4
cat("x3- 4 = ", x^3 -4)
## x3- 4 = 4
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
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
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
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
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
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
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:
A média dos valores pares armazenados no data.frame;
A quantidade de elementos com valor maior que 50;
A média dos valores ímpares menores que 30 armazenados no data.frame;
A soma dos valores das colunas ímpares.
O maior e o menor valor armazenado.
salario_base <- 3000
grat <- salario_base * 0.05
imposto <- salario_base * 0.1
salario <- salario_base + grat - imposto
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
# 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
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