unit PersChien;

interface

//------------------------------CLASSE CPERSONNE------------------------------\\
  Type CPersonne = Class
       Private
        Nom, Prenom : String ;
        Age : Integer ;
       Public
        Procedure Saisir();
        Procedure Afficher();
        Function AnneeNaissance() : Integer ; //année naissance en fct de age
       End;

 Var P1 : CPersonne ;
//----------------------------------------------------------------------------\\


//-------------------------------CLASSE CCHIEN--------------------------------\\
  Type CChien = Class
       Private
        Nom : String ;
        Age, NumTatouage : Integer ;
       Public
        Procedure Saisir();
        Procedure Afficher();
        Function AnneeNaissance() : Integer ; //année naissance en fct de age
       End;

 Var C1 : CChien ;
//----------------------------------------------------------------------------\\


implementation


//-------------------------PROCEDURES CPERSONNE-------------------------------\\
Procedure CPersonne.Saisir() ;
  Begin
   Writeln('Saisir Nom'); Readln(Nom);
   Writeln('Saisir Prenom'); Readln(Prenom);
   Writeln('Saisir Age'); Readln(Age);
  End;

 Procedure CPersonne.Afficher() ;
  Begin
   Writeln('Nom');            Writeln(Nom);
   Writeln('Prenom');         Writeln(Prenom);
   Writeln('Age');            Writeln(Age);
   Writeln('AnneeNaissance'); Writeln( Self.AnneeNaissance() ) ;  // Le self peut être implicite
  End;                                 // Il renvoi au CPersonne de Afficher

  Function CPersonne.AnneeNaissance() : Integer ;
  Begin
  Result :=  2017-Age ;
  End;
//----------------------------------------------------------------------------\\


//----------------------------PROCEDURES CCHIEN-------------------------------\\
  Procedure CChien.Saisir() ;
  Begin
   Writeln('Saisir Nom Chien');         Readln(Nom);
   Writeln('Saisir Age Chien');         Readln(Age);
   Writeln('Saisir NumTatouage Chien'); Readln(NumTatouage);
  End;

 Procedure CChien.Afficher() ;
  Begin
   Writeln('Nom Chien');             Writeln(Nom);
   Writeln('Age Chien');             Writeln(Age);
   Writeln('NumTatouage Chien');     Writeln(NumTatouage);
   Writeln('Annee naissance Chien'); Writeln( Self.AnneeNaissance() ) ;  // Le self peut être implicite
  End;                                 // Il renvoi au CPersonne de Afficher

  Function CChien.AnneeNaissance() : Integer ;
  Begin
  Result :=  2017-(Age+1) ;
  End;
//----------------------------------------------------------------------------\\

end.