# Carlos Pedro Gonçalves # Instituto Superior de Ciências Sociais e Políticas (ISCSP) - Universidade de Lisboa # E-mail: cgoncalves@iscsp.ulisboa.pt # # Aulas de programação aplicada à tomada de decisão em Gestão de Recursos Humanos: # Unidade Curricular de Estatística para a Gestão II # # Aplicação: Problema de avaliação de desempenho # 09-04-2015 class UnidadeFabril: def __init__(self,nome,local,numTrab,pecaHora,formacao,acidentes,operarios,antiguidade): self.nome = nome self.local = local # Localização da Unidade (Portugal ou Espanha) self.numTrab = numTrab # Número de trabalhadores self.pecaHora = pecaHora # Número de peças produzidas por hora self.formacao = formacao # Número de horas de formação self.acidentes = acidentes # Número de acidentes de trabalho self.operarios = operarios # Número de operários self.antiguidade = antiguidade # Antiguidade máxima dos operários def avaliaProdutividade(self,objectivo): avaliacao = float(self.pecaHora) / float(objectivo) if avaliacao < 1: print self.nome, 'não atingiu o objectivo de produtividade' elif avaliacao == 1: print self.nome, 'atingiu o objectivo de produtividade' else: print self.nome, 'superou o objectivo de produtividade' return avaliacao def avaliaFormacao(self,objectivo): racio = float(self.formacao) / float(self.operarios) avaliacao = racio / float(objectivo) if avaliacao < 1: print self.nome, 'horas de formação por trabalhador inferiores ao objectivo' elif avaliacao == 1: print self.nome, 'horas de formação por trabalhador iguais ao objectivo' else: print self.nome, 'horas de formação por trabalhador superiores ao objectivo' return avaliacao def avaliaAcidentes(self,objectivo): racio = float(self.acidentes) / float(self.operarios) avaliacao = racio / float(objectivo) if avaliacao < 1: print self.nome, 'superou o objectivo de acidentes por operário' elif avaliacao == 1: print self.nome, 'atingiu o objectivo de acidentes por operário' else: print self.nome, 'não atingiu o objectivo de acidentes por operário' return 1 / avaliacao def avaliaUnidade(self,objectivos,pesos): #prod = self.avaliaProdutividade(objectivos[0]) #form = self.avaliaFormacao(objectivos[1]) #acid = self.avaliaAcidentes(objectivos[2]) #avaliacao = pesos[0] * prod + pesos[1] * form + pesos[2] * acid avaliacoes = [self.avaliaProdutividade(objectivos[0]),self.avaliaFormacao(objectivos[1]),self.avaliaAcidentes(objectivos[2])] avaliacao = sum([avaliacoes[i] * pesos[i] for i in range(0,len(avaliacoes))]) print 'Valor Final:', avaliacao,'\n' #CodigoUnidade = UnidadeFabril(nome,local,numTrab,pecaHora,formacao,acidentes,operarios,antiguidade) #Unidade1 = UnidadeFabril('Unidade 1','Portugal',200,20,2000,20,150,20) #Unidade2 = UnidadeFabril('Unidade 2','Portugal',250,10,1200,10,120,15) #Unidade3 = UnidadeFabril('Unidade 3','Portugal',300,25,2000,20,250,30) #Unidade4 = UnidadeFabril('Unidade 4','Portugal',210,15,1500,30,110,20) #Unidade5 = UnidadeFabril('Unidade 5','Portugal',220,16,1600,25,110,20) #Unidade6 = UnidadeFabril('Unidade 6','Portugal',230,16,2000,15,150,25) #Unidade7 = UnidadeFabril('Unidade 7','Espanha',250,25,2000,20,160,15) #Unidade8 = UnidadeFabril('Unidade 8','Espanha',250,26,1100,14,160,16) #Unidade9 = UnidadeFabril('Unidade 9','Espanha',210,17,1200,10,150,17) #Unidade10 = UnidadeFabril('Unidade 10','Espanha',210,15,1200,20,150,20) unidadesFabris = [UnidadeFabril('Unidade 1','Portugal',200,20,2000,20,150,20)] unidadesFabris.append(UnidadeFabril('Unidade 2','Portugal',250,10,1200,10,120,15)) unidadesFabris.append(UnidadeFabril('Unidade 3','Portugal',300,25,2000,20,250,30)) unidadesFabris.append(UnidadeFabril('Unidade 4','Portugal',210,15,1500,30,110,20)) unidadesFabris.append(UnidadeFabril('Unidade 5','Portugal',220,16,1600,25,110,20)) unidadesFabris.append(UnidadeFabril('Unidade 6','Portugal',230,16,2000,15,150,25)) unidadesFabris.append(UnidadeFabril('Unidade 7','Espanha',250,25,2000,20,160,15)) unidadesFabris.append(UnidadeFabril('Unidade 8','Espanha',250,26,1100,14,160,16)) unidadesFabris.append(UnidadeFabril('Unidade 9','Espanha',210,17,1200,10,150,17)) unidadesFabris.append(UnidadeFabril('Unidade 10','Espanha',210,15,1200,20,150,20)) objectivos = [10,20,0.05] pesos = [0.35,0.35,0.3] #Unidade1.avaliaUnidade(objectivos,pesos) #Unidade2.avaliaUnidade(objectivos,pesos) #Unidade3.avaliaUnidade(objectivos,pesos) #Unidade4.avaliaUnidade(objectivos,pesos) #Unidade5.avaliaUnidade(objectivos,pesos) #Unidade6.avaliaUnidade(objectivos,pesos) #Unidade7.avaliaUnidade(objectivos,pesos) #Unidade8.avaliaUnidade(objectivos,pesos) #Unidade9.avaliaUnidade(objectivos,pesos) #Unidade10.avaliaUnidade(objectivos,pesos) for Unidade in unidadesFabris: Unidade.avaliaUnidade(objectivos,pesos)
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question