|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
25.01.2018, 19:35 | #1 |
Новичок
Джуниор
Регистрация: 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 треугольников. |
25.01.2018, 20:12 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
А шестиугольник выпуклый? Если да, то сначала найти правильный путь обхода вершин, используя например алгоритм нахождения выпуклой оболочки. А для площади есть формула
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 |
Новичок
Джуниор
Регистрация: 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. Причина: ошибка |
25.01.2018, 21:12 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Этой проверкой можно только убедиться, что три точки не лежат на одной прямой. И что она тебе даст? Вершины этих четырех треугольников нужно же правильно выбрать, а для этого и нужно найти правильный путь обхода точка за точкой по вершинам шестиугольника. А площадь или как ты хочешь, а можно и по той формуле
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
25.01.2018, 21:38 | #5 |
Новичок
Джуниор
Регистрация: 25.01.2018
Сообщений: 10
|
Да вы правы, но если треугольник не будет сущетвовать то будет не правильно выведена площядь 6 угольника.
|
25.01.2018, 22:05 | #6 |
Новичок
Джуниор
Регистрация: 25.01.2018
Сообщений: 10
|
Возможно вы меня могли не правильно понять. Речь идёт о длинне 6 сторон и 3 диагоналей. Путём проверки трекгольника на возжность мы удостоверяемся что площядь будет точна.
|
25.01.2018, 22:16 | #7 |
Новичок
Джуниор
Регистрация: 25.01.2018
Сообщений: 10
|
Скорее всего есть более правильное решение этой задачи. Но попросили вот так. Да и обычно дают что-то попроще например площадь правильного 6 угольника. И он а пишется без процедур и функций.
|
25.01.2018, 23:12 | #9 |
Новичок
Джуниор
Регистрация: 25.01.2018
Сообщений: 10
|
вот только это программа для правильного шестиугольника а необзодима для произвольного.
|
25.01.2018, 23:18 | #10 |
Новичок
Джуниор
Регистрация: 25.01.2018
Сообщений: 10
|
К щастью я не дурак и перед этой темой я в течении 2 дней прошерстил интернет.
И не нашов там более менне точного ответа, был сделана эта тема. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Решить задачу с использованием функций. Ввод-вывод значений массивов осуществить с помощью функций. | Владимир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 |