Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

Как правильно задать данные о треугольнике?   Найти похожие ветки 

 
Chorus   (2012-11-09 11:17) [0]

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

что нужно считывать в начале?
углы? стороны?
ведь если он задаст углы 566, 23, 102, а стороны 1, 0, 2233.
но это не будет верно!

понятно, что сумма всех углов треугольнике 180.
но как правильно сделать ввод, чтобы по данным был правильный треугольник?


 
Chorus   (2012-11-09 11:18) [1]

как ограничить ввод?
или считать при любых данных?


 
брат Птибурдукова   (2012-11-09 11:26) [2]


> что нужно считывать в начале?углы? стороны?ведь если он
> задаст углы 566, 23, 102, а стороны 1, 0, 2233.но это не
> будет верно!
Блин, об этом талдычили всё второе полугодие седьмого класса...


 
БарЛог ©   (2012-11-09 11:26) [3]

а где пользователь вводит данные?


 
БарЛог ©   (2012-11-09 11:28) [4]

а если пользователь введет углы, сумма которых будет 180, но длины сторон не "сойдутся" с углами. Тогда строить треугольник по сторонам или по углам?


 
Chorus   (2012-11-09 11:31) [5]


> БарЛог ©   (09.11.12 11:26) [3]
>
> а где пользователь вводит данные?


Readln.


> а если пользователь введет углы, сумма которых будет 180,
>  но длины сторон не "сойдутся" с углами.


вот именно!
как сделать, чтоб все сошлось, он должен вводить как стороны так и углы.


 
БарЛог ©   (2012-11-09 11:33) [6]

Chorus   (09.11.12 11:31) [5]

Делай сначала выбор метода задания треугольника. Например: 2 стороны и угол между ними. Оставшаяся сторона и 2 угла уже высчитываются.


 
брат Птибурдукова   (2012-11-09 11:35) [7]

Вводятся ы) три стороны; э) две стороны и угол между ними; ю) сторона и два угла (прилегающих, например). Все прочие варианты содержат избыточность, следовательно, возможен ввод противоречивых данных.


 
Inovet ©   (2012-11-09 11:36) [8]

Преложить вакрианты с минимальнодостаточным набором параметров. Или при введениии достаточных, запрещать ввод остальных. Хранить только минимальное количество, например, только длины сторон.


 
БарЛог ©   (2012-11-09 11:36) [9]

хе-хе. я первый :)


 
Рамиль ©   (2012-11-09 11:37) [10]

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


 
Очень Злой   (2012-11-09 11:40) [11]


> но как правильно сделать ввод, чтобы по данным был правильный
> треугольник?


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


 
брат Птибурдукова   (2012-11-09 11:43) [12]


> Очень Злой   (09.11.12 11:40) [11]
Злой ты... %-)

ЗЫ. Вообще, учитывая уровень автора, нелишне напомнить, что надо проверять не &#945;+&#946;+&#947;=180°, а abs(&#945;+&#946;+&#947;-180°) < &#949;


 
БарЛог ©   (2012-11-09 11:47) [13]

> ЗЫ. Вообще, учитывая уровень автора, нелишне напомнить

А также разжевать, почему оно именно так :)


 
Очень Злой   (2012-11-09 11:48) [14]

а для задания данных произвольного треугольника, как вариант, можно сделать метод, что-то типа такого:

function SetTriangleData(a,d,c,alpha,beta,gamma:Extended):boolean;

вместо незадаваемых величин подставляется 0

ну и в методе анализируешь введенные данные, вычисляешь при необходимости незаданные данные, и если введенные данные не соответствуют треугольнику - возвращаешь false


 
Inovet ©   (2012-11-09 11:56) [15]

Щас ещё выяснится, что треугольник этот не сам по себе, а имеет координаты в пространстве.


 
БарЛог ©   (2012-11-09 11:58) [16]

Inovet ©   (09.11.12 11:56) [15]

> Щас ещё выяснится, что треугольник этот не сам по себе, а имеет координаты в пространстве.

Да не, вряд ли. Учитывая вторую тему автора,
http://delphimaster.net/view/15-1352269270/
это лаба первого курса. Что-то типа определения высот для заданного треугольника. Ну, если не школоло.


 
Аббат Пиккола   (2012-11-09 12:29) [17]

Как только пользователь ввел первый из списка озвученных углов треугольника (566 градусов), вроде бы программа уже должна что-то сообщить...


 
БарЛог ©   (2012-11-09 12:48) [18]

Аббат Пиккола   (09.11.12 12:29) [17]

Система: Вы пытаетесь построить 566/180*3=9,43333333333333-хугольник ?


 
И. Павел ©   (2012-11-09 12:51) [19]

> [17] Аббат Пиккола   (09.11.12 12:29)

В принципе, это можно трактовать как 154 градуса.


 
Inovet ©   (2012-11-09 12:54) [20]

> [18] БарЛог ©   (09.11.12 12:48)
>566/180*3=9,43333333333333-хугольник ?

566/180-2=5,14444444444444


 
Аббат Пиккола   (2012-11-09 13:08) [21]

Даже если считать углы с точностью до 360 * n, получаем:
566 - 360 = 206
206 > 180
вот в чем проблема.


 
БарЛог ©   (2012-11-09 13:24) [22]

Inovet ©   (09.11.12 12:54) [20]

