Fórum Função Árvores genealógica #606536
12/11/2019
0
Boa tarde!
Eu sou iniciante em javascript, e estou montando um programa que diz se 2 filhos são meio irmão ou não.
Poderiam me ajudar?
function temAMesmaMae(filho1, filho2){
return maeDe(filho1) == maeDe(filho2);
}
function temOMesmoPai(filho1, filho2){
return paiDe(filho1) == paiDe(filho2);
}
function saoMeioIrmaos(filho1, filho2){
if (temAMesmaMae(filho1, filho2) && !temOMesmoPai(filho1, filho2){
return (''São meio-irmãos'');
}
}
Não estou conseguindo, não executa.
Eu sou iniciante em javascript, e estou montando um programa que diz se 2 filhos são meio irmão ou não.
Poderiam me ajudar?
function temAMesmaMae(filho1, filho2){
return maeDe(filho1) == maeDe(filho2);
}
function temOMesmoPai(filho1, filho2){
return paiDe(filho1) == paiDe(filho2);
}
function saoMeioIrmaos(filho1, filho2){
if (temAMesmaMae(filho1, filho2) && !temOMesmoPai(filho1, filho2){
return (''São meio-irmãos'');
}
}
Não estou conseguindo, não executa.

Bianca Paula
Curtir tópico
+ 0
Responder
Posts
13/11/2019
Jorge Pinto
Olá Bianca !! Tudo bem com vc?
Vou tentar lhe ajudar, e para isso precisamos primeiro definir bem aqui o conceito de meio-irmão. Considerei que meio-irmão é todo filho que possui a mesma mãe OU o mesmo pai, mas não ambos. Ok?
Me baseei no wiki abaixo para definir isso:
Observe o código abaixo:
Analise e execute ele, está bem comentado, observe bem a utilização dos operadores lógicos em conjunto com a definição do que se quer...
acho que era isso que vc precisava, mas qualquer dúvida é só falar.
Espero ter ajudado !
Abraço e bons códigos !
Vou tentar lhe ajudar, e para isso precisamos primeiro definir bem aqui o conceito de meio-irmão. Considerei que meio-irmão é todo filho que possui a mesma mãe OU o mesmo pai, mas não ambos. Ok?
Me baseei no wiki abaixo para definir isso:
https://pt.wikipedia.org/wiki/Meios-irmãos
Observe o código abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | <!DOCTYPE html> <!-- To change this license header, choose License Headers in Project Properties. To change this template file, choose Tools | Templates and open the template in the editor. --> <html> <head> <title>TODO supply a title</title> <meta charset= "UTF-8" > <meta name= "viewport" content= "width=device-width, initial-scale=1.0" > </head> <body> <script type= "text/javascript" > // ======================================================================= // Funções para simular o comportamento das funções ou métodos reais maeDe // e paiDe. // Para conseguir simular seu programa criei o cenário abaixo, observe: // // Pais João Pedro Maria Ana // Filhos Roberto Roberto // Rafaela Rafaela // André André // Cristiane // Luis // // Meio-irmãos são filhos que possuem o mesmo pai OU a mesma mãe, entretanto // não podem ter ambos, ou seja, não podem ter o mesmo pai E a mesma mãe. // Assim sendo temos no cenário acima os seguintes meio-irmãos: // // 1 - Roberto e Cristiane -> Mesmo pai (consanguineos) // 2 - Rafaela e Cristiane -> Mesmo pai (consanguineos) // 3 - André e Luis -> Mesma mãe (uterinos) // // Note que Roberto e Rafaela tem o mesmo pai E a mesma mãe, portanto não // são meio-irmãos e sim irmãos. // // As funções abaixo irão simular de forma "burra" o cenário acima. function maeDe(filho) { var ret = "" ; if (filho == "Roberto" || filho == "Rafaela" ) { ret = "Maria" ; } if (filho == "André" || filho == "Luis" ) { ret = "Ana" ; } return ret; } function paiDe(filho) { var ret = "" ; if (filho == "Roberto" || filho == "Rafaela" || filho == "Cristiane" ) { ret = "João" ; } if (filho == "André" ) { ret = "Pedro" ; } return ret; } // ====================================================================== function temAMesmaMae(filho1, filho2) { return maeDe(filho1) == maeDe(filho2); } function temOMesmoPai(filho1, filho2) { return paiDe(filho1) == paiDe(filho2); } function saoMeioIrmaos(filho1, filho2) { //Essas condições trazem todos os meio-irmãos e também os irmãos if (temAMesmaMae(filho1, filho2) || temOMesmoPai(filho1,filho2)) { //Essas condições retiram os irmãos do resultado sobrando apenas //os meio-irmãos if (!(temAMesmaMae(filho1, filho2) && temOMesmoPai(filho1,filho2))) { alert(filho1+ " e " +filho2+ " são meio-irmãos." ); } else { alert(filho1+ " e " +filho2+ " são irmãos." ); } } else { alert(filho1+ " e " +filho2+ " não são irmãos nem meio-irmãos." ); } } saoMeioIrmaos( "Roberto" , "Cristiane" ); saoMeioIrmaos( "Roberto" , "Rafaela" ); saoMeioIrmaos( "André" , "Rafaela" ); saoMeioIrmaos( "André" , "Luis" ); saoMeioIrmaos( "Roberto" , "Luis" ); </script> </body> </html> |
Analise e execute ele, está bem comentado, observe bem a utilização dos operadores lógicos em conjunto com a definição do que se quer...
acho que era isso que vc precisava, mas qualquer dúvida é só falar.
Espero ter ajudado !
Abraço e bons códigos !
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)