Lista 1 de Exercícios - Revisao

EXERCICIO 1

Dadas 3 variáveis com valores numéricos, apresentar o resultado da soma das combinações dois a dois destes três números. Por exemplo, variáveis A, B e C, mostrar A + B, A + C, B + C.

A <- 4
B <- 8
C <- 19

 A + B
## [1] 12
 A + C
## [1] 23
 B + C
## [1] 27

EXERCICIO 2

Definir 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

aux <- A
A <- B
B <- aux

A
## [1] 8
B
## [1] 6

EXERCICIO 3

  1. Converter uma temperatura de Fahrenheit para Centígrados. C = (F - 32) * ( 5 / 9 ).
F <- 200

C <- (F - 32) * ( 5 / 9 )
 
F
## [1] 200
C 
## [1] 93.33333

EXERCICIO 4

Escrever um algoritmo que defina um número X e calcule:

  1. X^3- 4
  2. O resto da divisão de X / 3
  3. X^(x/3) + 2
  4. Raiz quadrada de X^2
x <- 76

a <- x ^ 3 - 4
b <- x %% 3
c <- x ^ (x / 3) + 2
d <- sqrt(x^2)

a
## [1] 438972
b
## [1] 1
c
## [1] 4.438924e+47
d
## [1] 76

EXERCICIO 5

Elabore um algoritmo que: a) Crie um vetor com uma sequência de 10 números. b) Faça um loop para calcular a soma dos números do vetor. c) Utilize o comando “vetor <- c(1:10)” para criar o vetor. d) Utilize o comando “for( i in 1:10) { …comandos}” para realizar a soma. e) Referencie os valores do vetor com o comando: “vetor[i]”, onde “i” é o índice referência (número) Ex. vetor: 1,2,3,4,5,6,7,8,9,10 | Soma dos números = 55.

vetor <- c(1:10)


soma <- 0
i <- 1
for (i in 1:10) {
  soma = soma + vetor [i]
}

vetor
##  [1]  1  2  3  4  5  6  7  8  9 10
soma
## [1] 55

EXERCICIO 6

  1. A partir do exercício anterior, faça a média dos valores contidos no vetor.
media <- mean(vetor)
media
## [1] 5.5

EXERCICIO 7

  1. Crie duas variáveis, x e y. Compare se x é maior que y. Se for, imprima “x é maior que y”, se não for, imprima “y é maior que x”.
  1. A sintaxe do comando de comparação é: if (x > y) {comandos…} else {comandos}
  2. O comando print(“texto ou variável”) imprime a resposta na tela.
x <- 9
y <- 8

if (x > y){
  print("x é maior que y")
} else if (x == y){
  print("x é igual a y")
} else {
  print("x é menor que y")
}
## [1] "x é maior que y"

EXERCICIO 8

  1. Repita o exercício “7)” realizando os seguintes ajustes:
  1. Substitua o sinal de maior (“>”) pelo de menor ou igual (“<=”) e ajuste dos dizeres da resposta.
x <- 9
y <- 8

if (x <= y){
  print("x é menor ou igual a y")
} else{
  print("x é maior que y")
}
## [1] "x é maior que y"

EXERCICIO 9

  1. A partir do exercício “5)”, faça a soma somente dos números pares.
  1. Utilize o comando “%%” para identificar o resto da divisão. Ex: “5%%2”, cinco dividido por dois terá como resto “1”. Ou seja, o resultado dessa operação será “1”.
  2. Utilize o comando de decisão “if” para saber se o número é par ou ímpar
soma_pares <- 0

for (i in 1:10) {
  if ((vetor[i] %% 2) == 0) {
    soma_pares = soma_pares + vetor[i]
  }
  
}

soma_pares
## [1] 30

EXERCICIO 10

  1. Faça um algoritmo que calcule e imprima o fatorial de um número inteiro.
inte <- 6
fat <- 1

