Uses Crt;

Const FileNev = 'Szemszam.txt';
Type TSza = String[11];
Var  SzaTomb1, SzaTomb2 : TSza;
             UtolsoJegy : Byte;
                  Sorsz : String[3];

{-------------------------------------------------------------------------}
Procedure Bekeres(Var Szaj : TSza);
Begin
   Readln(Szaj);
End;

{-------------------------------------------------------------------------}

Procedure Kiiras(Szaj : TSza;jegy : Byte);
Begin
    write(Copy(Szaj,1,jegy));
End;

{-------------------------------------------------------------------------}

Function FerfivNo(Elsojegy : Char) : Boolean;
Begin
 If (Elsojegy ='2') or (Elsojegy = '4')  then
    FerfivNo := True
 Else
    FerfivNo := False;
End;

{-------------------------------------------------------------------------}

Function SzulSorszam(Szaj : TSza ) : String;
Begin
  Szulsorszam := Copy(Szaj,8,3);
End;

{-------------------------------------------------------------------------}

Function SzuliNap(Szaj : TSza) : Byte;
Var SzEv, Ev, Idos : Word;
    Code : Integer;
Begin
  Ev := 2004;
  Val(Copy(Szaj,2,2),SzEv,Code);
  If SzEv < 10 then
     SzEv := 2000 + SzEv
  Else
     SzEv := 1900 + SzEv;
  SzuliNap := Ev - SzEv;
End;

{-------------------------------------------------------------------------}

Function Atalakit(ch : Char): Char;
Begin
  Case ch of
    '1' : Atalakit := 'a';
    '2' : Atalakit := 'a';
  Else  Atalakit := 'b';
  End;
End;

Procedure KiIdosebb(Szaj1, Szaj2 : TSza);
Var cv : Byte;
    ch,sch : Char;
Begin
  cv := 1;
  ch := Szaj1[1];
  Szaj1[1] := Atalakit(ch);
  ch := Szaj2[1];
  Szaj2[1]:= Atalakit(ch);
  While (cv<=10) AND (Szaj1[cv]=Szaj2[cv]) DO
    Inc(cv);
  if Szaj1[cv] < Szaj2[cv] then
    Writeln('Az els“ szem‚ly az id“sebb.')
  Else
    Writeln('A m sodik szem‚ly az id“sebb.');
End;

{-------------------------------------------------------------------------}

Function EvKulonbseg(Szaj1, Szaj2 : TSza) : Byte;
var Kor1, Kor2 : Byte;
Begin
  Kor1 := Szulinap(Szaj1);
  Kor2 := Szulinap(Szaj2);
  EvKulonbseg := ABS(Kor1 - Kor2);
End;

{-------------------------------------------------------------------------}

Function UtolsoJegySzamitas(Szaj : TSza) : Byte;
Var cv, Szamjegy : Byte;
    SzorzatSzum, Code : Integer;
Begin
  SzorzatSzum:= 0;
  For cv := 1 to 10 Do
   Begin
      Val(Copy(Szaj,cv,1),Szamjegy,Code);
      SzorzatSzum := SzorzatSzum + Szamjegy * (10 - cv + 1);
   End;
  UtolsoJegySzamitas := SzorzatSzum mod 11;
End;

{-------------------------------------------------------------------------}

Procedure FileBaKiir(SzA1, SzA2 : TSza);
Var   TF : Text;
Begin
  Assign(TF, FileNev);
  ReWrite(TF);
      Writeln(TF, SzA1);
      Writeln(TF, SzA2);
  Close(TF);
End;

{------------------------------- F“program ------------------------------}

BEGIN
  clrscr;
  { a. feladat
  ---------------------------------------------------------------------}
  Writeln('Adja meg a szem‚lyazonos¡t¢ jelet!');
  Write('Szaj: ');
  Bekeres(SzaTomb1);
  writeln;
  Clrscr;
  Write('A bek‚rt szem‚lyi azonos¡t¢: ');
  Kiiras(SzaTomb1,10);
  Writeln;

  { b. feladat
  ---------------------------------------------------------------------}
  If FerfivNo(SzaTomb1[1]) then
    Writeln('A szem‚ly neme: N“') else Writeln('A szem‚ly neme: F‚rfi');

  { c. feladat
  ---------------------------------------------------------------------}
  Sorsz := SzulSorszam(SzaTomb1);
  Writeln('A szem‚ly szlet‚si sorsz ma: ', Sorsz);

  { d. feladat
  ---------------------------------------------------------------------}
  Writeln('Az illet“ id‚n ' , Szulinap(SzaTomb1) , ' ‚ves.');

  { e. feladat
  ---------------------------------------------------------------------}
  Writeln('Adja meg a m sodik szem‚lyazonos¡t¢ jelet!');
  Write('Szaj: ');
  Bekeres(SzaTomb2);

  { f. feladat
  ---------------------------------------------------------------------}
  KiIdosebb(SzaTomb1,SzaTomb2);

  { g. feladat
  ---------------------------------------------------------------------}
  Writeln('A k‚t szem‚ly k”z”tt ', EvKulonbseg(SzaTomb1,SzaTomb2), ' ‚v van.');

  { h. feladat
  ---------------------------------------------------------------------}
  UtolsoJegy := UtolsoJegySzamitas(SzaTomb2);
  If UtolsoJegy = 10 then
    Writeln('A Szlet‚si sorsz m hib s!')
  Else
    Begin
      SzaTomb2 := SzaTomb2 + Chr(48 + UtolsoJegy);
      Write('A szem‚lyazonos¡t¢ az utols¢ jeggyel: ');
      Kiiras(SzaTomb2,11);
      Writeln;
    End;

  { i. feladat
  ---------------------------------------------------------------------}
  FileBaKiir(SzaTomb1,SzaTomb2);
  Writeln('A ki¡r s a f jlba befejez“d”tt.');
  Readln;

END.