|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - Подпрограмма |
|
Разное - Подпрограмма
|
Новый участник Сообщения: 2 |
Профиль | Отправить PM | Цитировать Не знаю как сделать
Язык программирования: Паскаль Разработать программу расчёта периметра и площади пятиугольника заданного координатами своих вершин. Использовать две подпрограммы-функции (Function). Одна расчитывает длину отрезка по заданным координатам концов, а другая площадь треугольника по заданным координатам вершин(Формула герона). |
|
Отправлено: 10:16, 17-12-2010 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Nonius, Прости конечно, но "Не знаю" это не ответ.
Что читал, смотрел для решения задачи? Какие есть собственные мысли по данному вопросу? Какая предполагаемая область знаний решает подобные задачи? Какие требования предъявляются к точкам и их взаимному расположению? Как по ним нарисовать правильный(требуемый) пятиугольник? Как площадь многогранной фигуры связана с треугольниками? (Пути преобразования и пересчета?) На всякий случай поясню. Сейчас разбираемся с понятиями и терминами. Код паскаля не в коем случае! не затрагивается!! |
------- Отправлено: 11:00, 17-12-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Вот попробовал написать сам, проверьте пожалуйста
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. |
Последний раз редактировалось Drongo, 17-12-2010 в 20:27. Причина: Используйте тег - [code] - # Отправлено: 15:44, 17-12-2010 | #3 |
Необычный Сообщения: 4463
|
Профиль | Сайт | Отправить PM | Цитировать Цитата lxa85:
Да, приведенный тобою алгоритм работает, но не во всех случаях. Т.е. не во всех возможных вариантах пятиугольника. И на части тестов будет дан ложный ответ. Код комментировать!!! При объявлении подписывать, какая переменная за что отвечает. |
|
------- Отправлено: 16:30, 17-12-2010 | #4 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
|