解説:9−2

このプログラムも自分がわかりやすいようにしてみた。
結果はもちろん一緒なので省略する。

プログラム:

procedure TForm1.Button1Click(Sender: TObject);

var pnt, pt : array [1..6,1..2] of integer;

   i, n, xc, yc : integer;

begin

   pnt[1,1] := 0; pnt[1,2] := 0;
   pnt[2,1] := 50; pnt[2,2] := 50;
   pnt[3,1] := 50; pnt[3,2] := 150;
   pnt[4,1] := 0; pnt[4,2] := 100;
   pnt[5,1] := -50; pnt[5,2] := 150;
   pnt[6,1] := -50; pnt[6,2] := 50;

   xc := 200;
   yc := 200;

   for n:=1 to 2 do begin

      if n=1 then begin

         for i := 1 to 6 do begin
            pt[i,1] := xc + pnt[i,1];
            pt[i,2] := yc - pnt[i,2];
         end;

      end else

         for i := 1 to 6 do begin
            pt[i,1] := xc + pnt[i,1];
            pt[i,2] := yc + pnt[i,2];
         end;

      Canvas.Polygon([ Point(pt[1,1],pt[1,2]),
                  Point(pt[2,1],pt[2,2]),
                  Point(pt[3,1],pt[3,2]),
                  Point(pt[4,1],pt[4,2]),
                  Point(pt[5,1],pt[5,2]),
                  Point(pt[6,1],pt[6,2]) ] );

   end;

end;

end.

どこが違うかわかっただろうか。