Ir para conteúdo

POWERED BY:

Arquivado

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

Eduardo Giullyanny

Exercício de raciocinio lógico

Recommended Posts

Boa noite Galera;

 

estou com uma dificuldade monstra, em um exercício que inicialmente achei ser bastante simples;

 

o exercicio é o seguinte, funcionaria em um esquema de piramide, onde cada pessoa pudesse ter duas pessoas apenas e essas duas mais duas e assim por diante. E que existiria uma condição para saber qual a perna seria mais fraca para saber a classificação.

 

Aqui tem uma imagem que representa isso melhor:

joao.jpg

 

Eu seria que saber também dos filhos deles para saber a quantidade de pontos

Aqui tem o meu codigo todo, na classe "Pessoa" dentro de uma pasta "lib", tem um metodo que se chama "buscarValorPontosTotalInd()" e penso que quando eu consegui dar o valor correto eu conseguiria, estou tentando ali usar "Função Recursiva", mas parece que num está dando certo.

 

Poderia julgar meu código para que eu possa melhora-lo e me dar um caminho, pois estou vendo que num está indo muito bem.

 

Download do que fiz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo acredito que uma lógica que funcione seria +- assim, criar 1 campo chamado sei lá "paizão", este seria o João do seu exemplo, e todos os filhos, netos, e por aí vai, teriam esse paizão com o id do do João assim todos estariam unidos por uma "matriz" chamemos assim.

Agora, outro campo seria o pai, o pai seria um filho (primeiro caso) ou um neto (depois do primeiro) de João.

E por fim, um campo salvando separado por vírgula, os filhos. Ficaria algo assim, por exemplo:

 

Tabela:

id         nome         paizao         pai         filhos         pontos
1          João         0              0           2,3            2150 #aq é opcional 0 ou o total
2          Maria        1              1           4              150
3          Pedro        1              1           0              500
4          Marcos       1              2           0              1500

Por partes:

Paizao, todos tem o 1 porque estão ligados ao João;

Pai somente João é = 0, porque ele não tem pai nem paizão, ele é a "matriz";

Filhos, todos aqueles que ficarem ligados a eles, note que em todos os casos trabalhamos com os IDS, e ali tratamos de separa-los por "," pra evitar 2 campos na tabela, daí é só dar um explode e pronto;

Pontos quantidade de pontos que cada um tem, aí nos pontos de um PAIZÃO, ou você pode sempre que alguém pontuar, somar os pontos e salvar no campo de pontos do paizão OU somar na hora de printar na tela.

 

Talvez seja meio gambiarra, mas foi no que consegui pensar e acredito que dê certo. Se testar, me diga como foi!

Compartilhar este post


Link para o post
Compartilhar em outros sites

dinamicamente você teria que ir percorrendo um nivel acima até chegar em um valor 0 que seria o João no seu exemplo. ou seja, você encontrou uma pessoa, vê se ela tem filhos, se tiver, vê se os filhos tem filhos, até não achar, e faz o mesmo processo subindo um nivel, pegou +- ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, mas ali eu tenho que contar a perna, então eu não consigo ver por exemplo eu separar, pq será tudo inserido dinamicamente, talvez minha estrutura não sejá a correta

 

Busco esta orientação

 

se vc der uma olhada na index eu terei que retornar uma classificação e não poderei fazer gambiarras no banco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está montando uma Árvore Binária, uma das mais conhecidas estruturas de dados. Em vez de nós e folhas, você tem pessoas. A lógica é a mesma. Estude sobre Árvores Binárias e entenderá melhor

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.