Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.01.2018, 19:35   #1
FrozenJabaGlobal
Новичок
Джуниор
 
Регистрация: 25.01.2018
Сообщений: 10
По умолчанию ABC Pascal (Найти площядь произвольного шестиугольника с помощью функций)

Помогите написать программу. Площядь произвольного 6 угольника с помощью функций. Саму суть я понял надо найти 4 площяди треугольника и сложить + необходима проверка:
function proverka(a,b,c:real):boolean
begin
proverka:=(a+b>c)and(a+c>b)and(c+b> a);
end.
Проверки надо 4 так как 6 угольник состоит из 4 треугольников.
FrozenJabaGlobal вне форума Ответить с цитированием
Старый 25.01.2018, 20:12   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

А шестиугольник выпуклый? Если да, то сначала найти правильный путь обхода вершин, используя например алгоритм нахождения выпуклой оболочки. А для площади есть формула
S=1/2*|(x1+x2)*(y1-y2)+...+(x5+x6)*(y5-y6)+(x6+x1)*(y6-y1)|
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 25.01.2018 в 20:22.
Аватар вне форума Ответить с цитированием
Старый 25.01.2018, 20:45   #3
FrozenJabaGlobal
Новичок
Джуниор
 
Регистрация: 25.01.2018
Сообщений: 10
По умолчанию

Да выпуклый, на уроке мы рассматривали как найти площядь произвольного четырёх угольника. Из пройденного материала я мало что понял.
Попросили найти площядь путём сложения 4 трехугольников.
Но возникает проблемма из-за моей некомпитентности в этом вопросе.
У меня есть функции площяди и проверки.
Но как их совместить я не знаю.
Вот функция проверки:
Function proverka (a,b,c:real):boolean;
begin
proverka:=(a+b>c)and(a+c>b)and(c+b> a);
end;
А вот функция площяди трехугольника:
Function pl(a,b,c:real):real;
var p:+real
begin
P:=(a+b+c)/2;
pl:=sqrt(p*(p-a)*(p-b)*(p-c));
end;
Но я не знаю как проверить 4 трехугольника на возможность(функция проверки)
и не знаю как найти площядь используя функцию.
Я могу себе это примерно представить но выдать в качестве кода нет.

Последний раз редактировалось FrozenJabaGlobal; 25.01.2018 в 20:46. Причина: ошибка
FrozenJabaGlobal вне форума Ответить с цитированием
Старый 25.01.2018, 21:12   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Этой проверкой можно только убедиться, что три точки не лежат на одной прямой. И что она тебе даст? Вершины этих четырех треугольников нужно же правильно выбрать, а для этого и нужно найти правильный путь обхода точка за точкой по вершинам шестиугольника. А площадь или как ты хочешь, а можно и по той формуле
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 25.01.2018, 21:38   #5
FrozenJabaGlobal
Новичок
Джуниор
 
Регистрация: 25.01.2018
Сообщений: 10
По умолчанию

Да вы правы, но если треугольник не будет сущетвовать то будет не правильно выведена площядь 6 угольника.
FrozenJabaGlobal вне форума Ответить с цитированием
Старый 25.01.2018, 22:05   #6
FrozenJabaGlobal
Новичок
Джуниор
 
Регистрация: 25.01.2018
Сообщений: 10
По умолчанию

Возможно вы меня могли не правильно понять. Речь идёт о длинне 6 сторон и 3 диагоналей. Путём проверки трекгольника на возжность мы удостоверяемся что площядь будет точна.
FrozenJabaGlobal вне форума Ответить с цитированием
Старый 25.01.2018, 22:16   #7
FrozenJabaGlobal
Новичок
Джуниор
 
Регистрация: 25.01.2018
Сообщений: 10
По умолчанию

Скорее всего есть более правильное решение этой задачи. Но попросили вот так. Да и обычно дают что-то попроще например площадь правильного 6 угольника. И он а пишется без процедур и функций.
FrozenJabaGlobal вне форума Ответить с цитированием
Старый 25.01.2018, 22:54   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,656
По умолчанию

Are you a vegetable?

Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 25.01.2018, 23:12   #9
FrozenJabaGlobal
Новичок
Джуниор
 
Регистрация: 25.01.2018
Сообщений: 10
По умолчанию

вот только это программа для правильного шестиугольника а необзодима для произвольного.
FrozenJabaGlobal вне форума Ответить с цитированием
Старый 25.01.2018, 23:18   #10
FrozenJabaGlobal
Новичок
Джуниор
 
Регистрация: 25.01.2018
Сообщений: 10
По умолчанию

К щастью я не дурак и перед этой темой я в течении 2 дней прошерстил интернет.
И не нашов там более менне точного ответа, был сделана эта тема.
FrozenJabaGlobal вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Решить задачу с использованием функций. Ввод-вывод значений массивов осуществить с помощью функций. Владимир20178 Помощь студентам 2 29.06.2017 05:05
Работа с вычислением функций с помощью разложения в ряд (Delphi, Pascal) Vladrstar Фриланс 5 25.12.2014 14:01
Решение задачи в Pascal ABC с помощью функции. Krakaziabr Паскаль, Turbo Pascal, PascalABC.NET 0 22.12.2013 16:12