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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2016, 10:14   #1
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию Помогите с решением задачи: FreePascal. Используя функции. Найти биссектрисы треугольника сторонами которого являются биссектрисы исходного треугольника.

Программа FreePascal. Используя функции. Найти биссектрисы треугольника сторонами которого являются биссектрисы исходного треугольника.
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 10:20   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Как пробовал? Какие ошибки выдает компилятор?
p51x вне форума Ответить с цитированием
Старый 02.12.2016, 10:25   #3
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию

не пробовал. Ибо вообще не понимаю, как эту задачу решать. С геометрией проблем нет, но по поводу решения вообще никаких мыслей
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 10:55   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

Цитата:
Ибо вообще не понимаю, как эту задачу решать. С геометрией проблем нет, но по поводу решения вообще никаких мыслей
Что-то не сходится... Если с геометрией проблем нет, то тут же должен возникнуть план типа:
1. вводим стороны исходного треугольника
2. по сторонам находим его биссектрисы
3. проверяем, что можно на них построить треугольник
4. находим биссектрисы нового треугольника
5. задача решена
p51x вне форума Ответить с цитированием
Старый 02.12.2016, 10:58   #5
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию

План как бы есть, но есть одно "но". Поможете начеркать функцию?
function имя функции (формальные параметры):тип результата;
раздел описаний функции
begin
исполняемая часть функции
end;
Типо гото..
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 11:10   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Цитата:
План как бы есть, но есть одно "но". Поможете начеркать функцию?
поможем, если начеркаете решение (в т.ч. формулы и расчеты) в геометрии.
Цитата:
С геометрией проблем нет,
P.S. В школе нас учили что решение задачи надо начинать с записи (перечисления) того что дано.
Цитата:
исходного треугольника.
и записи(формулировки) того что требуется найти.
Цитата:
Найти биссектрисы треугольника
компьютер (программа) оперирует исключительно с числовыми данными.
Дано: Как задан исходный треугольник в числах?
Найти: Как выдать описание "найденной" биссектрисы (в геометрии это вовсе не число) в числах??
Решение: Как (по каким формулам) преобразовать исходные числа описывающие треугольник, в числа описывающие биссектрису???
P.S. это вопросы к ТС.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 02.12.2016 в 11:25.
evg_m вне форума Ответить с цитированием
Старый 02.12.2016, 11:20   #7
igormel
Пользователь
 
Регистрация: 11.11.2016
Сообщений: 22
По умолчанию

Ну начнём. Стороны треугольника мы вводим.
readln(a,b,c);
if(a>=b+c)or(b>=a+c)or(c>=a+b) then
Затем. найдём биссектрисы
La:=sqrt(a*b*(a+b+c)*(a+b-c))/(a+b);
Lb:=sqrt(a*c*(a+b+c)*(a+b+c))/(a+c);
La:=sqrt(c*b*(a+b+c)*(a+b-c))/(c+b);
Затем точно такая же проверка
if(La>=Lb+Lc)or(Lb>=La+Lc)or(Lc>=La +Lb) then
Если эта проверка пройдена, то мы можем составить треугольник.
igormel вне форума Ответить с цитированием
Старый 02.12.2016, 11:38   #8
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
function GetMyL(myside: real{"моя" сторона}; b,c: real{и две другие стороны}): real;
begin
   result:=sqrt(b*c*(b+c +myside)*(b+c -myside))/(b+c);
// или так
  s:=b+c;
  result:=sqrt(b*c*(s+myside)*(s-myside))/s;
end;

....
Lc:=GetMyL(c, a, b);
Lb:=GetMyL(b, a, с);
La:=GetMyL(a, b, c);
....
Код:
function TestT(a,b,c: real): boolean; //а возможен ли такой треугольник
begin
  result:=(a>=b+c) or (b>=a+c) or (c>=a+b); // так написал ТС!
возможно он имел другой смысл функции чем "придумал" я (см. комментарий к заголовку функции)
но комментарии к его коду предполагают этот. { Если эта проверка пройдена, то мы можем составить треугольник.  }
end;

if TestT(a, b, c) then 
....

if TestT(La, Lb, Lc) then
...
Код:
read(a, b, c);
if TestT(a,b,c) then begin
  La:=GetMyL(a, b,c);
  Lb:=GetMyL(b, a,c);
  Lc:=GetMyL(c, a,b);
  if TestT(La, Lb, Lc) then begin
   ?????
  end;
end
else Write('треугольник невозможен');
Цитата:
Затем точно такая же проверка
if(La>=Lb+Lc)or(Lb>=La+Lc)or(Lc>=La +Lb) then
Если эта проверка пройдена, то мы можем составить треугольник.
а дальше-то что?
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 02.12.2016 в 12:09.
evg_m вне форума Ответить с цитированием
Старый 02.12.2016, 11:48   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

приведу формулу
bisector_formulas3.png
где
a,b - длины прилегающих к углу (в котором ищем биссектрису) сторон,
c - длина противолежащей стороны

во-первых, у Вас в формуле для вычисления Lb ошибка.

во-вторых, вот эту формулу и используйте для функции:
Код:
function length_bisector(a,b,c:real):real;
begin
    length_bisector := sqrt(a*b*(a+b+c)*(a+b-c))/(a+b)
end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти длины высот треугольника, если заданы координаты вершин треугольника. Vadim228 Паскаль, Turbo Pascal, PascalABC.NET 10 30.12.2015 15:45
Найти длины высот треугольника, если заданы координаты вершин треугольника Vadim228 Паскаль, Turbo Pascal, PascalABC.NET 1 30.12.2015 12:31
вычисления длины наибольший биссектрисы данного треугольника. qmsk Паскаль, Turbo Pascal, PascalABC.NET 1 10.11.2012 13:53
определить площадь,периметр,биссектрисы и т.п. треугольника Иоанн IV Грозный Помощь студентам 2 16.01.2011 20:12