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

    Пятиуг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 i<=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 i<=n do begin    s+=a[i]*a[i+3]-a[i+1]*a[i+2];    i+=2    end;  s:=Abs(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.
    • Автор:

      mullins
    • 5 лет назад
    • 0
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years