• Aucun résultat trouvé

Écrire une méthodeboolean estCousinGermain(Personne p) qui teste si la personne cou- rante (this) est cousin germain dep

N/A
N/A
Protected

Academic year: 2022

Partager "Écrire une méthodeboolean estCousinGermain(Personne p) qui teste si la personne cou- rante (this) est cousin germain dep"

Copied!
2
0
0

Texte intégral

(1)

Initiation à la Programmation 2 (IP2) TD9

université PARIS . DIDEROT

PARIS 7

Dans ce TD nous étudions une généalogie inversée. Chaque personne connaît uniquement ses parents, ce qui peut être modélisé par un arbre binaire donné par la classe Personne.

1 c l a s s P e r s o n n e {

p r i v a t e f i n a l S t r i n g prenom , n o m D e F a m i l l e ;

3 p r i v a t e P e r s o n n e mere , p e r e ;

5 p u b l i c P e r s o n n e ( S t r i n g prenom , S t r i n g n o m D e F a m i l l e ) { ...

7 }

p u b l i c P e r s o n n e ( S t r i n g prenom , S t r i n g n o m D e F a m i l l e ,

9 P e r s o n n e pere , P e r s o n n e m e r e ) {

...

11 }

}

Exercice 1

1. Écrire une méthode boolean estFrereOuSoeur(Personne p) qui teste si la personne cou- rante (this) est un frère ou une sœur dep.

2. Écrire une méthodeboolean estCousinGermain(Personne p) qui teste si la personne cou- rante (this) est cousin germain dep.

Rappel : deux personnes sont cousins germains si un parent de l’un et le frère ou la sœur d’un parent de l’autre.

Exercice 2

3. Écrire une méthode int nbAscendantsVivants() qui renvoie le nombre d’ascendants de this (c’est-à-dire le nombre de nœuds accessible depuisthisdans l’arbre).

4. Écrire une méthodeboolean possedeCommeAscendant(Personne p)qui teste si la personne courante (this) a pour ascendantp.

Exercice 3 La distance d’ascendance entre deux personnes est le nombre de générations les séparant. Par exemple la distance entre un père et son fils est 1, entre un grand-père et sa petite- fille est 2, etc. La distance d’ascendant entre quelqu’un et lui même vaut 0, et si aucun des deux n’est l’ascendant de l’autre, leur distance est −1.

5. Écrire une méthodeint distanceDAscendance(Personne p)qui donne la distance d’ascen- dance entre thisetp.

6. Écrire une méthodevoid afficheAscendantUn(Personne p)qui sipest un ascendant direct de thisaffiche la lignée comme ceci :

Jean Dupont

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶

this

, enfant de Jeanne Martin, enfant de Michel Martin

´¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¸¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¹¶

p

7. Écrire une méthodeint nbDeGenerations()qui renvoie la distance d’ascendance maximal entre this et un de ses ascendants. En d’autres termes, cette méthode calcule la longueur de la branche la plus longue de l’arbre.

Exercice 4

7. Écrire une méthodeboolean Verification() qui renvoietruesi l’arbre respecte les règles de la famille “traditionnelle” :

Un enfant possède le mêmenomDeFamille que son père.

Les deux parents d’un enfant ne peuvent être ni frère et sœur, ni cousins germains.

1

(2)

Exercice 5 (Facultatif)

8. Écrire une méthodeArrayList<Personne> getTousLesAscendants()qui renvoie la liste de tous les ascendants de this.

9. Écrire une méthodeboolean estDeMaFamille(Personne p)qui teste si la personne courante (this) etp ont un ascendant commun.

10. Écrire une méthodeint distanceDHeritage(Personne p)qui donne la distance d’héritage, c’est-à-dire la somme des distances directe de this et de p à leur ascendant commun. Par exemple un oncle et son neveu sont à une distance de 3, deux cousins germains à une distance de 4 et un grand-père et son petit-fils à une distance de 2.

2

Références

Documents relatifs

personne, mets la couleur de ce qu'elle ressent, par exemple du rouge colère bleue pour la

Pour ces jeunes gens, dans l’optique d’un futur accès à la parentalité, un questionnement sur la nature de l’échange qui s’établira entre le futur parent

La procédure d’infixation des pronoms personnels intraverbaux est globalement la même pour le verbe et pour l’auxiliaire : la marque finale de première personne -t de

Elle est en plus une carte de visite de la Gruyère, du canton de Fribourg et de notre pays dans le monde

La persécution, mysticisme, hypocondrie, mégalomanie, culpabilité, jalousie, érotomanie, pensées cosmiques, référence (la personne pense être le centre du monde…. Persécution

Cela donne à comprendre que la liberté humaine n’est pas ici dans l’autonomie d’un sujet isolé, mais dans le « oui » à l’appel de l’être et dans la reconnaissance

« Processus de recueil de données et d’analyse de situations de soins, qui permet d’identifier les réactions des personnes face à la maladie, au traumatisme, au handicap, à

• Lorsqu’une personne, en phase avancée ou terminale d’une affection grave et incu- rable (quelle qu’en soit la cause), est hors d’état d’exprimer sa volonté et