Example Geometry

Prof. Dr. Theo D'Hondt
Last revision: August 7th, 1996

Example Geometry


[ Pi µvar: 3.14159265358979;
  Self makePoint
   µmethod:
    [ x µvar: 0;
      y µvar: 0;
      self setX: newX
       µmethod:
        [ x µ<- newX;
          self ];
      self setY: newY
       µmethod:
        [ y µ<- newY;
          self ];
      self area
       µmethod:
        [ 0 ];
      Self addRadius
       µmethod:
        [ r µvar: 0;
          self setR: newR   
           µmethod:
            [ r µ<- newR;
              self ];
          self area
           µmethod:
            [ Pi * r sqr ];
          Self addSecondRadius
           µmethod:
            [ rr µvar: 0;
              self setRR: newRR   
               µmethod:
                [ rr µ<- newRR;
                  self ];
              self area
               µmethod:
                [ Pi * r * rr ];
              µself ];
          µself ];
      Self addSide
       µmethod:
        [ s µvar: 0;
          self setS: newS
           µmethod:
            [ s µ<- newS;
              self ];
          self area
           µmethod:
            [ s sqr ];
          Self addSecondSide
           µmethod:
            [ ss µvar: 0;
              self setSS: newSS
               µmethod:
                [ ss µ<- newSS;
                  self ];
              self area
               µmethod:
                [ s * ss ];
              µself ];
          Self addAngle
           µmethod:
            [ a µvar: 0;
              self setA: newA
               µmethod:
                [ a µ<- newA;
                  self ];
              self area
               µmethod:
                [ a sin * s sqr ];
              µself ];
          µself ];
      µself ];
          
  Point     µvar: Object makePoint;
  Circle    µvar: Point  addRadius;
  Ellipse   µvar: Circle addSecondRadius;
  Square    µvar: Point  addSide;
  Rectangle µvar: Square addSecondSide;
  Diamond   µvar: Square addAngle;
  
  P µvar: Point µclone;
  P setX: 0;
  P setY: 0;
  C µvar: Circle µclone;
  C setX: 0;
  C setY: 0;
  C setR: 1;
  E µvar: Ellipse µclone;
  E setX: 0;
  E setY: 0;
  E setR: 1;
  E setRR: 2;
  S µvar: Square µclone;
  S setX: 0;
  S setY: 0;
  S setS: 1;
  R µvar: Rectangle µclone;
  R setX: 0;
  R setY: 0;
  R setS: 1;
  R setSS: 2;
  D µvar: Diamond µclone;
  D setX: 0;
  D setY: 0;
  D setS: 1;
  D setA: Pi / 6;
  "        area of point = " display; P area display; Eoln display;
  "       area of circle = " display; C area display; Eoln display;
  "      area of ellipse = " display; E area display; Eoln display;
  "       area of square = " display; S area display; Eoln display;
  "    area of rectangle = " display; R area display; Eoln display;
  "      area of diamond = " display; D area display; Eoln display ] µvalue