while(inte > 0){
  fat = fat * inte
  inte = inte - 1
  
}
fat
## [1] 720

EXERCICIO 11

  1. Crie uma matriz 4x4.
  1. Uma matriz no R comporta somente um tipo de dado (número, texto ou boleano).
  2. 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

EXERCICIO 12

  1. Agora, crie uma matriz com a sequência de 1 a 16.
m <- 1
for (i in (1:4)) {
  for (j in (1:4)) {
    matriz[i,j] <- m
    j <- j + 1
    m <- m + 1
  }
  i <- i + 1
}
matriz
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## [4,]   13   14   15   16

EXERCICIO 13

  1. Transforme essa matriz em um data.frame
  1. Um data.frame é uma estrutura de dados similar a matriz que pode conter dados diferentes em suas variáveis.
  2. Lembre-se que também chamamos as colunas de variáveis e as linhas de registros.
  3. Uma variável (coluna) não pode conter dados diferentes. Ou todas as linhas dessa variável são números, ou todas são texto, ou ainda, boleanos.
  4. Utilize o comando “df <- as.data.frame(x)”
matriz
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## [4,]   13   14   15   16
df <- as.data.frame(matriz)

EXERCICIO 14

  1. Utilizando os comandos de repetição e decisão (se for necessário), calcule:
  1. a média de uma coluna da matriz do exercício “12)”.
  2. A média de todas as colunas da matriz do exercício “12)”.
  3. A média de todas as linhas da matriz do exercício “12)”.
  4. A média dos números pares de todas as colunas da matriz do exercício “12)”.
  5. A média dos números ímpares de todas as linhas da matriz do exercício “12)”.
  6. A soma da diagonal principal da matriz.
  7. A soma da diagonal secundária da matriz (desafio)
m <- 1
for (i in (1:4)) {
  for (j in (1:4)) {
    matriz[i,j] <- m
    j <- j + 1
    m <- m + 1
  }
  i <- i + 1
}
matriz
##      [,1] [,2] [,3] [,4]
## [1,]    1    2    3    4
## [2,]    5    6    7    8
## [3,]    9   10   11   12
## [4,]   13   14   15   16
coluna <- 2
soma <- 0
cont <- 0
for (i in 1:4){
  soma <- soma + matriz [i,coluna]
  cont <- cont + 1
}

mediaa <- soma/cont

print("Letra A")
## [1] "Letra A"
mediaa
## [1] 8
cont <- 4
resultado <- c(0,0,0,0)

for (j in 1:4){
for (i in 1:4){
  resultado[j] <- resultado[j] + matriz [i,j]
}
  resultado[j] <- resultado[j]/cont
}
print("Letra B")
## [1] "Letra B"
resultado[1]
## [1] 7
resultado[2]
## [1] 8
resultado[3]
## [1] 9
resultado[4]
## [1] 10
resultado <- c(0,0,0,0)

for (i in 1:4){
for (j in 1:4){
  resultado[i] <- resultado[i] + matriz [i,j]
}
  resultado[i] <- resultado[i]/cont
}
print("Letra C")
## [1] "Letra C"
resultado[1]
## [1] 2.5
resultado[2]
## [1] 6.5
resultado[3]
## [1] 10.5
resultado[4]
## [1] 14.5
soma <- 0
cont <- 0
for (j in 1:4){
for (i in 1:4){
  if (matriz [i,j] %% 2 == 0){
  soma <- soma + matriz[i,j]
  cont <- cont + 1
  }
}
}
print("Letra D")
## [1] "Letra D"
soma/cont
## [1] 9
soma <- 0
cont <- 0
for (j in 1:4){
for (i in 1:4){
  if (matriz [i,j] %% 2 != 0){
  soma <- soma + matriz[i,j]
  cont <- cont + 1
  }
}
}
print("Letra E")
## [1] "Letra E"
soma/cont
## [1] 8
soma <- 0

