Este espaço é para o desenvolvimento do projeto de algoritmos.
vamos começar a desenvolver os exercícios.
O que vem a ser um algoritmo?
RESPOSTA:
#É um conjunto de comandos, instruções e regras, ou seja, uma sequência finita de ações excutaveis. O algoritimo é uma sequencia de comandos e condições que devem ser sequidas para chegar ao aobjtivo esperado.
Segundo o livro da referência, quais são as etapas para a construção de um algoritmo?
RESPOSTA:
#Segundo o livro, fundamentos da programação de computadores, 2ª ediçao (2007), os autores descrevem as seguintes etepas pata a construção de um algoritimo
# 1 Compreender completamente o problemas a ser resolvido, destacando os pontos mais importantes e os objetivos que o compôem.
# 2 Definir os dados de entreda, ou seja, quais dados serão fornecidos e quais objetos fazer parte desse cenário-problema.
# 3 Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos. O processamento é responsável pelas atividades.
# 4 Definir os dados de saída, ou seja, quais dados serão gerados depois do processamento.
# 5 Construir o algoritmo utilizandos: Descrição narrativa; Fluxograma; pseudocódigo
# 6 Testar o algoritmo realizando simulações
Quais são os passos para a construção de um algoritmo?
RESPOSTA:
# Entender e definir o cenario-problema, ajustando aos seus objtivos; Definir as regras e atividades do processamento e como esses dados sairam; Defina o tipo de código que irá usar e construa o conjutos de comando e instruções de sua olgoritmo; Faça um perido de homologação testando os possiveis cenarios.
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.
RESPOSTA:
# O homem deve pegar a cabra
# O homem deve caminhar até o barco com a cabra
# O homem deve suavemente colocar a cabra no barco
# O homem deve pegar o remo
# O hoeme deve subir no barco com cuidado
# O homem deve alternar as remadas para enquerda e para direita
# O homem deve remar até chegar a outra margem do rio
# O homem deve sair do Barco
# O hoeme deve pegar a cabra do barco
# O homem deve deixar a cabra a 5 metros da margem do rio
# O hoeme deve retornar ao barco
# O homem deve subir no barco
# O homem deve alternar as remadas para enquerda e para direira
# O homem deve remar até retorna a outra margem do rio
# O homem deve sair do Barco
# O homem deve caminhar até o repolho
# O homem deve pegar o repolho
# O homem deve caminhar até o barco com o repolho
# O homem deve suavemente colocar o repolho no barco
# O homem deve pegar o remo
# O hoeme deve subir no barco com cuidado
# O homem deve alternar as remadas para enquerda e para direita
# O homem deve remar até chegar a outra margem do rio
# O homem deve sair do Barco
# O hoeme deve pegar o repolho do barco
# O homem deve deixar o repolho a 5 metros da margem do rio
# O homem deve pegar a cabra
# O hoeme deve retornar ao barco com a cabara
# O homem deve suavemente colocar a cabra no barco
# O homem deve pegar o remo
# O hoeme deve subir no barco com cuidado
# O homem deve alternar as remadas para enquerda e para direita
# O homem deve remar até chegar a outra margem do rio
# O homem deve sair do Barco
# O hoeme deve pegar a cabra do barco
# O homem deve deixar a cabra no local de origem
# O homem deve pegar o lobo
# O homem deve caminhar até o barco com o lobo
# O homem deve suavemente colocar o lobo no barco
# O homem deve pegar o remo
# O hoeme deve subir no barco com cuidado
# O homem deve alternar as remadas para enquerda e para direita
# O homem deve remar até chegar a outra margem do rio
# O homem deve sair do Barco
# O hoeme deve pegar o lobo do barco
# O homem deve deixar o lobo a 5 metros da margem do rio
# O homem deve retornar ao barco
# O homem deve subir no barco
# O homem deve alternar as remadas para enquerda e para direira
# O homem deve remar até retorna a outra margem do rio
# O homem deve sair do Barco
# O homem deve pegar a cabra
# O homem deve caminhar até o barco com a cabra
# O homem deve suavemente colocar a cabra no barco
# O homem deve pegar o remo
# O hoeme deve subir no barco com cuidado
# O homem deve alternar as remadas para enquerda e para direita
# O homem deve remar até chegar a outra margem do rio
# O homem deve sair do Barco
# O homem deve pegar a cabra do barco
# O homem deve caminhar com a cabra até o repolho e o lobo
# O homem deve seguir viagem com suas mercadorias
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:
# Deve atravessar um jesuíta e um canibal no barco
# Deve ficar um jesuíta
# Deve voltar um canibal no barco
# Deve atravessar dois canibais no barco
# Deve ficar um canibal
# Deve voltar um canibal no barco
# Deve atravessar um jesuíta e um canibal
# Deve ficar um jesuíta
# Deve voltar um canibal
# Deve atravessar dois canibais
# Deve ficar um canibal
# Deve voltar um canibal
# Deve atravessar um jesuíta e um canibal
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 <- 2
b <- 3
c <- 4
resultado1 <- a + b
resultado2 <- a + c
resultado3 <- b + c
print(resultado1)
## [1] 5
print(resultado2)
## [1] 6
print(resultado3)
## [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.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
a <- 6
b <- 8
temp <- a
a <- b
b <- temp
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 ).
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
fahrenheit <- 68
celsius <- (fahrenheit - 32) * (5/9)
print(celsius)
## [1] 20
Faça um programa em RStudio que crie uma variável X e calcule: a) X3 - 4 b) O resto da divisão de X / 3 c) XB + 2 d) Raiz quadrada de X2
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
x <- 5
b <- 2
resultado1 <- x^3 - 4
resultado2 <- x %% 3
resultado3 <- x * b + 2
resultado4 <- sqrt(x^2)
print(resultado1)
## [1] 121
print(resultado2)
## [1] 2
print(resultado3)
## [1] 12
print(resultado4)
## [1] 5
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.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
# Criar as 11 variáveis com os valores fornecidos
var1 <- 3
var2 <- 5
var3 <- 7
var4 <- 4
var5 <- 3
var6 <- 2
var7 <- 1
var8 <- 9
var9 <- 12
var10 <- 15
var11 <- 9
# Calcular a soma das 11 variáveis
soma <- var1 + var2 + var3 + var4 + var5 + var6 + var7 + var8 + var9 + var10 + var11
# Calcular a média das 11 variáveis
media <- soma / 11
# Mostrar a soma e a média
cat("Soma dos números =", soma, "\n")
## Soma dos números = 70
cat("Média dos números =", media)
## Média dos números = 6.363636
Faça um programa em RStudio que calcule o fatorial de um número.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
# crio uma variável para armazenar o valor do fatorial, e atribuo o valor 1 a ela.
mult <- 1
# Defino o numéro que você quer calcular o fatorial
x <- 5
for(i in 1:5){
mult <- mult * i
}
cat("O valor do fatorial é: ", mult)
## O valor do fatorial é: 120
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)”
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
matriz <- matrix(data = runif(16), nrow = 4, ncol = 4)
print(matriz)
## [,1] [,2] [,3] [,4]
## [1,] 0.6853768 0.3765276 0.8619273 0.4130901
## [2,] 0.8158999 0.2265139 0.4134694 0.5932285
## [3,] 0.9259614 0.9297128 0.1971382 0.7822582
## [4,] 0.1484147 0.9437086 0.6784355 0.7933113
Agora, crie uma matriz com a sequência de 1 a 16. UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
mat <- matrix(data = 1:16, nrow = 4, ncol = 4, byrow = TRUE)
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)”
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
df <- as.data.frame(mat)
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]
}
medía <- soma/i
medía
## [1] 8
for(j in 1:4){
soma <- 0
for(i in 1:4){
soma <- soma + mat[i,j]
}
medía <- soma/i
print(medía)
}
## [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]
}
medía <- soma/j
print(medía)
}
## [1] 2.5
## [1] 6.5
## [1] 10.5
## [1] 14.5
v_soma_npar_colunas <- rep(0,4) # repete 4 vezes o valor 0
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 0 0 0
v_soma_nimpar_linhas <- rep(0,4) # repete 4 vezes o valor 0
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] 2.336922 2.049112 2.835071 2.563870
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] 1.90234
# Uma dica: a soma dos índices da diagonal secundária de uma matriz é a sua dimensão mais 1.
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] 1.904687
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
Repita o exercício “15)” com os dados do data.frame do exercício “14)”.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
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){ # serão somados somente os valores da coluna 2
soma_coluna <- soma_coluna + df[linha, coluna]
}
}
}
# A média da coluna é a soma da coluna dividido pela quantidade de linhas dessa coluna
media_coluna <- soma_coluna/dim(df)[1]
media_coluna
## [1] 0.6191157
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.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
# Criando a matriz VALOR 6x6 com valores aleatórios entre 1 e 10
VALOR <- matrix(sample(1:10, 36, replace=TRUE), nrow=6, ncol=6)
# Calculando a soma de cada uma das linhas da matriz
RESULTADO <- apply(VALOR, 1, sum)
# Imprimindo o vetor RESULTADO
print(RESULTADO)
## [1] 35 36 44 29 36 47
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.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
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:
D <- data.frame(matrix(sample(0:100, 4*4, replace = TRUE), nrow = 4))
cat("Data.frame D:")
## Data.frame D:
print(D)
## X1 X2 X3 X4
## 1 15 21 20 50
## 2 86 21 21 15
## 3 8 13 1 75
## 4 54 49 56 10
valores_pares <- D[D %% 2 == 0]
media_pares <- mean(valores_pares)
cat("\nMédia dos valores pares:", media_pares, "\n")
##
## Média dos valores pares: 40.57143
maiores_que_50 <- sum(D > 50)
cat("Quantidade de elementos maiores que 50:", maiores_que_50, "\n")
## Quantidade de elementos maiores que 50: 4
valores_impares_menores_que_30 <- D[(D %% 2 != 0) & (D < 30)]
media_impares_menores_que_30 <- mean(valores_impares_menores_que_30)
cat("Média dos valores ímpares menores que 30:", media_impares_menores_que_30, "\n")
## Média dos valores ímpares menores que 30: 15.28571
A soma dos valores das colunas ímpares.
O maior e o menor valor armazenado.
maior_valor <- max(D)
menor_valor <- min(D)
cat("Maior valor:", maior_valor, "\n")
## Maior valor: 86
cat("Menor valor:", menor_valor, "\n")
## Menor valor: 1
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
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.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
# Solicitar o salário base ao usuário
salario_base <- as.numeric(readline(prompt = "Digite o salário base do funcionário: "))
## Digite o salário base do funcionário:
# Calcular a gratificação (5% do salário base)
gratificacao <- 0.05 * salario_base
# Calcular o imposto (10% do salário base)
imposto <- 0.1 * salario_base
# Calcular o salário a receber
salario_a_receber <- salario_base + gratificacao - imposto
# Exibir o salário a receber
cat("Salário a receber: R$", salario_a_receber, "\n")
## Salário a receber: R$ NA
Faça um programa em RStudio para calcular o salário mensal final de um vendedor. As seguintes informações determinam esse valor:
# Definir as informações iniciais
salario_fixo <- 3000
total_vendas <- 25000
percentual_comissao <- 0.05
percentual_irpf <- 0.075
percentual_inss <- 0.11
# Calcular o valor da comissão sobre o total de vendas
comissao <- percentual_comissao * total_vendas
# Calcular o valor do IRPF sobre o salário fixo
irpf <- percentual_irpf * salario_fixo
# Calcular o valor do INSS sobre o salário fixo mais a comissão
inss <- percentual_inss * (salario_fixo + comissao)
# Calcular o salário mensal final
salario_final <- salario_fixo + comissao - irpf - inss
# Exibir o salário mensal final
cat("Salário mensal final: R$", salario_final, "\n")
## Salário mensal final: R$ 3557.5
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.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
# Definir as informações iniciais
n_pessoas <- 1000
consumo_medio_por_pessoa <- 3
latoes_por_caixa <- 12
ml_por_latao <- 473
ml_por_litro <- 1000
dias_carnaval <- 4
# Calcular o total de latões de cerveja consumidos pelo bloco
total_latoes_consumidos <- n_pessoas * consumo_medio_por_pessoa
# Calcular o total de caixas de cerveja consumidas pelo bloco
total_caixas_consumidas <- ceiling(total_latoes_consumidos / latoes_por_caixa)
# Calcular o total de litros de cerveja consumidos pelo bloco
total_litros_consumidos <- total_caixas_consumidas * latoes_por_caixa * ml_por_latao / ml_por_litro
# Calcular a estimativa do consumo por dia
consumo_por_dia <- total_litros_consumidos / dias_carnaval
# Exibir a estimativa do consumo total e por dia
cat("Estimativa do consumo de cerveja durante o carnaval:\n")
## Estimativa do consumo de cerveja durante o carnaval:
cat("Consumo total: ", total_litros_consumidos, " litros\n")
## Consumo total: 1419 litros
cat("Consumo por dia: ", consumo_por_dia, " litros\n")
## Consumo por dia: 354.75 litros
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.
UTILIZAR O CHUNK ABAIXO PARA FEITURA DA LINGUAGEM R
# Criar a matriz JOGO com os resultados dos jogos
JOGO <- matrix(c(2, 1, 1, 3, 0, 2, 3, 2, 0, 1,
1, 2, 2, 1, 3, 1, 0, 1, 2, 1), nrow = 10, ncol = 2, byrow = TRUE)
# Calcular a média de gols realizados por cada time
media_gols_time1 <- mean(JOGO[, 1])
media_gols_time2 <- mean(JOGO[, 2])
# Exibir a média de gols realizados por cada time
cat("Média de gols realizados por cada time:\n")
## Média de gols realizados por cada time:
cat("Time 1: ", media_gols_time1, " gols por jogo\n")
## Time 1: 1.4 gols por jogo
cat("Time 2: ", media_gols_time2, " gols por jogo\n")
## Time 2: 1.5 gols por jogo