Составить программку на Паскале двумя методами - через функцию и функцию.Пятиугoльник

Составить программу на Паскале 2-мя методами - через функцию и функцию.

Пятиугoльник зaдaн кoopдинaтaми cвoиx вepшин. Нaйти eгo плoщaдь.

Задать свой вопрос
1 ответ
Употребляется формула Гаусса (формула "шнурования").

// PascalABC.NET 3.3, сборка 1583 от 25.11.2017
// Внимание! Если программка не работает, обновите версию!

- с функцией:

function SPolygonGauss(a:array of real):real;
// Отдаёт вычисленную по формуле Гаусса площадь многоугольника,
// координаты вершин которого заданы массивами х и у
begin
  var (n,i):=(a.Length-4,0);
  Result:=0.0;
  while ilt;=n do begin
    Result+=a[i]*a[i+3]-a[i+1]*a[i+2];
    i+=2
    end;
  Result:=Abs(0.5*Result)
end;

begin
  var x:=ReadArrReal('Введите координаты вершин 5-угольника:',10);
  SetLength(x,12);
  x[10]:=x[0];
  x[11]:=x[1];
  Writeln('Площадь равна ',SPolygonGauss(x))
end.

Пример
Введите координаты вершин 5-угольника: 0.6 2.1 1.8 3.6 2.2 2.3 3.6 2.4 3.1 0.5
Площадь равна 3.915

- с процедурой:

procedure SPolygonGauss(a:array of real; var s:real);
// Вычисляет по формуле Гаусса площадь многоугольника,
// координаты вершин которого заданы массивами х и у
begin
  var (n,i):=(a.Length-4,0);
  s:=0.0;
  while ilt;=n do begin
    s+=a[i]*a[i+3]-a[i+1]*a[i+2];
    i+=2
    end;
  s:=Абс(0.5*s)
end;

begin
  var x:=ReadArrReal('Введите координаты вершин 5-угольника:',10);
  SetLength(x,12);
  x[10]:=x[0];
  x[11]:=x[1];
  var s:real;
  SPolygonGauss(x,s);
  Writeln('Площадь одинакова ',s)
end.
, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт