#1 24.01.11 17:43
помощь к задаче по информатике(pascal)
Задачакруг радиусом R=2 с центром в точке (2,2) делится прямыми y=x-2, y=-x-2 на четыре части!Найти число точек К лежащих внутри множества Д за д принять правую часть круга ограниченного линиями
Есть вот такой текст программы
program lab7;
uses wincrt;
const
x: array[1..6] of real=(-0.77,-0.81,-0.2,1.5,-3.91,1.5);
y: array[1..6] of real=(1.44,-2.4,0.3,3,-1.81,0.5);
var
i,s: integer;
begin
s:=0;
for i:=1 to 6 do
begin
if (4>=(sqr(x[i]-2)+sqr(y[i]-2))) then
begin
writeln('X',i,'= ',x[i]:5:2,' ','Y',i,'= ',y[i]:5:2);
s:=s+1;
end;
end;
writeln;
writeln('Количество точек попавших в область D = ',s);
end.
требуется еще задать ему такое ограничение чтобы он выбирал точки изпространства ограниченного прямимы и окружности(т.е как мне к окружности написать еще и прямые)?
Offline
#2 24.01.11 23:53
Re: помощь к задаче по информатике(pascal)
школьная программа...
1.
C.Ronaldo написал(а):
круг радиусом R=2 с центром в точке (2,2) делится прямыми y=x-2, y=-x-2 на четыре части!
это как? нарисуй... лично у меня получилось всего 3 части
2. как нарисуешь, то сможешь понять как определять точки и их попадание в область...
т.е. условия вида: если координата х точки в пределах х1...х2, то у должен быть в пределах у1 (по формуле первой прямой)..у2(по второй формуле)
все просто... когда будет рисунок перед глазами, все сам поймешь...
Offline
#4 26.01.11 11:26
Re: помощь к задаче по информатике(pascal)
Ну, раз ты сам не можешь нарисовать, то я нарисовал это за тебя
1. То, что задано тебе (так, как ты это описал):

2. То, как на мой взгляд обстоит дело:

вот теперь покажи мне, где тут разделение круга на ЧЕТЫРЕ части?
или тебе нужны формулы окружности для декартовых координат?
в целом, как я уже и писал выше, вся проверка делится на два этапа... в случае, если рисунок как я указал в п.2, то при x>=0 и x<=2 сверяется значение y с формулами прямых, а при x>2 и x<=4 сверяется значение y с формулами полуокружностей...
Offline
#6 26.01.11 21:34
Re: помощь к задаче по информатике(pascal)
Hix, ну, у него есть зачатки решения, но точно неверные... т.е. видно, что уравнение окружности для декартовых координат знает, но вот применяет немного неверно... это как когда решаешь какую-нить задачку по физике, подбираешь формулу, в которой буковки совпадают, а че это и зачем не понимаешь...
Offline
#7 27.01.11 08:14
Re: помощь к задаче по информатике(pascal)
Jaguar, а смысл тогда решать? тут задача стоит если переписать на нормальный язык так: Проверить сколько точек из массива принадлежит (находится внутри) области ограниченной прямыми y=-x-2, y=x-2 и окружностью (x-2)^2+(y-2)^2-4=0. И собственно все.
А реализация на каком либо языке это уже творческий процесс.
Найти число точек К лежащих внутри множества Д за д принять правую часть круга ограниченного линиями
а на вопрос в цитате ответ один: бесконечность.
Offline
#9 27.01.11 09:40
Re: помощь к задаче по информатике(pascal)
Jaguar, если бы было написано найти число точек из множества "К" тогда согласен. а когда мне говорят найти число точек "К" то я подозреваю что "К" в данном случае переменная. Это как бы из условия. То что "Д" множество указанно. а То что "К" множество я не прочитал.
Поэтому то я и написал что условие не полное.
Исправлено Hix (27.01.11 09:43)
Offline
#10 27.01.11 13:33
Re: помощь к задаче по информатике(pascal)
я тут вот чего еще подумал... вообще для общего случая, когда прямые пересекают окружность наискосок (на три или на четыре части - не важно, главное чтобы не было у обеих прямых одновременно тупого угла к Ox) условие вхождения точки (Xt, Yt) всего 1 из 4 частей (пересечение 4-х множеств):
Код::
если Yt <= y(Xt)=x-2 AND Yt <= y(Xt)=sqrt(r^2 - (x+x0)^2)-y0 AND Yt >= y(Xt)=-x-2 AND Yt >= y(Xt)=-sqrt(r^2 - (x+x0)^2)-y0
пофиг, что уже написал решение, т.к. автор видать совсем сник, что ничего не пишет...
Исправлено Jaguar (27.01.11 13:42)
Offline

