program Menseki1; {$APPTYPE CONSOLE} uses SysUtils; var N : Integer; // 頂点の個数 S : Real; // 面積 X1,Y1 : Real; // 1番目の点の座標 K : Integer; // 今読み込んでいる点の番号 XOld,YOld : Real; // k−1番目の点の座標 XNew,YNew : Real; // k番目の点の座標 begin WriteLn('多角形の面積'); WriteLn; Write('頂点の個数 ? '); ReadLn(N); Write('頂点 1: x y = '); ReadLn(X1,Y1); XOld := X1; YOld := Y1; S := 0; for K := 2 to N do begin Write('頂点', K:2, ': x y = '); ReadLn(XNew,YNew); S := S + (XOld-XNew)*(YOld+YNew)/2; // 台形の面積(符号つき)を足す XOld := XNew; YOld := YNew; end; S := S + (XOld-X1)*(YOld+Y1)/2; S := Abs(S); WriteLn; WriteLn('面積は ', S:0:2, ' です'); ReadLn; end.