Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2013.03.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.54 MB
Время: 0.101 c
2-1333910862
neverush
2012-04-08 22:47
2013.03.22
JvRichEdit unicode


15-1342183148
yorik_spb
2012-07-13 16:39
2013.03.22
Организации требуется - старший программист (Delphi+M SSQL)


15-1332516369
Хаус
2012-03-23 19:26
2013.03.22
Архитектура. Как правильно ее построить?


2-1324740591
minotavr
2011-12-24 19:29
2013.03.22
BitBtn и ImageList


2-1332165801
Валера
2012-03-19 18:03
2013.03.22
Не компилируется проект с компонентом RS232





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский