Uma determinada fabrica de rádios possui duas linhas de montagens distintas: Standard e Luxo. A linha de montagem Standart comporta o maximo de 24 operarios, cada radio standard da um lucro de x reais e gasta um homem dia para sua confecção a linha de montagem luxo, comporta no maximo 32 operarios; cada radio luxo da um lucro de y reais e gasta 2 homens dias para sua confecção. A fabrica possui 40 operarios o mercado é capaz de absorver toda a produção e o fabricante deseja saber qual esquema de produção a adotar de modo a maximizar seu lucro diário. Fazer um programa que leia os valores de x e y e escreva, para esse esquema de lucro maximo o numero de operários na linha standard e na linha luxo, o numero de rádios standard e luxo produzidos e o lucro.:
Explica qual a dúvida que o pessoal ajuda dentro do possível. Mas não espere a solução pronta não.
Abraço
ramonchiara
Deixei no ponto, hein…
importjava.util.ArrayList;importjava.util.List;// TODO Testes// TODO Javadocs// TODO Entrada de dados// TODO Fazer Iteração para achar o lucro máximopublicclassProblemaDoLucroMaximo{publicstaticvoidmain(String[]args){Fabricafabrica=newFabrica(40);intstandard=fabrica.addLinha(24,1);intluxo=fabrica.addLinha(32,2);fabrica.setLucro(standard,10);fabrica.setLucro(luxo,10);fabrica.setOperarios(standard,20);fabrica.setOperarios(luxo,20);doublelucroPorDia=fabrica.getLucroPorDia();System.out.println("lucroPorDia = "+lucroPorDia);}}classFabrica{privateintmaxOperarios;privateList<Linha>linhas=newArrayList<Linha>();publicFabrica(intmaxOperarios){// TODO consistir maxOperariosthis.maxOperarios=maxOperarios;}publicintgetMaxOperarios(){returnmaxOperarios;}publicintaddLinha(intmaxOperarios,doubletempo){// TODO consistir maxOperarios// TODO consistir tempoLinhalinha=newLinha(maxOperarios,tempo);linhas.add(linha);returnlinhas.indexOf(linha);}publicvoidremoveLinha(intlinhaIndex){// TODO consistir linhaIndex?linhas.remove(linhaIndex);}publicintgetOperarios(){intoperarios=0;for(Linhalinha:linhas){operarios+=linha.getOperarios();}returnoperarios;}publicdoublegetQuantidadePorDia(){doublequantidadePorDia=0.0;for(Linhalinha:linhas){quantidadePorDia+=linha.getQuantidadePorDia();}returnquantidadePorDia;}publicdoublegetLucroPorDia(){doublelucroPorDia=0.0;for(Linhalinha:linhas){lucroPorDia+=linha.getLucroPorDia();}returnlucroPorDia;}publicintgetMaxOperarios(intlinhaIndex){// TODO consistir linhaIndex?returnlinhas.get(linhaIndex).getMaxOperarios();}publicdoublegetTempo(intlinhaIndex){// TODO consistir linhaIndex?returnlinhas.get(linhaIndex).getTempo();}publicvoidsetLucro(intlinhaIndex,doublelucro){// TODO consistir linhaIndex?// TODO consistir lucrolinhas.get(linhaIndex).setLucro(lucro);}publicdoublegetLucro(intlinhaIndex){// TODO consistir linhaIndex?returnlinhas.get(linhaIndex).getLucro();}publicvoidsetOperarios(intlinhaIndex,intoperarios){// TODO consistir linhaIndex?// TODO consistir operariosif(getOperarios()+operarios>getMaxOperarios()){thrownewIllegalArgumentException("Esta fábrica suporta, no máximo, "+getMaxOperarios()+" operários.");}linhas.get(linhaIndex).setOperarios(operarios);}publicdoublegetOperarios(intlinhaIndex){// TODO consistir linhaIndex?returnlinhas.get(linhaIndex).getOperarios();}publicdoublegetQuantidadePorDia(intlinhaIndex){// TODO consistir linhaIndex?returnlinhas.get(linhaIndex).getQuantidadePorDia();}publicdoublegetLucroPorDia(intlinhaIndex){// TODO consistir linhaIndex?returnlinhas.get(linhaIndex).getLucroPorDia();}}classLinha{intmaxOperarios;doubletempo;doublelucro;intoperarios;publicLinha(intmaxOperarios,doubletempo){// TODO consistir maxOperarios// TODO consistir tempothis.maxOperarios=maxOperarios;this.tempo=tempo;}publicintgetMaxOperarios(){returnmaxOperarios;}publicdoublegetTempo(){returntempo;}publicvoidsetLucro(doublelucro){// TODO consistir lucrothis.lucro=lucro;}publicdoublegetLucro(){returnlucro;}publicvoidsetOperarios(intoperarios){// consistir operariosif(operarios>getMaxOperarios()){thrownewIllegalArgumentException("Esta linha suporta, no máximo, "+getMaxOperarios()+" operários.");}this.operarios=operarios;}publicintgetOperarios(){returnoperarios;}publicdoublegetQuantidadePorDia(){returnoperarios/tempo;}doublegetLucroPorDia(){returngetQuantidadePorDia()*lucro;}}
Na boa pessoal, eu fiz isso aí para praticar um pouco porque aqui no trampo tenho feito muita documentação (:(). Assim desenferrujo um pouco na OO. rsrsrs Acho que dá para melhorar um pouco mais…
Que tal fazermos disso um debate sobre OOD? Quais melhorias ou qual outro design o pessoal teria usado?
[]s
alucardeck
ramonchiara:
Deixei no ponto, hein…
…
vc fez a lição de casa do cara?
aff ¬¬ espero q nunca mais faça isso
ramonchiara
alucardeck… Perceba que eu NÃO fiz a lição dele!!! Você viu o comentário no final da mensagem???
Aliás, acabei de achar um erro no que eu fiz!!! :twisted:
TangZero
Caraca… porque quando eu estava na facu, não pensei nisso…poderia ter postado meus exercícios aki… :lol:
ramonchiara
Galera,
Se vocês lerem o código, verão que eu NÃO fiz o exercício do cara… Eu TAMBÉM sou CONTRA a fazer os exercícios aqui!!!
Apenas “traduzi” as fórmulas em Java e tentei ser o mais OO possível… Tentando evitar o “modelo anêmico”. Isso foi um exercício PARA MIM!!!
De quebra, se o cara tiver “saco” de ler o que eu fiz (porque, para terminar o exercício ele VAI TER que fazer isso) ele pode aprender ainda mais!!! Vocês não concordam?
Grande abraço para todos
TangZero
ramonchiara:
Galera,
Se vocês lerem o código, verão que eu NÃO fiz o exercício do cara… Eu TAMBÉM sou CONTRA a fazer os exercícios aqui!!!
Apenas “traduzi” as fórmulas em Java e tentei ser o mais OO possível… Tentando evitar o “modelo anêmico”. Isso foi um exercício PARA MIM!!!
De quebra, se o cara tiver “saco” de ler o que eu fiz ele pode aprender ainda mais!!! Vocês não concordam?
Grande abraço para todos
Relaxa… estamos brincando contigo.
Desculpe se te ofendi. Sei que se intuíto era “Ensinar a pescar ao invés de dar o peixe”.
ramonchiara
pasqualli2006
Realmente obrigado, não colei, tinha dificuldade com a “logica” do problema, mas no fim com sua ajuda deu certo, valew.