Разное - Подпрограмма

Ответить
Аватара пользователя
Nonius

Разное - Подпрограмма

Сообщение Nonius »

Не знаю как сделать



Язык программирования: Паскаль



Разработать программу расчёта периметра и площади пятиугольника заданного координатами своих вершин.

Использовать две подпрограммы-функции (Function).

Одна расчитывает длину отрезка по заданным координатам концов, а другая площадь треугольника по заданным координатам вершин(Формула герона).
Аватара пользователя
lxa85

Re: Разное - Подпрограмма

Сообщение lxa85 »

Nonius, Прости конечно, но "Не знаю" это не ответ.

Что читал, смотрел для решения задачи?

Какие есть собственные мысли по данному вопросу?

Какая предполагаемая область знаний решает подобные задачи?

Какие требования предъявляются к точкам и их взаимному расположению?

Как по ним нарисовать правильный(требуемый) пятиугольник?

Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?)

На всякий случай поясню. Сейчас разбираемся с понятиями и терминами. Код паскаля не в коем случае! не затрагивается!!
Аватара пользователя
Nonius

Re: Разное - Подпрограмма

Сообщение 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.
Аватара пользователя
lxa85

Re: Разное - Подпрограмма

Сообщение lxa85 »

Цитата lxa85:



Какие требования предъявляются к точкам и их взаимному расположению?

Как по ним нарисовать правильный(требуемый) пятиугольник?

Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?)
Разное - Подпрограмма




Пока ты не задашь ограничения на точки и их расположения, решение задачи будет осложнено.

Да, приведенный тобою алгоритм работает, но не во всех случаях. Т.е. не во всех возможных вариантах пятиугольника.

И на части тестов будет дан ложный ответ.

Код комментировать!!! При объявлении подписывать, какая переменная за что отвечает.
Ответить

Вернуться в «Программирование и базы данных»