program P;
var T1,T2,T3,T11,T22,T33,p,p1,p2,p3,PL1,PL2,PL3,PL,y,x,y1,x1,y2,x2,y3,x3,k: real;
begin
{длины дополнительных линий треугольника, т.е. от заданной точки до вершин треуг.}
T11:=sqrt(sqr(x-x1)+sqr(y-y1));
T22:=sqrt(sqr(x-x2)+sqr(y-y2));
T33:=sqrt(sqr(x-x3)+sqr(y-y3));
{полупериметры треугольников, образованных дополнительными линиями и сторонами основного треугольника}
p1:=(T1+T11+T22)/2;
p2:=(T2+T22+T33)/2;
p3:=(T3+T11+T33)/2;
{площади дополнительных треугольников}
PL1:=sqrt(p1*(p1-T1)*(p1-T11)*(p1-T22));
PL2:=sqrt(p2*(p2-T2)*(p2-T22)*(p2-T33));
PL3:=sqrt(p3*(p3-T3)*(p3-T11)*(p3-T33));
{вводите вершины треугольника}
k:=0;
{определяетеуравнения прямых, составляющих основной треугольник; полупериметр и площадь треугольника аналогично тому, что выше проделано для дополнительного}
{задаете функцию}
{главное условие, подсчитывающее кол-во точек, входящ.в обл}
if PL-(PL1+PL2+PL3)<0.00001 then k:=k+1;
выводите полученный результат}
end.
функция, определяющая сколько точек вошло в треугольник
внутpь области тpеугольника; 3 вершины задаются пользователем (гpаницы входят в состав области)
[COLOR=blue]Pascal[/COLOR]
Скорее всего бесконечное множество
там ещё было условие сначала вывести таблицу значений, причем мнимальное и максимальное значения вводятся пользователем (табулирование функции, вобщем). но у меня конкретно вопрос возник, какое условие взять при определении области,
т.е. как выразить стороны треугольника?
Если твой график пересекает хотя бы одну сторону треугольника - то точек будет бесконечно много, если не пересекает - то ни одной. А вобще не совсем понятно условие. Напиши нормально, тогда может и существенно помогут. Удачи.
Еще может быть одна точка, если пересекает вершину...
"там ещё было условие сначала вывести таблицу значений" ;) т.е. понятно, что пользоваель ввел какие-то значения (не бесконечно много) и из них уже программа должна выбирать, что входит в обл.а что нет. ну и считать общее кол-во
Не очень понятно, раз переспросили :)
Берешь двумерный массив
Читаешь X, вычисляешь Y, смотришь, скока точек вошло, как определить входит ли точка в треугольник смотри
выше.
я вот думаю, можно же как-то стороны треугольника выразить в этом случае? чтоб на заморачиваться с площадью..но именно нужно не длины сторон, а как бы графики прямых, из которых состоит треугольник
И определять, с какой стороны от прямой лежит точка... три раза?
Особенно красиво с прямыми получается для стороны, параллельной OY.
:)
[COLOR=red]все просьбы написания программ/функций вместо вас постим в разделе Студенты.[/COLOR]
эм..кстати, эту задачу нам дали для отработки циклов ;) можно же и без массивов эту задачку сделать?))
Действительно, площади считать сдесь наиболее удобно и тем более в чем проблема? Не тебе же их считать, только раз формулы вывести и все. Уравнения сторон треугольника тоже можно вывести, но смысл?
Конечно можно, ты просто в цикле считываешь x вычисляешь y проверяешь внутри ли точка и выводишь в таблицу строку, снова считываешь и т.д.
Вот решила написать, что примерно должно получица, вдруг кому ещё понадобица))
Код: