Составить программку на Паскале двумя методами - через функцию и функцию.Пятиуг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.
// 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.
, оставишь ответ?
Похожие вопросы
-
Вопросы ответы
Новое
NEW
Статьи
Информатика
Статьи
Последние вопросы
В сосуде 4целых одна пятая литр воды что бы заполнить сосуд
Математика.
Двум малярам Диме И Олегу поручили выкрасить фасад дома они разделили
Разные вопросы.
найти порядковый номер 41Э если в ядре 20 нейтронов
Разные вопросы.
в ряду натуральных чисел 3, 8, 10, 24, … 18 одно
Математика.
Предприятие по производству с/хоз продукции на производство затратило 3527000 руб Валовый
Разные вопросы.
Математика, задано на каникулы. ВАРИАНТ 1004
НОМЕР 1,2,3,4,5,6,7,8.
Математика.
Имеются три конденсатора емкостью С1=1мкФ, С2=2мкФ и С3=3мкФ. Какую наименьшую емкость
Физика.
Из точки м выходят 3 луча MP MN и MK причём
Геометрия.
выпиши в свою тетрадь те правила этикета которые тебе не были
Разные вопросы.
Анна хорошо учится у неё много подруг свободное от учёбы время
Обществознание.
Облако тегов