for (i in 1:4){
  soma <- soma + matriz[i,i]
  }

print("Letra F")
## [1] "Letra F"
soma
## [1] 34
soma <- 0
m <- 5

for (i in 1:4){
  soma <- soma + matriz[i,m-i]
  }

print("Letra G")
## [1] "Letra G"
soma
## [1] 34

EXERCICIO 15

  1. Repita o exercício “14)” com os dados do data.frame do exercício “13)”.
  1. a média de uma coluna da matriz do exercício “12)”.
  2. A média de todas as colunas da matriz do exercício “12)”.
  3. A média de todas as linhas da matriz do exercício “12)”.
  4. A média dos números pares de todas as colunas da matriz do exercício “12)”.
  5. A média dos números ímpares de todas as linhas da matriz do exercício “12)”.
  6. A soma da diagonal principal da matriz.
  7. A soma da diagonal secundária da matriz (desafio)
m <- 1
for (i in (1:4)) {
  for (j in (1:4)) {
    df[i,j] <- m
    j <- j + 1
    m <- m + 1
  }
  i <- i + 1
}
df
##   V1 V2 V3 V4
## 1  1  2  3  4
## 2  5  6  7  8
## 3  9 10 11 12
## 4 13 14 15 16
coluna <- 2
soma <- 0
cont <- 0
for (i in 1:4){
  soma <- soma + df [i,coluna]
  cont <- cont + 1
}

mediaa <- soma/cont

print("Letra A")
## [1] "Letra A"
mediaa
## [1] 8
cont <- 4
resultado <- c(0,0,0,0)

for (j in 1:4){
for (i in 1:4){
  resultado[j] <- resultado[j] + df [i,j]
}
  resultado[j] <- resultado[j]/cont
}
print("Letra B")
## [1] "Letra B"
resultado[1]
## [1] 7
resultado[2]
## [1] 8
resultado[3]
## [1] 9
resultado[4]
## [1] 10
resultado <- c(0,0,0,0)

for (i in 1:4){
for (j in 1:4){
  resultado[i] <- resultado[i] + df [i,j]
}
  resultado[i] <- resultado[i]/cont
}
print("Letra C")
## [1] "Letra C"
resultado[1]
## [1] 2.5
resultado[2]
## [1] 6.5
resultado[3]
## [1] 10.5
resultado[4]
## [1] 14.5
soma <- 0
cont <- 0
for (j in 1:4){
for (i in 1:4){
  if (df [i,j] %% 2 == 0){
  soma <- soma + df[i,j]
  cont <- cont + 1
  }
}
}
print("Letra D")
## [1] "Letra D"
soma/cont
## [1] 9
soma <- 0
cont <- 0
for (j in 1:4){
for (i in 1:4){
  if (df [i,j] %% 2 != 0){
  soma <- soma + df[i,j]
  cont <- cont + 1
  }
}
}
print("Letra E")
## [1] "Letra E"
soma/cont
## [1] 8
soma <- 0

for (i in 1:4){
  soma <- soma + df[i,i]
  }

print("Letra F")
## [1] "Letra F"
soma
## [1] 34
soma <- 0
m <- 5

for (i in 1:4){
  soma <- soma + df[i,m-i]
  }

print("Letra G")
## [1] "Letra G"
soma
## [1] 34

Lista 2 de Exercícios

EXERCICIO 1

  1. Calcular o salário mensal final de um vendedor. As seguintes informações determinam esse valor:
  1. salário fixo – R$ 5000,00
  2. total de vendas por ele efetuadas – R$ 20.000,00
  3. percentual que ele recebe sobre o total de vendas – 5%
  4. INSS de 11% sobre o salário fixo.
  5. IR de 27% sobre o total de rendimentos.
salario_fixo <- 5000
total_vendas <- 20000
comissao <- 0.05
inss <- 0.11
ir <- 0.27


