Este espaço é para o desenvolvimento do projeto de algoritmos.
vamos começar a desenvolver os exercícios.
Algorítmos são sequências finitas de dados que levam a execução e conclusão de determinada tarefa.
as etapas para a construção de um algoritmo são, respecitamente, entrada, processamento e saída.
Primeiramente determinar os dados de entrada do algoritmo. Após determinar qual é a entrada, começar a desenvolver detalhadamente quais são os procedimentos, usando apenas um verbo por comando e, por fim, realizar a saída, que é ato processar tudo que foidesenvolvido no decorrer da construção do algoritmo.
# homem pega repolho
# homem entra no barco com repolho
# homem atravessa rio com o barco
# homem sai do barco
# homem deixa repolho em terra
# homem volta para o barco
# Homem atravessa rio
# homem pega lobo
# homem entra no barco com lobo
# homem atravessa rio com o barco
# homem sai do barco
# homem deixa lobo em terra
# homem volta para o barco
# Homem atravessa rio
# homem pega cabra
# homem entra no barco com cabra
# homem atravessa rio com o barco
# homem sai do barco
# homem deixa cabra em terra
#fIM
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.
Resposta:
Informações do exercício: Três Jesuítas, Barco, Três Canibais
Ações necessárias para atravessar o rio com a devida segurança
Objetivo final: Atravessar todos os três Jesuítas e os três canibais até ao outro lado da margem do Rio.
Algoritmo
# jesuíta e canibal amarram uma corda no barco
# jesuíta e canibal entram no barco
# jesuíta e canibal atravessam rio
# jesuíta e canibal desembarcam em terra
# jusuítas e canibais puxam corda amarrada
# barco para na margem do rio
# jesuíta e canibal amarram uma corda no barco
# jesuíta e canibal entram no barco
# jesuíta e canibal atravessam rio
# jesuíta e canibal desembarcam em terra
# jusuítas e canibais puxam corda amarrada
# barco para na margem do rio
# jesuíta e canibal amarram uma corda no barco
# jesuíta e canibal entram no barco
# jesuíta e canibal atravessam rio
# jesuíta e canibal desembarcam em terra
#FIM
Criar duas 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 <- 2
B <- 3
C <- 4
Soma1 <- A + B
Soma1
## [1] 5
Soma2 <- A + C
Soma2
## [1] 6
Soma3 <- B + C
Soma3
## [1] 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 <- 6
B <- 8
trocador <- A
A <- B
B <- trocador
print(A)
## [1] 8
print(B)
## [1] 6
Faça um programa em RStudio para converter uma temperatura de Fahrenheit para Centígrados. C = (F-32) * (5 / 9).
F <- 84
C <- (F - 32)*(5/9)
C
## [1] 28.88889
x <- 2
a <- 3
b <- 3
Resposta1 <- (x ^ a - 4)
Resposta1
## [1] 4
resposta2 <- (x %% a)
resposta2
## [1] 2
resposta3 <- (x ^ b + 2)
resposta3
## [1] 10
resposta4 <- (x^2)
resposta4
## [1] 4
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
fatorial <- function(n) {
if (n == 0) {
return (1)
} else {
resultado <- 1
for (i in 1:n) {
resultado <- resultado * i
}
return (resultado)
}
}
# Testando a função com o número 9
fatorial(4)
## [1] 24
matriz <- matrix(data = 1, nrow = 4, ncol = 4, byrow = TRUE)
mat <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)
df <- as.data.frame
df <- (matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE))
soma <- 0
for(i in 1:4){soma <- soma +mat[i,2]
}
media <- soma/i
media
## [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/j
print(media)
}
## [1] 2.5
## [1] 6.5
## [1] 10.5
## [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 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
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
soma <- 0
for(coluna in 1:4){
for(linha in 1:4){
if(linha == coluna){
soma <- soma + mat[linha,coluna]
}
}
}
cat("a média diagornal principal é", soma, "\n")
## a média diagornal principal é 34
a.A média de uma coluna da matriz do exercício “14)”.
matriz <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)
df <- as.data.frame(matriz)
soma_col <- 0
for(linha in 1:dim(df)[1]){
for(coluna in 1:dim(df)[2]){
if(coluna == 2){
soma_col <- soma_col + df[linha, coluna]
}
}
}
media_col <- soma_col/dim(df)[1]
media_col
## [1] 8
valor_col <- rep(0,dim(df)[1])
for(linha in 1:dim(df)[1]){
for(coluna in 1:dim(df)[2]){
valor_col[coluna] <- valor_col[coluna] + df[linha, coluna]
}
}
valor_col
## [1] 28 32 36 40
c.A média de todas as linhas da matriz do exercício “14)”.
valor_lin <- rep(0,4)
for(linha in 1:4){
for(coluna in 1:4){
valor_lin[linha] <- valor_lin[linha] + matriz[linha, coluna]
}
}
valor_lin
## [1] 10 26 42 58
d.A média dos números pares de todas as colunas da matriz do exercício “14)”.
valor_col_par <- rep(0,4)
for(linha in 1:4){
for(coluna in 1:4){
if(matriz[linha, coluna]%%2 == 0){
valor_col_par[coluna] <- valor_col_par[coluna] + matriz[linha, coluna]}
}
}
valor_col_par
## [1] 0 32 0 40
e.A média dos números ímpares de todas as linhas da matriz do exercício “14)”.
valor_lim_imp <- rep(0,4)
cont <- rep(0,4)
for(linha in 1:4){
for(coluna in 1:4){
if(matriz[linha, coluna]%%2 != 0){
valor_lim_imp[linha] <- valor_lim_imp[linha] + matriz[linha, coluna]
cont[linha] <- cont[linha] +1}
}
}
valor_lim_imp
## [1] 4 12 20 28
soma_diag <- 0
for(linha in 1:4){
for(coluna in 1:4){
if(linha == coluna){
soma_diag <- soma_diag + matriz[linha, coluna]}
}
}
soma_diag
## [1] 34
soma_diagSEC <- 0
for(linha in 1:4){
for(coluna in 1:4){
if((linha + coluna) == 5){
soma_diagSEC <- soma_diagSEC + matriz[linha, coluna]}
}
}
soma_diagSEC
## [1] 34
VALOR <- matrix(data = 1:36, nrow = 6, ncol = 6, byrow = TRUE)
RESULTADO <- rowSums(VALOR)
print(RESULTADO)
## [1] 21 57 93 129 165 201
df <- as.data.frame(matrix(data = 1:25, nrow = 5, ncol = 5, byrow = TRUE))
df1.1 <- 1
df2.2 <- 7
df3.3 <- 13
df4.4 <- 19
df5.5 <- 25
SOMA <- df1.1 + df2.2 + df3.3 + df4.4 + df5.5
MEDIA <- SOMA/5
MEDIA
## [1] 13
df5.5 <- 5
df4.4 <- 9
df3.2 <- 13
df2.1 <- 17
df1.4 <- 21
SOMA3<- df5.5 + df4.4 + df3.2 + df2.1 + df1.4
SOMA3
## [1] 65
set.seed(123)
D <- data.frame(matrix(sample(0:100, 16, replace = TRUE), nrow = 4))
colnames(D) <- c("A", "B", "C", "D")
#
med_par <- mean(D[D %% 2 == 0])
maior_50 <- sum(D > 50)
med_imp <- mean(D[D %% 2 != 0 & D < 30])
colunas_imp <- sum(D[, c(TRUE, FALSE)])
maior_val <- max(D)
menor_val <- min(D)
cat("Média dos valores pares: ", med_par, "\n")
## Média dos valores pares: 63.09091
cat("elementos maiores que 50: ", maior_50, "\n")
## elementos maiores que 50: 8
cat("Média dos ímpares menores que 30: ", med_imp, "\n")
## Média dos ímpares menores que 30: 13
cat("Soma dos das colunas ímpares: ", colunas_imp, "\n")
## Soma dos das colunas ímpares: 397
cat("Maior valor armazenado: ", maior_val, "\n")
## Maior valor armazenado: 100
# salario base é o salario sobre qual iremos calcular os de gratifiocação e impsotos
salario_base <- 800
# gratificação é 5% do valor do salário base
grat <- salario_base * 0.05
# imposto é 10% do salário base
imposto <- salario_base * 0.1
salario <- salario_base + grat -imposto
salario
## [1] 760
salario_fixo <- 3000
total_vendas <- 25000
perc_vendas <- total_vendas * 0.05
IRPF <- salario_fixo * 0.075
INSS <- (salario_fixo + perc_vendas)* 0.11
salario <- salario_fixo + perc_vendas - IRPF - INSS
salario
## [1] 3557.5
cat( "BILHETE DE PAGAMENTO \n",
"--------------------------------------", "\n",
"salario base ", salario_fixo,"\n",
"percentual de vendas" , perc_vendas,"\n",
"imposto de renda " , IRPF, "\n",
"INSS " , INSS, "\n",
"--------------------------------------", "\n",
"liquido a receber " , salario
)
## BILHETE DE PAGAMENTO
## --------------------------------------
## salario base 3000
## percentual de vendas 1250
## imposto de renda 225
## INSS 467.5
## --------------------------------------
## liquido a receber 3557.5
n_pessoas <- 1000
media_consumo <- 3
latoes_caixa <- 12
ml_latao <- 473
ml_litro <- 1000
carnaval_dias <- 5
custo_caixa <- 42
venda_caixa <- 84
# consumo total em litros
litros_total <- n_pessoas * media_consumo * ml_latao / ml_litro * carnaval_dias
# caixas de cerveja consumidas em um dia
caixas_dia <- (n_pessoas * media_consumo) / latoes_caixa
# Calcular a quantidade de caixas de cerveja consumidas em cinco dias
caixas_dias <- caixas_dia * carnaval_dias
# lucro auferido
lucro_caixa <- venda_caixa - custo_caixa
lucro_total <- lucro_caixa * caixas_dias
# Imprimir resultados
cat("Quantidade de caixas de cerveja consumidas por dia:", round(caixas_dias, 2), "\n")
## Quantidade de caixas de cerveja consumidas por dia: 1250
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