Classe Inverte String

      
      program INVSC;
      { TURBO PASCAL 7 SOURCE
        DELPHI SOURCE
        classe Inverte String
        Joao Paulo Schwarz Schuler}
      {FPC Source Code}
      
      {$X+}
      {$F+}
      
      function InverteString(S:String):string;
      var R:string;
          I:integer;
          TAMANHO:integer;
      begin
      R:='';
      TAMANHO:=length(S);
      if TAMANHO>0
         then for I:=TAMANHO downto 1 do
                  R:=R+S[I];
      InverteString:=R;
      end;
      
      type TInverte = object
                      private
                      S:string;
      
                      public
                      procedure Define(PS:string);
                      procedure Inverte;
                      function Get:string;
                      end;
      
      procedure TInverte.Define(PS:string);
      begin
      S:=PS;
      end;
      
      procedure TInverte.Inverte;
      begin
      S:=InverteString(S);
      end;
      
      function TInverte.Get:string;
      begin
      Get:=S;
      end;
      
      const MEUNOME : string ='Pernalonga & Patolino';
      
      var I:TInverte;
      begin
      I.Define(MEUNOME);
      I.Inverte;
      writeln(I.Get);
      I.Inverte;
      writeln(I.Get);
      end.