salario_final <- (salario_fixo + total_vendas * comissao)
desconto1 <- salario_final * inss
desconto2 <- salario_final * ir

salario_final <- salario_final - (desconto1 + desconto2)

salario_final
## [1] 3720

EXERCICIO 2

  1. Repita o Exercício 1) calculando o salário mensal da seguinte lista abaixo.

NOME DO
FUNCIONARIO | SALÁRIO BASE | VENDAS | IRPF (%)
VENDEDOR 1 | 1800,00 | 20000,00
VENDEDOR 2 | 2500,00 | 30000,00
VENDEDOR 3 | 2500,00 | 25000,00
VENDEDOR 4 | 3000,00 | 15000,00
VENDEDOR 5 | 3500,00 | 27000,00
VENDEDOR 6 | 4000,00 | 30000,00
VENDEDOR 7 | 5000,00 | 32000,00

O valor da alíquota do IR deve ser calculado sobre o salário base, conforme os dados abaixo:
.
Base de cálculo Alíquota
.
Até 1.903,98 | Isento
De 1.903,99 até 2.826,65 | 7,50%
De 2.826,66 até 3.751,05 | 15%
De 3.751,06 até 4.664,68 | 22,50%
Acima de 4.664,68 | 27,50%

vendedor <- c("vendedor1","vendedor2","vendedor3","vendedor4","vendedor5","vendedor6","vendedor7")
salario_base <- c(1800,2500,2500,3000,3500,4000,5000)
vendas <- c(20000,30000,25000,15000,27000,30000,32000)
ir <- c(0,0,0,0,0,0,0)

for (i in (1:7)) {
  if (salario_base[i] < 1903.99) {
    ir[i] <- 0
  } else if (salario_base[i] < 2826.66){
    ir[i] <- salario_base[i] * 0.075
  } else if (salario_base[i] < 3751.06){
    ir[i] <- salario_base[i] * 0.15
  } else if (salario_base[i] < 4664.68){
    ir[i] <- salario_base[i] * 0.225
  } else if (salario_base[i] > 4664.68){
    ir[i] <- salario_base[i] * 0.275
  }
}

ir
## [1]    0.0  187.5  187.5  450.0  525.0  900.0 1375.0

EXERCICIO 3

  1. Elabore um programa para efetuar o cálculo da quantidade de garrafas e de engradados de cerveja consumida por um determinado bloco durante o carnaval, considerando que 5000 foliões bebem cerca de 2 litros durante o desfile do bloco. Outras informações:

• considerar que um engradado de cerveja tem 24 garrafas de 600 ml • Cada garrafa custa RS 8,00, e que o engradado custa RS 180,00.

Qual será o lucro do comerciante considerando que: a) Ele compre as garrafas avulsas e venda cada garrafa a R$ 15,00. b) Ele compre o engradado e venda cada garrafa a R$ 15,00 (ele não pode comprar fração do engradado – arredonde para menos). c) Ele venda o copo de 500 ml a RS 15,00 – cada copo sai a RS 0,20. Faça uma função para o lucro.

folioes <- 5000
litros_por_pessoa <- 2


custo_cerveja_unit <- 8
custo_cerveja_engr <- 180
engradado <- 24


venda_cerveja_unit <- 15
litros_total <- folioes * litros_por_pessoa

quantidade_garrafas <- round(litros_total/0.6,digits = 0)
quantidade_engradados <- round(quantidade_garrafas / engradado)



