Форум: "Прочее";
Текущий архив: 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]
Злой ты... %-)
ЗЫ. Вообще, учитывая уровень автора, нелишне напомнить, что надо проверять не α+β+γ=180°, а abs(α+β+γ-180°) < ε
← →
БарЛог © (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]
> ЗЫ. Вообще, учитывая уровень автора, нелишне напомнить,
> что надо проверять не α+β+γ=180°, а abs(α+β+γ-180°) < ε
Совпадение значений углов треугольника, а также их сумма пи/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.53 MB
Время: 0.114 c