+2 ? :)
Пятница.

Аббат Пиккола   (09.11.12 13:08) [21]

> 206 > 180

206-180? :)


 
Очень Злой   (2012-11-09 13:27) [23]

566 mod 180


 
Inovet ©   (2012-11-09 13:50) [24]

> [22] БарЛог ©   (09.11.12 13:24)
> +2 ? :)
> Пятница.

Хм, вроде из калькулятора скопировал, а ну да, там сначала "-" был по ошибке.


 
БарЛог ©   (2012-11-09 13:54) [25]

Калькуляторы по пятницам тоже неправильно считают :)


 
Inovet ©   (2012-11-09 13:58) [26]

> [25] БарЛог ©   (09.11.12 13:54)

Так результат же верный, вот ведь в чём дело.


 
БарЛог ©   (2012-11-09 14:32) [27]

Inovet ©   (09.11.12 13:58) [26]

Это и настораживает.


 
Аббат Пиккола   (2012-11-09 14:48) [28]

Страх перед решением задач приравняли к фобии:

http://sakhalife.ru/node/54951

Так что математику скоро запретят как вредный для здоровья предмет.


 
БарЛог ©   (2012-11-09 15:56) [29]

Аббат Пиккола   (09.11.12 14:48) [28]

Более того: манную кашу признали вредной.

http://deti.mail.ru/news/roditeljam/mannuyu_kashu_priznali_vrednoj/

Не зря я её в детстве не любил :)


 
Ega23 ©   (2012-11-09 16:09) [30]


> ЗЫ. Вообще, учитывая уровень автора, нелишне напомнить,
> что надо проверять не &#945;+&#946;+&#947;=180°, а abs(&#945;+&#946;+&#947;-180°) < &#949;

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


 
брат Птибурдукова   (2012-11-09 16:37) [31]


> Ega23 ©   (09.11.12 16:09) [30]
А кто-то утверждал обратное? Я там где-то парой сообщений выше перечислил необходимые условия.


 
AV ©   (2012-11-09 17:37) [32]

во :)
если близко воробей - мы зарядим пушку!

 TTriangle = class
  private
    FSides: array[0..2] of Double;
    FAngles: array[0..2] of Double;
    FCurrentSide, FCurrentAngle: Integer;
  public
    property CurSide:Integer read FCurrentSide write SetCurrentSide;
    property CurAngle:Integer read FCurrentAngle write SetCurrentAngle;
    property ValSide:Double read GetSide write SetSide;
    property ValAngle:Double read GetAngle write SetAngle;
 end;

В сеттерах анализируем, не захотел ли юзер 4ю сторону/угол задать,
и как только данных хватает, остальной ввод идет лесом


 
БарЛог ©   (2012-11-09 17:44) [33]

AV ©   (09.11.12 17:37) [32]

А полные данные (рассчитанные три недостающих параметра) храним в таком же объекте :)


 
БарЛог ©   (2012-11-09 17:45) [34]

А в третьем - уже рассчитанные высОты :)


 
Аббат Пиккола   (2012-11-09 18:36) [35]

property ValSide[Index: integer]: Double read GetSide write SetSide;
property ValAngle[Index: integer]: Double read GetAngle write SetAngle;


 
kilkennycat ©   (2012-11-09 20:02) [36]

странно, что никто не вспомнил про цвет. а ведь зеленый треугольник это далеко не красный, или скажем, фиолетовый треугольники.


 
Аббат Пиккола   (2012-11-09 20:59) [37]

А вообще для масштабируемости треугольнику лучше иметь произвольное число углов. Цвет, как правильно заметил kilkennycat ©   (09.11.12 20:02) [36]  и еще обязательно толщину сторон.


 
Inovet ©   (2012-11-09 21:43) [38]

> [37] Аббат Пиккола   (09.11.12 20:59)

Ещё радиусы углов.


 
kilkennycat ©   (2012-11-09 22:46) [39]

а вот если даны описанная и вписанные окружности и расстояние между их центрами, треугольник однозначен?


 
Inovet ©   (2012-11-09 23:07) [40]

> [39] kilkennycat ©   (09.11.12 22:46)

Не, нк т.е. радиусы и расстоеяни междк центрами. Итого 3 параметра, но зависимых. зная радиусы расстояние уже известно.
d^2 = R(R ? 2r)
http://ru.wikipedia.org/wiki/%D0%A2%D0%B5%D0%BE%D1%80%D0%B5%D0%BC%D0%B0_%D0%AD%D0%B9%D0%BB%D0%B5%D1%80%D0%B0_%28%D0%BF%D0%BB%D0%B0%D0%BD%D0%B8%D0%BC%D0%B5%D1%82%D1%80%D0%B8%D1%8F%29



Страницы: 1 2 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.05 c
15-1333528430
Дмитрий С
2012-04-04 12:33
2013.03.22
SizeOf( ж );


3-1277112330
alexnauz
2010-06-21 13:25
2013.03.22
Как заставить IBQuery или OraQuery вернуть пустой результат


15-1337965875
alexdn
2012-05-25 21:11
2013.03.22
Php


2-1339576883
Seally
2012-06-13 12:41
2013.03.22
Делфи не признает AdvStringGrid


15-1330531768
Димка На
2012-02-29 20:09
2013.03.22
Gaussian blur