Вопрос задан 30.04.2019 в 09:15. Предмет Информатика. Спрашивает Пипенко Дарина.

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

кoopдинaтaми cвoиx вepшин. Нaйти eгo плoщaдь.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Сейдалиева Даша.
Используется формула Гаусса (формула "шнурования").

// 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.
0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

К сожалению, я не могу написать программу на Паскале в данном формате. Однако, я могу объяснить, как можно решить данную задачу на Паскале.

Решение через процедуру:

1. Создайте процедуру `CalculateArea`, которая будет принимать координаты вершин пятиугольника и вычислять его площадь. 2. Внутри процедуры `CalculateArea` вычислите площадь пятиугольника, используя формулу Гаусса. 3. Выведите результат на экран.

Пример кода на Паскале:

```pascal program CalculateAreaProcedure;

var x1, y1, x2, y2, x3, y3, x4, y4, x5, y5: real;

procedure CalculateArea; var area: real; begin area := abs((x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2))/2) + abs((x1*(y3-y4) + x3*(y4-y1) + x4*(y1-y3))/2) + abs((x1*(y4-y5) + x4*(y5-y1) + x5*(y1-y4))/2) + abs((x1*(y5-y2) + x5*(y2-y1) + x2*(y1-y5))/2) + abs((x2*(y3-y4) + x3*(y4-y2) + x4*(y2-y3))/2); writeln('Площадь пятиугольника: ', area); end;

begin writeln('Введите координаты вершин пятиугольника:'); readln(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5); CalculateArea; end. ```

Решение через функцию:

1. Создайте функцию `CalculateArea`, которая будет принимать координаты вершин пятиугольника и возвращать его площадь. 2. Внутри функции `CalculateArea` вычислите площадь пятиугольника, используя формулу Гаусса. 3. Верните результат из функции.

Пример кода на Паскале:

```pascal program CalculateAreaFunction;

var x1, y1, x2, y2, x3, y3, x4, y4, x5, y5: real;

function CalculateArea: real; begin CalculateArea := abs((x1*(y2-y3) + x2*(y3-y1) + x3*(y1-y2))/2) + abs((x1*(y3-y4) + x3*(y4-y1) + x4*(y1-y3))/2) + abs((x1*(y4-y5) + x4*(y5-y1) + x5*(y1-y4))/2) + abs((x1*(y5-y2) + x5*(y2-y1) + x2*(y1-y5))/2) + abs((x2*(y3-y4) + x3*(y4-y2) + x4*(y2-y3))/2); end;

begin writeln('Введите координаты вершин пятиугольника:'); readln(x1, y1, x2, y2, x3, y3, x4, y4, x5, y5); writeln('Площадь пятиугольника: ', CalculateArea); end. ```

Обратите внимание, что в обоих решениях используется формула Гаусса для вычисления площади пятиугольника. Вам нужно будет ввести координаты вершин пятиугольника с клавиатуры, а затем программа выведет площадь на экран.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос