Função Árvores genealógica
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
Curtidas 0
Respostas
Jorge Pinto
12/11/2019
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:
<!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 !
GOSTEI 0