Ребят,подскажите пожалуйста как запрограммировать последние две функции,я даже математически не могу этого написать(
Код:
unit Unit2;
interface
// ---------------------------------------------- ---Допоміжні описи-------------------------------------------------
const
TÌaxCount = 100; // найбільша кількість вершин
type
TCount = 0..MaxCountElement; // тип кільності
TNumeration = 1..TMaxCount; // тип нумерації
// тип точки на площині:
TPoint = record
X, Y : Real; // координати точки на площині
end;
TMasPoint = array[TNumeration] of TPoint; // масив точок
// ----------------------------------- клас багатокутників -------------------------------------------------
TPolygon = class
//---------------------------------------- атрибути ------------------------------------------------------------
Count : TCount; //кількість вершин багатокутників
Tops : TMasPoint; // вершини багатокунтиків
//------------------------- методи - конструктори-----------------------------------------------------------
constructor Create; overload; // ввести кількість вершин і
// значення їх координати з клавіатури
constructor Create (N : TCount; const Coord : TMasPoint); overload;
// задати координати вершин
// параметри N - кількість вершин
// Coord - масив вершин багатокутника
//------------------------- методи-----------------------------------------------------------
procedure Print; //ввести координати вершин багатокутника у вигляді (x1,y1)..(xn,yn)
function GetX(N : TNumeration) : Real; //отримати координату Х вершини за номером N
function GetY(N : TNumeration) : Real; // отримати координату У вершини за номером N
function GetPoint(N : TNumeration) : TPoint; //отримати вершину за номером N
function LengthSide(A, B : TPoint) : Real; // обчислити довжину сторони
// параметри A, B -вершини
function Area : Real; // обчислити площу
function Perimeter : Real; // обчислити периметр
{function IsProtuberant : Boolean; // отримати значення True, якщо багатокутник опуклий
function ThereIsIn(A : TPoint) : Boolean;
// отримати значення True, якщо багатокутник містить точку A
end; }
implementation
constructor TPolygon.Create;
var i:integer;
begin
writeln('vvedit k-st vershun');
readln( self.Count );
for i :=1 to self.Count
begin
writeln('vvedit koordunaty ', i,' x');
readln(self.Tops[i].X);
writeln('vvedit koordunaty ', i,' y');
readln(self.Tops[i].y);
end;
end;
constructor TPolygon.Create (N : TCount; const Coord : TMasPoint);
begin
self.Count:=n;
for i:=1 to n do
begin
self.Tops[i].X:= Coord[i].X;
self.Tops[i].y:= Coord[i].y;
end;
end;
procedure TPolygon.Print
begin
write(x1,y1);
..
write(xn,yn);
end;
function TPolygon.GetX(N : TNumeration) : Real;
begin
result:= self.Tops[n].X ;
end;
function TPolygon.GetY(N : TNumeration) : Real;
begin
result:=self.Tops[n].Y
end;
function TPolygon.GetPoint(N : TNumeration) : TPoint;
begin
result:=self.Tops[n];
end;
function TPolygon.LengthSide(A, B : TPoint) : Real;
begin
result:=scrt(scr(a.X -b.X )+scr(a.Y-b.Y));
end;
function TPolygon.Area : Real;
var s:=real;
begin
for i:=1 to self.Count ;
S:=S+1/2*((xi+xi+1)*(yi+yi+1)) ;
end;
function TPolygon.Perimeter : Real;
begin
result:=2*(a+b);
end;
end.
________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.