print("Letra A")
## [1] "Letra A"
print("Quantidade de Garrafas:")
## [1] "Quantidade de Garrafas:"
quantidade_garrafas
## [1] 16667
print("Lucro:")
## [1] "Lucro:"
letraa <- quantidade_garrafas * (15-8)
letraa
## [1] 116669
print("Letra B")
## [1] "Letra B"
print("Quantidade de Garrafas:")
## [1] "Quantidade de Garrafas:"
quantidade_garrafas
## [1] 16667
print("Quantidade de Engradados:")
## [1] "Quantidade de Engradados:"
quantidade_engradados
## [1] 694
print("Lucro:")
## [1] "Lucro:"
letrab <- quantidade_garrafas * 15 - quantidade_engradados * 180
letrab
## [1] 125085
print("Letra C")
## [1] "Letra C"
print("Quantidade de Garrafas:")
## [1] "Quantidade de Garrafas:"
quantidade_garrafas
## [1] 16667
print("Quantidade de Engradados:")
## [1] "Quantidade de Engradados:"
quantidade_engradados
## [1] 694
print("Lucro:")
## [1] "Lucro:"
letrac <- quantidade_garrafas * (600/500) * 15 - quantidade_engradados * 180 + quantidade_garrafas * (600/500) * 0.2
letrac
## [1] 179086.1

EXERCICIO 4

  1. Elabore um data.frame com as seguintes informação:

NOME DO ALUNO | DISCIPLINA 1 | DISCIPLINA 2 | DISCIPLINA 3
ALUNO 1 | 3 | 10 | 7
ALUNO 2 | 4 | 9 | 8
ALUNO 3 | 5 | 8 | 9
ALUNO 4 | 6 | 7 | 10
ALUNO 5 | 7 | 6 | 7
ALUNO 6 | 8 | 5 | 8
ALUNO 7 | 9 | 4 | 9

Faça funções para calcular: a) A média de cada aluno (CR) b) A média de cada disciplina. c) A média final da turma. d) O aluno com média mais alta. e) A lista de alunos reprovados, por disciplina.

alunos <- c("Aluno 1","Aluno 2","Aluno 3","Aluno 4","Aluno 5","Aluno 6","Aluno 7")
disciplina1 <- c(3,4,5,6,7,8,9)
disciplina2 <- c(10,9,8,7,6,5,4)
disciplina3 <- c(7,8,9,10,7,8,9)
media <- c(0,0,0,0,0,0,0)


for (i in 1:7){
  media [i] <- (disciplina1[i] + disciplina2[i] + disciplina3[i])/3
}

print("Letra A")
## [1] "Letra A"
media
## [1] 6.666667 7.000000 7.333333 7.666667 6.666667 7.000000 7.333333
media1 <- mean(disciplina1)
media2 <- mean(disciplina2)
media3 <- mean(disciplina3)

print("Letra B")
## [1] "Letra B"
media1
## [1] 6
media2
## [1] 7
media3
## [1] 8.285714
print("Letra C")
## [1] "Letra C"
print((media1 + media2 + media3)/3)
## [1] 7.095238
print("Letra D")
## [1] "Letra D"
print(max(media))
## [1] 7.666667
print("Letra E")
## [1] "Letra E"
print("Alunos Reprovados - Disciplina 1")
## [1] "Alunos Reprovados - Disciplina 1"
for (i in 1:7) {
  if (disciplina1 [i] < 7) {
    print(alunos[i])
    
  }
  
}
## [1] "Aluno 1"
## [1] "Aluno 2"
## [1] "Aluno 3"
## [1] "Aluno 4"
print("Alunos Reprovados - Disciplina 2")
## [1] "Alunos Reprovados - Disciplina 2"
for (i in 1:7) {
  if (disciplina2 [i] < 7) {
    print(alunos[i])
    
  }
  
}
## [1] "Aluno 5"
## [1] "Aluno 6"
## [1] "Aluno 7"
print("Alunos Reprovados - Disciplina 3")
## [1] "Alunos Reprovados - Disciplina 3"
for (i in 1:7) {
  if (disciplina3 [i] < 7) {
    print(alunos[i])
    
  }
  
}

Lista de Exercícios de Programação Linear

EXERCÍCIO 1

