Не знаю как сделать
Язык программирования: Паскаль
Разработать программу расчёта периметра и площади пятиугольника заданного координатами своих вершин.
Использовать две подпрограммы-функции (Function).
Одна расчитывает длину отрезка по заданным координатам концов, а другая площадь треугольника по заданным координатам вершин(Формула герона).
Разное - Подпрограмма
-
lxa85
Re: Разное - Подпрограмма
Nonius, Прости конечно, но "Не знаю" это не ответ.
Что читал, смотрел для решения задачи?
Какие есть собственные мысли по данному вопросу?
Какая предполагаемая область знаний решает подобные задачи?
Какие требования предъявляются к точкам и их взаимному расположению?
Как по ним нарисовать правильный(требуемый) пятиугольник?
Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?)
На всякий случай поясню. Сейчас разбираемся с понятиями и терминами. Код паскаля не в коем случае! не затрагивается!!
Что читал, смотрел для решения задачи?
Какие есть собственные мысли по данному вопросу?
Какая предполагаемая область знаний решает подобные задачи?
Какие требования предъявляются к точкам и их взаимному расположению?
Как по ним нарисовать правильный(требуемый) пятиугольник?
Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?)
На всякий случай поясню. Сейчас разбираемся с понятиями и терминами. Код паскаля не в коем случае! не затрагивается!!
-
Nonius
Re: Разное - Подпрограмма
Вот попробовал написать сам, проверьте пожалуйста
Код:
Код:
Код: Выделить всё
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.-
lxa85
Re: Разное - Подпрограмма
Цитата lxa85:
Какие требования предъявляются к точкам и их взаимному расположению?
Как по ним нарисовать правильный(требуемый) пятиугольник?
Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?)
Пока ты не задашь ограничения на точки и их расположения, решение задачи будет осложнено.
Да, приведенный тобою алгоритм работает, но не во всех случаях. Т.е. не во всех возможных вариантах пятиугольника.
И на части тестов будет дан ложный ответ.
Код комментировать!!! При объявлении подписывать, какая переменная за что отвечает.
Какие требования предъявляются к точкам и их взаимному расположению?
Как по ним нарисовать правильный(требуемый) пятиугольник?
Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?)
Разное - Подпрограмма
Пока ты не задашь ограничения на точки и их расположения, решение задачи будет осложнено.
Да, приведенный тобою алгоритм работает, но не во всех случаях. Т.е. не во всех возможных вариантах пятиугольника.
И на части тестов будет дан ложный ответ.
Код комментировать!!! При объявлении подписывать, какая переменная за что отвечает.