Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

flavioavilela

lógica de algoritmo

Recommended Posts

boa tarde a todos...

no meu sistema de gado, eu preciso fazer o seguinte:

a vaca e o touro possui um grau de sangue X com raça Y... (tanto a vaca quanto o touro pode ter até 4 graus de sangue e raças misturadas em sua composição racial)... quando eu der o parto da vaca, eu preciso fazer com que de o grau de sangue do bezerro... e se faz da seguinte forma:

pai = raça 1 - 3/4 holandes, raça 2 - 1/4 girolando, raça 3 - não possui, raça 4 - não possui

 

mãe = raça 1 - 1/2 holandes, raça 2 - 1/4 jersey, raça 3 - 1/4 girolando, raça 4 - não possui

 

devo somar as frações do pai e da mae que são em comum e multiplicar por 2......... as que não são comum, devo apenas multiplicar, sem somar, obvio...

até ai eu sei na boa, somar as frações e tudo mais... só que, a questão é a seguinte: como fazer para o sistema verificar quais são comum e quais não são comum? o resultado desse exemplo, seria assim:

 

5/8 holandes, 1/8 jersey, 1/4 girolando

 

fazendo da mesma forma que falei, somando as frações em comum e multiplicando por 2 a somatória, e apenas multiplicando por 2 as incomuns

 

a questão é? como fazer para verificar em todos os graus de sangue do pai com a mae, quem é comum, quem não é comum... a raça que não possui, eu ignoro, obvio...

alguém pode ajudar??????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode usar um dicionário:

 

Um exemplo em python:

Onde 'fracao' é uma classe que implementa frações.

pai = {"a" : fracao(1, 4), "b": fracao(3, 4) }
mae = {"a" : fracao(1, 8), "b": fracao(1, 2), "c": fracao(3, 8) }
filho = {}

for k in pai.keys():
    if k in mae:
        #é comum...
    else:
        #não é comum

for k in mae.keys():
    if not k in filho:
        #filho não tem essa entrada ainda, não é comum

Compartilhar este post


Link para o post
Compartilhar em outros sites

certo, mas oq eu precisava era assim, tipo...

um laço, sei lá, para que, se for igual, já somar e multiplicar por 2 e esse resultado já será um dos componentes sanguineos do animal... se for diferente ele vai pro próximo... no final de tudo, ele verifica apenas quais raças estão diferentes, que ai essas diferentes eu apenas multiplico por 2.... ai depois eu teria as frações que foram somadas e multiplicadas por 2 e as frações que apenas foram multiplicadas por 2... eu tava pensando num array, até to tentando montar um algoritmo aqui mas estou impacando... por isso estou aqui tentando me nortear....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não faça 'up' nos tópicos, é contra as regras.

 

Eu não entendi o que você quer além do que ja foi postado...

O algoritmo eu ja postei, falta implementar a classe 'fracao', e o que fazer no caso de um dado tipo de sangue ser comum entre o pai e a mãe e o que fazer no caso desse tipo de sangue não ser comum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.