Implemente um programa para verificar a possibilidade de produção de uma marcenaria móvel planejada, considerando a disponibilidade de peças de madeira e parafusos necessários para montar cada modelo. A quantidade de peças é armazenada em uma matriz, onde as linhas representam cada modelo:
Peça 1 Peça 2 Peça 3
Móvel 1 10 40 15
Móvel 2 25 20 45
Móvel 3 30 15 30
O total de peças é definido pelo somatório de todos os elementos da matriz e a quantidade de parafusos necessários para produzir todos os móveis é correspondente ao dobro da quantidade total de peças. O programa solicita como entradas do usuário: (a) a matriz de valores inteiros representando as quantidades de peças; (b) um valor inteiro representando a quantidade de parafusos em estoque. Após as entradas, o programa deve processar e imprimir a quantidade total de peças, verificar se é possivel realizar a produção e informar a quantidade de parafusos que sobram ou que faltam.
Para a matriz anterior, a quantidade de peças é 10+40+15+25+20+45+30+15+30=230, o que demanda 2 \times 230=460 parafusos. Se a quantidade de parafusos disponivel for 100 (conforme o exemplo de execução 1), não é possivel produzir, pois quantidade de parafusos demandada é maior do que a disponivel, e faltarão 460-100=360 parafusos. Por outro lado, para a mesma matriz, se a quantidade de parafusos disponivel for 500 (conforme o exemplo de execução 2), é possível produzir, pois a quantidade de parafusos demandada é menor do que a disponível, e sobrarão \mathbf{5 0 0 - 4 6 0 = 4 0} parafusos. No exemplo de execução 3 , por sua vez, para outra matriz de entrada, é possível produzir, pois a quantidade de parafusos demandada é igual à quantidade de parafusos disponivel.
Sua resposta deve conter as mensagens exatamente como definidas nos exemplos de execução. Não é necessário qualquer validação de dados.
Exemplo de Execução 1:
Informe a matriz de peças: 10,40,15 ; 25,20,45 ; 30,15,30
Informe o estoque de parafusos: 100
A produção precisa de 230 peças e 460 parafusos.
Não é possível produzir, faltam 360 parafusos.
Exemplo de Execução 2:
Informe a matriz de peças: 10,40,15 ; 25,20,45 ; 30,15,30
Informe o estoque de parafusos: 500
A produção precisa de 230 peças e 460 parafusos.
É possivel produzir, sobram 40 parafusos.
Exemplo de Execução 3:
Informe a matriz de peças: 97,65,43,32 ; 99,67,34,55 ; 82,28, 87,40 ; 35,97,35,92 ; 54,60,65,66 ; 75,50,89,81
Informe o estoque de parafusos: 3056
A produção precisa de 1528 peças e 3056 parafusos.
É possivel produzir, faltam 0 parafusos.
(a) a matriz de valores inteiros representando as quantidades de peças; (b) um valor inteiro representando a quantidade de parafusos em estoque.

Passo 1

O programa deve ler
(a) uma string representando a matriz de peças, no formato linhas separadas por ; e elementos separados por ,
(b) um inteiro representando o estoque de parafusos
e em seguida calcular:
  • total de peças P como a soma de todos os elementos da matriz
  • parafusos necessários N = 2P
    Depois deve imprimir quantas peças e parafusos são necessários e verificar três casos:
  1. estoque insuficiente \text{estoque}<N → mensagem de não é possível produzir e quantidade que falta
  2. estoque maior \text{estoque}>N → mensagem de é possível produzir e quantidade que sobra
  3. estoque igual \text{estoque}=N → mensagem de é possível produzir e faltam 0 parafusos

Passo 2

Ler a linha da matriz e separar as linhas por ;, depois para cada linha separar os números por ,, converter em inteiro e acumular todos em uma lista

Passo 3

Calcular o total de peças
P = \sum_{x \in \text{lista de todas as peças}} xç

Passo 4

Calcular parafusos necessários
N = 2 \times P

Passo 5

Imprimir a primeira linha de saída com
“A produção precisa de P peças e N parafusos.”

Passo 6

Comparar o estoque de parafusos E com N:
  • Se E < N: imprimir
    “Não é possível produzir, faltam (N - E) parafusos.”
  • Senão se E > N: imprimir
    “É possivel produzir, sobram (E - N) parafusos.”
  • Senão E = N: imprimir
    “É possivel produzir, faltam 0 parafusos.”

Resposta

# leitura das entradas
\(matriz_str\) = input("Informe a matriz de peças: ")
estoque = int(input("Informe o estoque de parafusos: "))

# parsing e soma das peças
linhas = \(matriz_str\).split(';')
pecas = []
for linha in linhas:
 for num in linha.split(','):
 pecas.append(int(num.strip()))
P = sum(pecas)

# cálculo de parafusos necessários
N \(=2\) * P

# saída das necessidades
print(f"A produção precisa de {P} peças e {N} parafusos.")

# verificação de estoque e mensagem final
if estoque < N:
 print(f"Não é possível produzir, faltam {N - estoque} parafusos.")
elif estoque > N:
 print(f"É possivel produzir, sobram {estoque - N} parafusos.")
else:
 print("É possivel produzir, faltam 0 parafusos.")

Exercícios relacionados