A Fábrica Marvel Toy deseja fazer três modelos de barcos de brinquedo para melhorar as suas vendas. Eles descobriram que um modelo do navio a vapor leva uma hora no cortador, 2 horas na pintura, e 4 horas de trabalho na montagem. Este modelo produz $ 6 de lucro. O modelo do veleiro de quatro mastros leva 3 horas no cortador, 3 horas na pintura e o montador 2 horas na montagem e produz $ 3 de lucro. O modelo veleiro de dois mastros leva uma hora no cortador, três horas na pintura, uma hora na montagem, produzindo $ 2 de lucro. O cortador está disponível apenas por 45 horas, o pintor por 50 horas, e o montador por 60 horas. Supondo que eles possam vender todos os modelos que são construídos, encontre as restrições do problema e descreva como a solução ótima é obtida.

func.obj <- c(6,3,2)
restricoes <- matrix (c(1,3,1,2,3,3,4,2,1), ncol = 3, byrow = TRUE)
direcao.restricoes <- c("<=","<=","<=")
limites.restricoes <- c(45,50,60)




solucao.problema <- lpSolve::lp(direction = "max", objective.in = func.obj, const.mat = restricoes, const.dir = direcao.restricoes, const.rhs = limites.restricoes)



solucao.problema
## Success: the objective function is 94

EXERCÍCIO 2

A Reggio Advertising Company deseja planejar uma campanha publicitária em três meios diferentes - televisão, rádio e revistas. O objetivo da publicidade é alcançar tantos clientes em potencial quanto possível. Os resultados de um estudo de mercado são fornecidos abaixo:

A empresa não quer gastar mais do que $ 800.000 na publicidade. Além disso, requer que: (1) pelo menos 2 milhões as exposições ocorrem entre mulheres; (2) publicidade em televisão seja limitada a $ 500.000; (3) pelo menos 3 publicidades sejam compradas na televisão diurna, e duas unidades durante horário nobre; e (4) o número de unidades de publicidade no rádio e em revistas deve ser entre 5 e 10. Formular o problema de programação linear

func.obj <- c(400000,900000,500000,200000)
restricoes <- matrix (c(40000,75000,30000,15000,300000,400000,200000,100000,40000,75000,0,0,1,0,0,0,0,1,0,0,0,0,1,1,0,0,1,1), ncol = 4, byrow = TRUE)
direcao.restricoes <- c("<=",">=","<=",">=",">=",">=","<=")
limites.restricoes <- c(800000,2000000,500000,3,2,5,10)




solucao.problema <- lpSolve::lp(direction = "max", objective.in = func.obj, const.mat = restricoes, const.dir = direcao.restricoes, const.rhs = limites.restricoes)



solucao.problema
## Success: the objective function is 10760000

EXERCÍCIO 3

Uma fábrica de tomate em conserva tem 5.000 quilos de tomates de grau A e 10.000 quilos de tomates grau B, os quais serão transformados em tomates em lata e pasta de tomate. os tomates em lata devem ser compostos de pelo menos 80 por cento de tomates de grau A, enquanto a pasta de tomate deve ser feita com pelo menos 10 por cento de tomates desta mesma qualidade (grau A). Os tomates em lata são vendidos por US $ 0,08 por quilo e os tomates em pasta são vendidos por US $ 0,05 por quilo. Formule um programa linear para resolver quanto de cada produto deve ser feito, se a empresa quiser maximizar a sua receita.

func.obj <- c(0.08,0.05)
restricoes <- matrix (c(0.8,0.1,0.2,0.9), ncol = 2, byrow = TRUE)
direcao.restricoes <- c("<=","<=")
limites.restricoes <- c(5000,10000)




solucao.problema <- lpSolve::lp(direction = "max", objective.in = func.obj, const.mat = restricoes, const.dir = direcao.restricoes, const.rhs = limites.restricoes)



solucao.problema
## Success: the objective function is 900

EXERCÍCIO 4

