home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / qpdemo / beispiel / obj_demo.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-08-24  |  2.0 KB  |  105 lines

  1.  
  2. PROGRAM ObjektDemo;
  3. {Demonstration der Objekttechnik anhand geometrischer Formen}
  4.  
  5. {$M+}
  6.  
  7. TYPE  Geo_Form = OBJECT
  8.      Flaeche : Real;
  9.      Hoehe   : Real;
  10.      Was             : STRING;
  11.      PROCEDURE Geo_Form.Init;
  12.      PROCEDURE Geo_Form.Sag_was;
  13.      FUNCTION Geo_Form.Ermittle_Flaeche:Real;
  14.       END;
  15.  
  16.       Rechteck = OBJECT (Geo_Form)
  17.      Laenge  : Real;
  18.      FUNCTION Rechteck.Ist_Quad : Boolean;
  19.      PROCEDURE Rechteck.Init;OVERRIDE;
  20.      FUNCTION Rechteck.Ermittle_Flaeche:Real;OVERRIDE;
  21.       END;
  22.  
  23.       Kreis = OBJECT (Geo_Form)
  24.      Radius  : Real;
  25.      PROCEDURE Kreis.Init;OVERRIDE;
  26.      FUNCTION Kreis.Ermittle_Flaeche:Real;OVERRIDE;
  27.       END;
  28.  
  29. PROCEDURE Geo_Form.Init;
  30. BEGIN
  31.     SELF.Flaeche := 0;
  32.     SELF.Hoehe   := 0;
  33.     SELF.Was     := 'Geometrische Form';
  34. END;
  35.  
  36. PROCEDURE Geo_Form.Sag_Was;
  37. BEGIN
  38.     WriteLn(SELF.Was);
  39. END;
  40.  
  41. FUNCTION Geo_Form.Ermittle_Flaeche : Real;
  42. BEGIN
  43.     SELF.Flaeche := SELF.Hoehe * SELF.Hoehe;
  44.     Ermittle_Flaeche := SELF.Flaeche;
  45. END;
  46.  
  47. PROCEDURE Kreis.Init;
  48. BEGIN
  49.    INHERITED SELF.Init;
  50.    SELF.Radius := 4.0;
  51.    SELF.Was := 'Kreis'
  52. END;
  53.  
  54. FUNCTION Kreis.Ermittle_Flaeche : Real;
  55. BEGIN
  56.    SELF.Flaeche := ( Pi * Sqr (SELF.Radius) );
  57.    Ermittle_Flaeche := SELF.Flaeche;
  58. END;
  59.  
  60. PROCEDURE Rechteck.Init;
  61. BEGIN
  62.    INHERITED SELF.Init;
  63.    SELF.Hoehe := 5.0;
  64.    SELF.Laenge := 5.0;
  65.    SELF.Was := 'Rechteck';
  66. END;
  67.  
  68. FUNCTION Rechteck.Ist_Quad : Boolean;
  69. BEGIN
  70.    Ist_Quad := False;
  71.    IF ( SELF.Laenge = SELF.Hoehe ) THEN
  72.    Ist_Quad := True;
  73. END;
  74.  
  75. FUNCTION Rechteck.Ermittle_Flaeche:Real;
  76. BEGIN
  77.    SELF.Flaeche := SELF.Laenge * SELF.Hoehe;
  78.    Ermittle_Flaeche := SELF.Flaeche;
  79. END;
  80.  
  81. VAR
  82.  
  83. Ein_Kreis : Kreis;
  84. Ein_Rechteck : Rechteck;
  85.  
  86. BEGIN
  87.    New ( Ein_Kreis );
  88.    Ein_Kreis.Init;
  89.    New ( Ein_Rechteck);
  90.    Ein_Rechteck.Init;
  91.  
  92.    Ein_Kreis.Sag_Was;
  93.    WriteLn ('Fläche: ', Ein_Kreis.Ermittle_Flaeche);
  94.  
  95.    WriteLn;
  96.  
  97.    Ein_Rechteck.Sag_Was;
  98.    WriteLn ('Fläche: ', Ein_Rechteck.Ermittle_Flaeche);
  99.        Ermittle.Faeche => Ermittle_Flaeche}
  100.  
  101.    Dispose (Ein_Kreis);
  102.    Dispose (Ein_Rechteck);
  103. END.
  104.  
  105.