Показать полную графическую версию : Подпрограмма
Не знаю как сделать
Язык программирования: Паскаль
Разработать программу расчёта периметра и площади пятиугольника заданного координатами своих вершин.
Использовать две подпрограммы-функции (Function).
Одна расчитывает длину отрезка по заданным координатам концов, а другая площадь треугольника по заданным координатам вершин(Формула герона).
Nonius, Прости конечно, но "Не знаю" это не ответ.
Что читал, смотрел для решения задачи?
Какие есть собственные мысли по данному вопросу?
Какая предполагаемая область знаний решает подобные задачи?
Какие требования предъявляются к точкам и их взаимному расположению?
Как по ним нарисовать правильный(требуемый) пятиугольник?
Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?)
На всякий случай поясню. Сейчас разбираемся с понятиями и терминами. Код паскаля не в коем случае! не затрагивается!!
Вот попробовал написать сам, проверьте пожалуйста
type
pType = record X, Y : real; end;
function Len(P1, P2 : pType) : Real;
begin
Len := Sqrt((P1.X - P2.X)*(P1.X - P2.X) + (P1.Y - P2.Y)*(P1.Y - P2.Y));
end;
function Pl(P1, P2, P3 : pType) : Real;
var
a, b, c, p : Real;
begin
a := Len(P1, P2);
b := Len(P2, P3);
c := Len(P1, P3);
p := (a + b + c) / 2;
Pl := Sqrt(p * (p - a) * (p - b) * (p - 1));
end;
var
P : array [1..5] of pType;
begin
Write('Введите через пробел координаты 1 точки: '); ReadLn(P[1].X, P[1].Y);
Write('Введите через пробел координаты 2 точки: '); ReadLn(P[2].X, P[2].Y);
Write('Введите через пробел координаты 3 точки: '); ReadLn(P[3].X, P[3].Y);
Write('Введите через пробел координаты 4 точки: '); ReadLn(P[4].X, P[4].Y);
Write('Введите через пробел координаты 5 точки: '); ReadLn(P[5].X, P[5].Y);
WriteLn('Площадь пятиугольника = ', Pl(P[1], P[2], P[3]) + Pl(P[1], P[3], P[4]) + Pl(P[1], P[4], P[5]):6:3);
end.
Какие требования предъявляются к точкам и их взаимному расположению?
Как по ним нарисовать правильный(требуемый) пятиугольник?
Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?) »
Пока ты не задашь ограничения на точки и их расположения, решение задачи будет осложнено.
Да, приведенный тобою алгоритм работает, но не во всех случаях. Т.е. не во всех возможных вариантах пятиугольника.
И на части тестов будет дан ложный ответ.
Код комментировать!!! При объявлении подписывать, какая переменная за что отвечает.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.