A fim de se produzir 1000 toneladas de aço não oxidante para válvulas de motor, pelo menos as seguintes quantidades de manganês, cromo e molibdênio, serão necessários semanalmente: 10 unidades de manganês, 12 unidades de cromo e 14 unidades de molibdênio (uma unidade corresponde a 10Kg). Esses metais são obtidos de revendedores de metais não ferrosos, que, para atrair os mercados os disponibilizam em caixas de três tamanhos, P, M e G. Uma caixa P custa $ 9 e contém 2 unidades de manganês, 2 unidades de cromo e 1 unidade de molibdênio. Uma caixa M custa $ 12 e contém 2 unidades de manganês, 3 unidades de cromo e 1 unidade de molibdênio. Um caso G custa US $ 15 e contém 1 unidade de manganês, 1 unidade de cromo e 5 unidades de molibdênio. Quantas caixas de cada tipo devem ser compradas semanalmente para que as quantidades necessárias de manganês, cromo e molibdênio sejam obtidas no menor custo possível? Qual é o menor custo possível? Formule e resolva por programação linear.

func.obj <- c(9,12,15)
restricoes <- matrix (c(2,2,1,2,3,1,1,1,5), ncol = 3, byrow = TRUE)
direcao.restricoes <- c(">=",">=",">=")
limites.restricoes <- c(10,12,14)




solucao.problema <- lpSolve::lp(direction = "min", objective.in = func.obj, const.mat = restricoes, const.dir = direcao.restricoes, const.rhs = limites.restricoes)



solucao.problema
## Success: the objective function is 72

EXERCÍCIO 5

O grupo Unido tem duas fazendas que cultivam trigo e milho. Por causa dos solos e condições climáticas diferentes, existem diferenças nos rendimentos e custos de cultivo nas duas fazendas. Os rendimentos e custos são

Cada fazenda possui 100 acres disponíveis para cultivo; 11.000 alqueires de trigo e 7.000 alqueires de milho devem ser cultivados. Determine um plano de plantio que irá minimizar o custo de atender a essas demandas.

func.obj <- c(100,120,90,80)
restricoes <- matrix (c(500,650,0,0,0,0,400,350,1,1,0,0,0,0,1,1), ncol = 4, byrow = TRUE)
direcao.restricoes <- c(">=",">=","=","=")
limites.restricoes <- c(7000,11000,100,100)




solucao.problema <- lpSolve::lp(direction = "min", objective.in = func.obj, const.mat = restricoes, const.dir = direcao.restricoes, const.rhs = limites.restricoes)



solucao.problema
## Success: the objective function is 18000

EXERCÍCIO 6

Considere que existem 3 silos que são necessários para satisfazer a demanda de 4 fábricas (Mills), conforme tabela a seguir. (Um silo é uma área de armazenamento da fazenda usada para armazenar grãos e Moinho é uma fábrica de moagem de grãos).

Determine o quanto de cada silo deve ir para cada fábrica afim de que o custo de transporte seja minimizado.

func.obj <- c(10, 2, 20, 11, 12, 7, 9, 20, 4, 14, 16, 18)
restricoes <- matrix(c(1,1,1,1,0,0,0,0,0,0,0,0,
                      0,0,0,0,1,1,1,1,0,0,0,0,
                      0,0,0,0,0,0,0,0,1,1,1,1,
                      1,0,0,0,1,0,0,0,1,0,0,0,
                      0,1,0,0,0,1,0,0,0,1,0,0,
                      0,0,1,0,0,0,1,0,0,0,1,0,
                      0,0,0,1,0,0,0,1,0,0,0,1
                      ), ncol = 12, byrow = TRUE)
direcao.restricoes <- c("=","=","=","=","=","=","=")
limites.restricoes <- c(15, 25, 10, 5, 15, 15, 15)

solucao.problema <- lpSolve::lp(direction = "min", objective.in = func.obj, const.mat = restricoes, const.dir = direcao.restricoes, const.rhs = limites.restricoes)

solucao.problema
## Success: the objective function is 435